Главная » Free Pascal » Краткая справка по операторам языка Free Pascal

0

Основные операторы представлены в табл. П1.7.

Таблица П1.7. Операторы языка Free Pascal

Формат оператора

Пояснение

Элементарные операторы (ES — Elementary Statements)

v:=e;

Оператор присваивания. Как правило, тип значения выражения e и тип переменной v должны совпадать. Единственное исключение — присвоение целочисленных значений переменным вещественного типа

v1:=v2:=…:=e;

Оператор множественного присваивания. Значение выражения e присваивается нескольким переменным

v  = e;

Краткая запись оператора v:=v e;, заимствованная из языка

C. В качестве знака операции    могут выступать операции сложения (+), вычитания (-), умножения (*) и деления (/). Этот формат может использоваться при включении в текст программы директивы {$COPERATORS ON}

Таблица П1.7 (продолжение)

Формат оператора

Пояснение

Элементарные операторы (ES — Elementary Statements)

n_proc(p1,p2,…);

Оператор вызова процедуры с именем n_proc и передачи ей списка фактических параметров

n_proc;

Оператор вызова процедуры без параметров

read(v1,v2,…);

Оператор ввода данных (точнее, вызов системной

процедуры) с клавиатуры. Числовые значения, набираемые на клавиатуре, должны отделяться друг от друга одним или несколькими пробелами. Первое числовое значение присваивается переменной v1, второе — переменной v2 и т. д. При вводе строкового значения имя соответствующей строковой переменной может быть только последним в списке ввода. Признаком завершения ввода является нажатие клавиши <Enter>. После этого курсор дисплея располагается вслед за последним введенным символом

readln(v1,v2,…);

Аналогичный оператор (процедура) с переводом курсора дисплея в начало следующей строки

write(e1,e2,…);

Оператор вывода данных (точнее, вызов системной процедуры) на экран дисплея. Значение очередного выражения списка переводится из машинного формата в символьное представление в соответствии с типом значения и выдается на экран дисплея. Если числовой элемент списка вывода сопровождается дополнительным указанием типа e:n

или e:n:m, то для его отображения в текущей строке вывода

резервируется n позиций. В первом случае на выделенном поле с прижимом к правой границе располагается целая часть числа. Во втором случае числовое значение выводится с m цифрами в дробной части. Такое форматирование при выводе числовой информации позволяет добиться общепринятого представления табличных данных. После вывода курсор дисплея остается в первой свободной позиции текущей

строки вывода

writeln(e1,e2,…);

Аналогичный оператор (процедура) с переводом курсора дисплея в начало следующей строки

label m;

goto m;

m: оператор;

Безусловный переход на оператор с меткой m. В качестве метки может выступать либо целое число, либо алфавитно- цифровой идентификатор. В любом случае метка m должна быть объявлена в разделе label и обязана находиться

в той же программной единице (процедуре, функции

или головной программе), где использован оператор goto. От оператора, на который передается управление, метка отделяется двоеточием

Таблица П1.7 (продолжение)

Формат оператора

Пояснение

Составной оператор (CS — Compound Statement)

begin

AS1; AS2;

……

end

Составные операторы используются для объединения нескольких произвольных операторов (AS — Arbitrary Statement) в один более сложный оператор. Именно такие конструкции должны использоваться в структурных единицах типа "циклы" и "условные операторы"

Структурные операторы (SS — Structured Statements)

if условие then CS;

Условный оператор (укороченный формат). Если условие соблюдается, то выполняется оператор CS. В противном случае выполняется оператор, следующий за if

if условие then CS1

else

CS2;

Условный оператор (полный формат). При соблюдении условия выполняется оператор CS1, в противном случае выполняется оператор CS2

case e of c1:AS1; c2:AS2;

[ else

AS;]

end;

Оператор выбора (переключатель). Значением переключающего выражения e может быть величина порядкового типа (целое число, символ, элемент перечисления). Если значение e равно константе c1, то выполняется оператор AS1 (им, в частности, может быть составной оператор) и вслед за ним происходит выход из переключателя. При e=c2 выполняется оператор AS2 с последующим выходом из переключателя и т. д. Если значение e не совпадает ни с одной из перечисленных констант, то выполняются операторы, расположенные вслед за else. Фрагмент с else может отсутствовать (сокращенная версия переключателя).

Условие переключения может быть задано не только одной константой:

c1,c2,c3:AS1; //список констант c4..c5 :AS2; //диапазон значений

Синонимом служебного слова else является otherwise

for cv:=v1 to v2 do CS;

Оператор цикла со счетчиком повторений. В качестве управляющей переменной cv (счетчика цикла) можно использовать только переменную порядкового типа. Цикл начинается с вычисления конечного значения счетчика v2.  Если это значение меньше начального значения счетчика v1, то тело цикла (оператор CS) не выполняется. Если v1<v2, то цикл начинается с засылки в переменную cv ее начального значения v1. После очередного выполнения тела цикла значение счетчика увеличивается на 1 и сравнивается с его конечным значением v2. Цикл повторяется до тех пор, пока значение счетчика меньше или равно v2. Попытка изменить значение счетчика внутри тела цикла считается ошибкой

Таблица П1.7 (окончание)

Формат оператора

Пояснение

Структурные операторы (SS — Structured Statements)

for cv:=v1 downto v2 do

CS;

Оператор цикла с обратным пересчетом. Начальное значение счетчика v1 должно быть больше конечного v2. Перед очередным повторением цикла из счетчика вычитается 1

repeat

AS1; AS2;

…..

until условие;

Цикл с постусловием. Сначала выполняется цепочка операторов, расположенных между repeat и until (тело цикла). Затем проверяется выполнение условия, и в случае его нарушения тело цикла повторяется. Цикл завершает свою работу, когда условие становится истинным

while условие do CS;

Цикл с предусловием. Сначала проверяется условие, и если оно не нарушено, то выполняется оператор CS (тело цикла). Затем все повторяется, начиная с проверки условия. В случае нарушения условия цикл завершает свою работу

with name_rec do name_fld1:=…; read(name_fld2);

end;

Конструкция with позволяет сократить запись наименований полей записи. В приведенном примере вместо составных имен name_rec.name_fld1, name_rec.name_fld2 использованы более короткие имена

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии