Простая программа начинается с заголовка программы служебным словом PROGRAM, за которым пишется имя программы. После заголовка следует раздел объявления именованных констант CONST и раздел объявления переменных VAR. Далее следует основной блокпрограммы,начинающийся ключевым словом BEGIN и заканчивающийся словом END с точкой в конце. Основной блок программы состоит из выполняемых операторов, в которых используются только те данные, что были объявлены в разделе описаний. В конце каждого оператора обязательно должен стоять символ “ ; “. Программа компилируется последовательно, поэтому все, что используется в программе или подпрограмме, должно быть определено выше.
Приведем пример программы, преобразующей вещественные числа в целые:
PROGRAM INTRЕAL;
CONST Y= 5.7;
VAR A, B, C: INTEGER;
X, Y : REAL;
BEGIN
READ(X); {ввод числа с клавиатуры}
A :=TRUNС(X); {выделение целой части X}
B := ROUND(Y); (* округление Y *)
C := B — A;
WRITELN( ‘X= ‘ , X, ‘A= ‘ , A , ‘ B= ‘ , B, ‘ C= ‘ , C); {вывод на экран
монитора}
END .
Программа на языке Паскаль может содержать произвольные комментарии.
Комментарий в Pascal ABC — это произвольная последовательность любых символов, обрамленная фигурными скобками { и} или составными символами
(* и *). С этой целью применяется также двойной слеш-символ //, после которого остаток строки воспринимается как комментарий. Комментарий разрешается вставлять в любое место программы, где по смыслу может стоять пробел.
ОПЕРАТОР ПРИСВАИВАНИЯ И ЧИСЛОВЫЕ ДАННЫЕ
Арифметические выражения
В программах на Паскале обрабатываются выражения различных типов. Простое выражение представляет собой константу или переменную.
Сложное выражение содержит константы и переменные, объединенные знаками операций, скобками и функциями. Данные, которые участвуют в операциях, называются операндами. Операциями называются действия, производимые над данными (т.е. операндами).
Арифметическим называется выражение, содержащее операнды целого или вещественного типов и арифметические операции. Правило для определения типа арифметического выражения: если в выражении все операнды целые и отсутствует операция деления, то результат выражения получится целого типа (integer), в противном случае — вещественного типа (real).
В арифметических выражениях могут использоваться бинарные и унарные арифметические операции (табл. 1), а также стандартные функции.
Таблица 1
Приоритеты операций в выражении
№ п/п | Арифметические | Логические | Отношения | Другие |
*, /, div, mod +, — | NOT аnd, shl, shr, оr, xor | =, ,,= | @ адресное преобразование in |
К бинарным относятся арифметические операции, применяемые к двум операндам: умножение ( * ), деление ( / ), целочисленное деление ( DIV), остаток от целочисленного деления (MOD), сложение (+) и вычитание ( — ).
К унарным относятся арифметические операции, применяемые к одному операнду: операции + и – для целых вещественных чисел.
При выполнении целочисленного деления операцией DIV результатом является целая часть частного (остаток отбрасывается), например: 15 DIV 4 = 3.
В случае применения операции MOD результатом является остаток от деления левого на правый операнд (оба операнда целые), например: 11 MOD 3 = 2.
Согласно общим правилам вычисления в первую очередь вычисляются выражения, заключенные в круглые скобки, а затем вычисляются значения функций, входящих в выражение.
В арифметических выражениях без скобок вычисления выполняются в соответствии с приоритетом операций (табл. 1), т.е. сначала выполняется унарная операция (унарный минус), затем операции умножения и деления ( *, /, div, mod) и в последнюю очередь — операции сложения и вычитания ( +, — ) .
Оператор присваивания
Как и во всех языках программирования, в Pascal ABC имеется оператор присваивания. Он служит для определения или переопределения значения переменной. В случае переопределения старое значение переменной стирается и записывается новое значение. Структура оператора присваивания имеет следующий вид:
:= ;
Для идентификатора (имени переменной) допускается использовать любой тип, за исключением файлового. При этом тип идентификатора и тип выражения в операторе присваивания должны быть совместимы [1–3], т.е. для арифметического выражения используется переменная арифметического типа, для логического выражения – переменная логического типа и т.п.
С помощью этого оператора переменной, идентификатор которой стоит в левой части, присваивается значение выражения. Для обозначения операции присваивания применяется составной символ присваивания ( := ), слева от которого записывается имя переменной, а справа — выражение, значение которого предварительно вычисляется перед выполнением присваивания.
Пример арифметического оператора присваивания, где переменным присваиваются значения арифметических выражений:
y := x*y + sin(x); { VAR x, y: real ; }
x := 0; { VAR x: integer ;}
Пример логического оператора присваивания, где переменной присваивается значение логического выражения:
B := ( X1 ); { VAR X, K: real; B: boolean;} .
Пример оператора присваивания, где переменной присваивается символ:
S := ‘ + ‘; { VAR S: char;}
Процедуры ввода-вывода
Ввод данных осуществляется с клавиатуры с помощью процедур Read или ReadLn. При повторных вызовах процедура Read позволяет вводить данные в одной и той же строке, а ReadLn выполняет ввод каждый раз с новой строки.
Например, ReadLn(x); означает ввод одного значения для переменной х. При выполнении данной процедуры происходит приостановка выполнения действий в программе и переход компьютера в состояние ожидания. Для ввода данных необходимо при помощи клавиатуры набрать нужное значение для переменной х и затем нажать клавишу ввода “Enter”.
Для процедуры ввода Read(x, y); необходимо будет ввести через пробел уже два значения: одно для переменной х, другое для переменной y.
Вывод данных на экран монитора осуществляется при помощи процедур write или writeln. При повторных вызовах процедура write продолжает выводить данные в одной и той же строке, а writeln выводит данные каждый раз с новой строки.
Например, процедура WriteLn(n:3); позволяет вывести на экран значение переменной n целого типа по заданному формату “ :3 ”. Согласно этому формату число позиций, отводимых под запись всего числа, включая его знак, будет равно 3.
Процедура Write(‘ s = ’ , s:8:3); выводит на экран сначала комментарий в виде символов s =, а затем само значение вещественной переменной s по указанному формату “ :8:3”, где 8 будет задавать общее число позиций, отводимых под запись всего числа, включая его знак, а 3 определяет число цифр после десятичной точки в записи этого же числа.