на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Основы программирования на языке Паскаль
p align="left"> rez,x,fxpred,fxpos:real;

BEGIN rez:=0; x:=0.1; writeln;

for i:= 1 to 6 do

Begin fxpred:=0; fxpos:=1; n:=2; znak:=1; fak:=1;

while abs(fxpos-fxpred)>=0.001 do

Begin znak:=znak*(-1); fak:=fak*(n-1)*n;

fxpred:=fxpos;

fxpos:=fxpos+znak*exp(n*ln(x))/fak; n:=n+2;

end; writeln('x=',x*180/pi,'(ја ¤) cos(x)=',fxpos);

x:=x+0.2; rez:=rez+fxpos; end;

writeln('rez=',rez);

readln; END.

5. Ввод - вывод

5.1. Общие положения

Ввод-вывод выполняется с помощью операторов read, readln - читать и write, writeln - писать. Читать и писать определяется по отношению к оперативной памяти (ОП). Так, read, readln - читать, т. е. вводить с внешнего устройства (файла) и заносить данные в ОП, write, writeln - писать, т.е. выводить данные из ОП на внешний файл (устройство). Файл состоит из компонент, структура которых определяется при его создании.

Внешними устройствами (файлами) могут быть: экран монитора, клавиатура, память на гибких дисках, память на жестком или лазерном дисках, линии связи и т.п. В операторах ввода-вывода указывается имя файла, с которым будет производиться ввод-вывод, этот файл считается логическим. Кроме того, есть понятие физического файла. Физический файл - это устройство, Например, гибкий магнитный диск, жесткий диск и т. д. Логический файл имеет имя, которое можно указывать в операторах ввода-вывода.

5. 2. Ввод

Ввод производится с помощью операторов read или readln.

Формат операторов: read (FV, х1, х2, ..., хn);

или readln (FV, х1, х2, ..., хn);

где FV - имя файла, с которого считывается информация, а х1, х2 и т.д. - ячейки памяти, в которые заносится информация, считываемая с файла. Если FV отсутствует, то чтение производится с клавиатуры. Файл представляет собой как бы ленту с компонентами (рис 5.1):

Компонента может быть данным любого типа (см. с.9). Оператор readln начинает считывание с начала новой компоненты, а read может начинать не с начала. Если прежнее чтение закончилось внутри компоненты, то следующий read будет читать с того места, на котором закончилось предыдущее чтение (рис. 5.2).

В данном случае файл организован на каком-либо носителе (например на диске) и состоит из компонент, в каждой находится по три данных. Если для чтения из файлов применить операторы read (a, b); read (c, d); то в памяти будет а=3.2, b=8.6, c=0.2, d=7.01; если - операторы readln (a, b); readln (c, d), то в памяти а=3.2, b=8.6, c=7.01, d=8.3.

Замечание. При чтении данных с клавиатуры необходимо всегда использовать операторы readln (х1, х2, ..., хn); (без указания имени файла).

5. 3. Вывод

Вывод производится с помощью операторов write или writeln.

Формат операторов: write (FV, x1, x2, ..., xn);

writeln (FV, x1, x2, ..., xn);

Работа оператора: в файл с именем FV выводится информация из ячеек оперативной памяти x1, x2, ..., xn. Если FV отсутствует, вывод производится на экран монитора. При этом оператор write начинает вывод в то место компоненты файла, где был закончен прежний вывод, а оператор writeln начнет вывод с начала новой компоненты. Проиллюстрируем работу этих операторов на примере вывода данных на экран монитора.

Имеется фрагмент программы (напомним, что текст в скобках { } является комментарием и машиной не воспринимается);

Var a, b, c, d : integer;

Begin a: = 25; b: = 38; c: = 126; d: = 256;

writeln (a, b, c, d); {результат 2538126256}

writeln (a, b); writeln (c, d); {результат 2538 }

{126256 }

writeln (' a= ', a, ' b= ', b); {результат a=25 b=38}

{символы в апострофах выводятся как строковая константа}

write (a, b, c, d); {результат 2538126256}

write (a, b); write (c, d); {результат 2538126256}

write (' a= ', a, ' b= ', b);

write (' c= ', c, ' d= ',d); {результат a=25 b=38 c=126 d=256 }

5. 4. Некоторые возможности ввода-вывода

Оператор Readln; (без скобок, имени файла и списка ячеек памяти) вызовет остановку машины. Продолжение выполнения программы произойдет после нажатия кнопки Enter. Это очень удобно при просмотре каких-либо промежуточных результатов, например:

writeln ('a= ', a); Readln;

Машина выведет а=. . . и остановится, после нажатия кнопки Enter выполнение программы продолжится.

Оператор writeln; вызовет переход к новой компоненте, в случае вывода на экран - к новой строке экрана. Рассмотрим фрагмент программы:

Var i, k; integer;

Begin i: = 126; k: = 1997;

writeln ('i= ', i, ' k= ', k); {результат i=126 k=1997}

writeln (i: 3, k: 6); {результат 126 1997}

{числа, указанные после : определяют поле вывода, при выводе }

{данное "прижимается" в поле к правому краю 1997}

writeln (i: 7, k: 8); {результат ....126 ....1997}

Пример:

Program Prim23;Var r,pl:real;BEGIN writeln('введите радиус шара'); readln(r); pl:=4*pi*sqr(r);writeln('____________________________________________________');writeln('! площадь шара рад.r=',r:14,' = ',pl:14,'!');writeln('____________________________________________________');

readln; END.

В результате на экран выведется информация:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

! площадь шара радиусом R=хххххххххххххх = ххххххххххххххх !

- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -

Здесь ххххххххххххх - изображения чисел.

С помощью такого приема строятся различные таблицы.

При выводе величины Real в операторах write и writeln отводится поле шириной 18 символов для вывода данных с "плавающей точкой" в следующем формате..х.ххххххххххЕ*хх; здесь х - цифры, * - знак, который может быть '+' или '-', '.' - десятичная точка, отделяющая целую часть от дробной. Перед целой частью, в случае отрицательного данного, может стоять знак минус.

Таким образом:

в памяти машины вид оператора результат

R = 715.432 writeln (R); 7.1543200000E+02

R = -1.919e+01 writeln (R); -1.9190000000E+01

R = -567.986 writeln (R); -5.6798600000E+02

Напоминаем: Е+02 означает 102, а 7.1543200000Е+02 равносильно математической записи 7.15432102.

Ширину поля вывода можно указывать для данных любого типа, например:

в памяти машины вид оператора результат

R = 511.04 writeln (R: 22); ......5.1104000000E+02

ch = 'x' writeln (ch: 3); ..x

ch = '!' writeln (ch: 2, ch: 4,ch: 3); .!...!..!

strin = 'Day N' writeln (strin: 8); ...Dau.N

S = 'RDD' writeln (S: 5, S: 5); ..RDD..RDD

Для данных типа Real можно еще указывать кроме ширины поля также количество цифр после десятичной точки.

Вывод данных с "фиксированной точкой".

в памяти машины вид оператора результат

R = 511.04 writeln (R: 8: 4); 511.0400

R = -46.78 writeln (R: 7: 2); .-46.78

R = -46.78 writeln (R: 9: 4); .-46.7800

R = -46.78 writeln (R: 12: 3); .....-46.780

Program Prim24;

Var r1,r2:real;

BEGIN r1:=-46.78; r2:=-46.78;

writeln('r1=',r1:12:3,' r2=',r2:9:4);

writeln('_______________________________');

readln; END.

6. Массивы

6. 1. Описание массивов

В языке Паскаль можно обрабатывать не только отдельные переменные, но и их совокупности. Одной из таких совокупностей (структурированных) данных является массив. Массив - это упорядоченная совокупность данных, состоящих из фиксированного количества элементов одного и того же типа. Тип элементов, из которых состоит массив, может быть как скалярным, так и структурированным. Этот тип называется базовым, им может быть целый, байтовый, логический, символьный, перечисляемый, интервальный, вещественный, множественный типы и т. д.

Массивы могут быть одномерные:

вектор a1, a2, a3, a4, a5, ...an, т. е. линейка величин - - - - - - - - - - - -

двумерные массивы представляют собой матрицы:

a11 a12 . . . a1n , т. е. матрицу величин или прямоугольник величин

a21 a22 . . . a2n ---- ---- ----

- - - - - - - - - - ---- ---- ----

am1 am2 . . . amn ---- ---- ----

Трехмерный массив - трехмерная матрица или параллелепипед величин, состоящий из набора двухмерных матриц (рис.6.1).

Линейка трехмерных массивов составляет четырехмерный массив, матрица трехмерных массивов (параллелепипедов величин) - пятимерный массив и т. д. Количество размерностей не ограничено, однако следует помнить о том, что количество элементов в массиве растет в геометрической прогрессии от количества размерности.

Описание массивов может быть, как и других величин, прямое или через описание типов Тype.

Прямое описание Var - идентификатор, идентификатор, …, идентификатор:

array - [границы индекса, границы индекса, …, границы индекса] of - базовый тип.

Описание через TYPE:

TYPE - имя типа=array [границы индекса, границы индекса, . . ., границы индекса] of базовый тип;

Var - идентификатор, идентификатор, . . . , идентификатор: имя типа;

Пример: описать двумерные массивы с количеством элементов 4 строки по 5 элементов в каждой строке (5 столбцов),

базовый тип real, массивов три: а, b, c.

Прямое описание:

Var a, b, c: array [1. . . 4, 1 . . . 5] of real;

через TYPE:

TYPE mas=array [1. . . 4, 1. . . 5] of real;

Var a, b, c : mas;

Для указания границ массива можно применять предварительно описанные константы:

Const a1=4; a2=6;

Var mas y1: array [1. . . a1, 1. . . a2] of integer;

Доступ к элементам массива производится через переменные с индексами. Индексы должны не выходить за пределы границ в описаниях массива.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.