![](/user_photo/2706_HbeT2.jpg)
Var v1, v2, v3, …vn: т;
где v1 , v2 , v3 , … vn — имена переменных данного типа;
Т — тип переменных (REAL, INTEGER, CHAR, BOOLEAN и др.
Примеры описания переменных:
VAR
A, D, Н, С: REAL;
N, M, T: INTEGER;
P, Q: CHAR;
B, S, V: BOOLEAN;
В общем виде простейшее описание массива выполняется следующим образом:
V: ARRAY [N..M] OF T;
где V — имя массива; N и М — нижний и верхний индексы массива; Т — тип массива, записываемый аналогично типу простых переменных.
Пределы изменения индексов можно задавать в описании константами или именами целого типа. Так, массив состоящий из 50 элементов, описывается двумя способами:
VAR
1) A: ARRAY[. .50] OF REAL ;
2) CONST NMAX=50;
VAR A: ARRAY [1..NMAX] OF REAL;
В описании массивов большей размерности пределы изменения по каждой размерности отделяются друг от друга запятой.
Описание количества строк и столбцов в матрице удобнее задавать именами констант. Тогда, при изменении количества строк и столбцов матрицы, в программе потребуется заменить только определение констант. Так, матрицу С целого типа, расположенную в 10 строках и 15 столбцах, можно описать как:
CONST IMAX=10; JMAX=15;
VAR C: ARRAY [1..IMAX,1..JMAX] OF INTEGER;
Описания всех переменных составляют существенную часть программы и в значительной степени облегчают ее чтение. Введение новой переменной должно сопровождаться спецификацией возможных значений. Знание диапазона значений переменных помогает пониманию алгоритма и, в свою очередь, способствует отысканию ошибок, а также определяет правомерность и корректность использования программы. В зависимости от диапазона значений переменной, определяется необходимое количество элементов (ячеек) памяти.
Разделы определения типов описания функций процедур рассматриваются далее.
Раздел операторов состоит из составного оператора,
включающего в себя выполняемые операторы, записанные в соответствии с алгоритмом решения задачи. Операторы отделяются друг от друга точкой с
запятой.
1.4. Организация программ типовых структур
Программы, разработанные в соответствии с алгоритмами, имеют различный вычислительный характер. Однако среди выполняемых последовательностей операторов выделяют типовые структуры, из которых состоят программы: линейная, разветвляющая, циклическая, вложенных циклов. Сложные программы включают в себя все типы структур.
Организация программ линейной структуры. Программы линейной структуры не содержат никаких условий; операторы такой программы выполняются в той последовательности, в которой они записаны. Для организации рассматриваемых программ требуются операторы ввода информации, присваивания и вывода результатов вычислений.
Операторы присваивания служат для вычисления значений выражения и присваивания его переменной, расположенной слева от символа: = .
Общий вид записи оператора:
а : = b
где a – имя переменной; b – выражение.
Примеры записи операторов:
Х : = 0,25 Х : = Х + 0,25
Т : = - 10,6 А : = Т
Два оператора присваивания задают переменным Х и Т числовые значения. Оператор Х : = Х + 0,25 вычисляет новое значение Х, изменяя предыдущее значение Х : = 0,25 на величину 0,25. В операторе А : = Т; переменная А получает значение Т.
Переменная и выражение должны принадлежать одному типу. Допускаются два исключения:
Переменная действительного типа, а выражения целого или ограниченного целого типа;
Выражения ограниченного по отношению к переменной типа и наоборот
Операторы ввода и вывода данных обеспечивают программу исходными данными, необходимыми для решения задачи, и осуществляют вывод результатов решения. Поэтому практически любая программа должна содержать эти операторы, выполненные в языке Паскаль как процедуры.
Для ввода используются операторы:
READ (b1, b2 ,…..bn) ;
READLN (b1, b2,….., bn) ;
Где b1, b2,….., bn – имена переменных, подлежащих вводу данных из стандартного входу файла INPUT, в результате которой имена переменных b1, b2,….., bn получают соответствующие значения. Типы вводимых переменных должны соответствовать типам вводимых значений.
При вводе литеральных данных все литеры, включая пробелы и переходы к новой строке, являются значимыми. Пробел воспринимается как литера. Поэтому после считывания последней литеры в строке следующая литера является недоступной. Попытка прочитать литеру приводит к чтению пробела.
Оператор READLN (b1, b2,….., bn) ; обеспечивает выборку данных из стандартного файла INPUT, но после окончания выборки последней переменной осуществляется переход к началу новой строки файла.
При вводе значений переменных целого и действительного типов операторы READ и REАDLN пропускают пробелы между значениями. Оператор READLN ; обеспечивает пропуск одной строки в стандартном файле INPUT и переход к началу новой строки.
Значения переменных, соответствующие именам переменных в списке ввода, могут принадлежать типу целому, действительному или символьному. Ввод переменных логического типа недопустим. Примеры записи операторов:
REАD (A, B, C) ;
READLN (A, B, C) ;
Для ввода информации используются операторы:
WRITE (b1, b2,….., bn) ;
WRITELN (b1, b2,….., bn)
WRITELN;
Где b1, b2,….., bn – имена переменные, подлежащих выводу.
Оператор в WRITELN (b1, b2,….., bn): выполняет вывод значений, соответствующих именам b1, b2,….., bn, стандартный выходной файл OUTPUT и после вывода последнего значения осуществляет переход к новой строке файла OUTPUT.
Оператор WRITELN обеспечивает пропуск строки в файле и переход к началу следующий строки.
Имена переменных, записанные в операторе вывода, могут принадлежать целому, действительному, символичному или логическому типу.
Примеры записи операторов:
WRITE (A, B, C) :
WRITELN (A, B, C) :
Ширина поля вывода определяется типом устройства, использующего в данной ЭВМ. Форма представления выводимых переменных определяется типом переменных: значение величин целого типа выводятся в обычной форме; значение величин действительного типа – в виде нормализованного числа действительного типа с порядком; значение логического типа – в виду логических значений TRUE и FALSE; значения символьных переменных – в виде соответствующих символов.
Операторы вывода допускают использование указания о ширине поля, отводимого под значение, в явном виде. Общий вид записки операторов при выводе значений целого типа:
WRITE (b : m);
WRITELN (b ; m);
Где b – имя выводимой переменной; m – константа или выражение целого типа.
Пример записи:
WRITE (D: 6, IR : 8);
Значения переменных D и IR размещаются в одной строке и занимают соответственно шесть и восемь позиций. Каждое значение размещается в отведённом поле и занимает крайние правые позиции. При этом не заполненные позиции остаются свободными и образуют пробелы. Если значения переменной не размещаются в отведённом поле, то число позиций увеличивается.
При выводе значений действительно тира с фиксированной точкой указывается ширина поля, отводимого по все значения и дробную часть числа. Общий вид записи операторов имеет следующий вид :
WRITE ( b : m: n) ;
WRITELN ( b : m: n) ;
Где m – поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.
Пример записи :
WRITE( А : 8: 3) ;
В этом случае под значение А выделяется 8 позиций, три из которых отводятся под дробную часть числа. Если при выводе действительных значений количество позиций, отводимых под дробную часть числа, не указывается, то результат получается в нормализированном виде с десятичном порядком.
При выводе нескольких значений на одной строке для наглядности задаются необходимом количеством пробелов. Дл этого записывают оператор вывода в виде WRITE( ´ ´ :q) ; где q – константа целого типа указывающая число пробелов. Например:
WRITE( А, ´ ´ : 4, B) ;
Между значениями А и В обеспечивается гарантированный интервал в четыре пробела.
Приведённые ниже примеры демонстрируют различные виды размещений информации при выводе:
PROGRAM PRIM1 (OUIPUT);
CONST PI=3, 141592;
T=401;
W=TRUE;
SIM=´ D´ ;
BEGINE
WRITELN( PI : 8 : 6);
WRITELN( T : 6, ´ ´ : 5, W : 4, ´ ´: 6 , SIM :1);
END.
Информация выводиться в две строки в виде .
3. 141592
401 TRUE D
Выводимые результаты могут быть выведены со своими именами и снабжены заголовками или комментариями:
PROGRAM PRIM2 (OUTPUT);
CONST PI=3,141592;
T=401;
W= TRUE;
SIM= ´ D ´;
C=125. 64 E – 3;
BEGINE
WRITELN ( ´ ´ : 5, ´ константы ´ );
WRITELN ( ´ PI = ´ ,PI : 8 : 5);
WRITELN (´ T= ´ , T : 4, ´ ´: 5, ´ W= ´: W = 4;
WRITELN (´ СИМВОЛ ´ ,SIM : 3, ´ ´: 5, ´ C= ´, C=11)
END.
Информация размещается в четырёх строках, первая из которых содержит заголовок:
КОНСТАНТЫ
PI = 3,141592
Т = 401 W = TRUE
СИМВОЛ D C = 0,12504 Е 00
Длина строки, используемой для вывода данных, зависит от типа устройства. Первый символ в списке вывода оператора WRITE служит для задания интервала между строками: + - не пропуска строки ; - пропуск одной строки; 0 – пропуск двух строк ; I – переход к новой страницы перед выводом.+
Программа вычислений имеет вид:
PROGRAM PIRAMIDA
VAR A, B, C, H, P, S, V: REAL;
BEGIN
READ (A,B,C,H);
P:= (A+B+C)/2.0;
S: = SQRT (P (P-A)*(P-B)*(P-C));
V:-S*H/3.01
Write (‘ ОБМЕН выражения V =’ ,V)
END.
Для организации разветвлений программах используются операторы перехода,
Условные и выбора.
Оператор перехода имеет общий вид записи GO TO n, где n – метка.
С Помошъю оператора перехода управление передается оператору, помеченному меткой n, далее выполняются операторы, стоящие за оператором перехода. Примеры записей: GO TO 2; GO TO 25;
Неправильное использование оператора GO TO усложняет программу за счет переходов вперед или назад по программе, затрудняет ее чтение, отладку и проверку на правильность. Условный оператор имеет общие формы записи:
IF; THEN или IF b THEN a, Else n;
Первая форма записи оператора позволяет организовать вычисление оператора a , если логическое выражение имеет значение TRUE в противном случае выполняется не оператор а , а стоящий за условным . В качестве операторов а, а1, и а2 используется любой простой или составной оператор.
Оператор выбора (CASE) обеспечивает организацию разветвлений путем выбора одного из нескольких операторов. Селектором в операторе выбора является выражение, значение которого может принадлежать типам целого, литерного, логического либо типу, опреляемому пользователем; а так же перечисленному. Оператор выбора имеет список с элементами, предоставляющих собой оператора, перед которыми записывается одна или несколько констант, отделяемых двоеточием. Константа должны быть того же типа что и селектор . Выбор оператора определяется совпадением значений селектора и константы, стоявшей перед оператором.
Организация программ циклической структуры . Программа циклической структуры позволяет многократно вычислять группу операторов при одновременном измерении одного или нескольких параметров . В зависимости от постановки задачи встречается цикл с известным и не известным числом повторений . Программы циклической структуры могут быть организованы с помощью операторов условного и переходов. Однако в языке паскаль имеется специальные операторы цикла: с параметром (FOR) с предусловием (WHILE), с постусловием (REPITE) .
Оператор цикла FOR служит для организации цикла с известным числом повторений. Общий вид записи оператора
FOR I : = m1 TO m2 DO s;
Где i параметр цикла ( может быть величиной только целого типа); м1 и м2 начальное и конечное параметра цикла; S – тело цикла, которое содержит один или несколько операторов. m1 и m2 можно записать константами или выражениями того же типа , что и тип переменный цикл.
Работа оператором заключается в следующем . Вычисляются выражения м1 и м2 .
Параметр цикла i принимает начальное значение( м1) и сравнивается с конечным значением (м2) . Если параметр цикла не превышает значения м2 , то управление передается в тело цикла и операторы выполняются. Затем параметр цикла меняет значения на 1 , и работа повторяется выход из цикла выполнится после того , как параметр цикла превысит конечное значение , при этом параметр цикла не сохранит свое конечное значение. Заменив в операторе цикла ключевое слово TO на DOWNTO, изменим параметр цикла в обратном порядке с шагом L . Общий вид записи оператора в этом случае имеет вид FOR I : - m1 DOWNTO m2 DO s;
Оператор
FOR
следует использовать в тех случаях
когда заранее известно число повторений
или его можно подсчитать. Для вычисления
значений функции при изменении аргумента
с постоянным шагом H
в определенном интервале (от начального
xn
до конечного xn
значения) количество повторений n
= (
Квадратные скобки указывают на то, что результат округляется до целой части путем отбрасывания дробной.
Оператор цикла WHILE позволяет организовать цикл с неизвестным числом повторений , так как оно зависит от вычислений в операторе.
Если логическое выражение имеет значение TRUE, то выполняются операторы , входящие в тело цикла. Как только логическое выражение примет значение FALSE, то оператор не выполняется. Значения Переменных, входящих в условие, должны изменяться в теле цикла, иначе оператор никогда не завершится.
Оператор цикла REPEAT позволяет организовать цикл с неизвестным числом повторений. В отличие от оператора WHILE в операторе REPEAT условие проверяется после каждой итерации ; обеспечивается выполнение, по крайней мере, одного вычисления в цикле ( когда значение логического выражения ЛОЖНО); тело цикла может содержать не один а несколько операторов без записи их в составном операторе. Эта особенность записи оператора объясняется тем, что компилятор воспринимает ключевые слово REPEAT BEGIN, а UNTIL как END UNTIL.