Операторы Турбо-Паскаля
Оператором называют специальную совокупность служебных
слов, идентификаторов и специальных знаков выполняющих определенные действия.
Операторы отделяются друг от друга точкой с запятой ";". Рассмотрим операторы
Турбо Паскаля.
- Оператор присваивания: (:=)
Оператор присваивания служит для присваивания значений
переменным, например: x:=1; a:=5. 02; b := 32*a+Sin(x); S:= 'Иван Иваныч';
- Составной оператор: Begin "операторы"; End;
Составной оператор служит для записи в свое тело других
операторов, последовательность которых рассматривается в данном случае как один
оператор. Этим оператором начинается и заканчивается раздел выполнения основной
программы, подпрограммы, функции. После последнего оператора END основной
программы ставится точка.
Операторы ввода/вывода данных
- Операторы вывода данных на экран Write("сп"); или Writeln("сп");
Здесь "сп" - список переменных.
Например, операторы Write(a, b, c); или Write(a);
Write(b); Write(c); или Writeln(a, b, c); - выводят значения переменных "a",
"b", "c" начиная с текущей позиции курсора. После вывода данных оператором
Write("сп"); курсор остается за последним выведенным символом. Оператор
Writeln("сп"); после вывода данных переводит курсор на первую позицию следующей
строки. Например, для вывода значений переменных "a", "b", "c" в трех строках
экрана следует написать:
Writeln(a); Writeln(b); Writeln(c);
Оператор Writeln; переводит курсор на начало следующей
строки экрана. Оператор Write('Моя первая программа !'); выводит на экран
указанный текст.
В операторах вывода допускается производить
арифметические действия, например, оператор Writeln(32*a+Sin(x)); соответствует
операторам b:=32*a+Sin(x); Writeln(b);
При выводе данных можно задавать формат вывода. Для
этого после имени переменной ставится знак двоеточие " : " , например:
Writeln(a:5:2); - при выводе значения переменной вещественного типа отводится 5
позиций (включая отрицательный знак и точку), из них 2 позиции отводится для
вывода цифр в дробной части. При выводе значения переменной целого типа
задается количество позиций для числа (включая отрицательный знак), например:
Writeln(i:8);
При выводе значений символьных и строковых переменных
формат определяет чис-ло позиций для вывода значения переменной (текста).
При выводе число или текст выравниваются по правому
краю отведенного поля, например: если а:=5. 02;, то оператор Writeln('а=',
a:6:2); выведет на экран: а= _ _ 5. 02, если n:= '116'; s:= 'Школа N';, то
оператор Writeln(s:7, n:6); выведет на экран надпись: Школа N _ _ _ 116 .
Для выравнивания числа или текста по левому краю
отведенного поля первый знак формата задается отрицательным, например: оператор
Writeln('а=', a:-8:2); выведет на экран надпись: а=5. 02 оператор Writeln(s:7,
n:-6); выведет на экран надпись: Школа N116 .
При недостатке количества позиций для вывода число или
текст выводятся полностью, а формат игнорируется, кроме формата вывода дробной
части числа. Если формат вывода не задавать, то значения целых и строковых
переменных выводятся полностью, а вещественных - в экспоненциальной форме с
количеством цифр, соответствующих типу переменной, например, оператор
Writeln('а=', a); выведет на экран надпись: a=5. 0200000000E+00 (тип Real),
либо a=5. 02000000000000E+0000 (тип Double).
Приведем пример программы, выполняющей различные
операции с переменными разного типа.
Program N_1; { работа с переменными разного типа }
var
x, y, z : real;
x0, y0 : byte; { описание типов переменных }
x1, y1, z1 : integer;
xb, yb, zb : boolean;
c1, c2, c3 : char;
s1, s2, s3 : string;
Begin
x := 5.8;
y := 3.4;
x1 := 43;
y1 := 28; { присвоение значений }
c1 := 'Z';
c2 := 'S';
x0 := 65;
xb := True;
yb := False;
s1 := 'Иванов ';
s2 := 'Петров ';
Writeln('Математические операции:');
Z := x+y; { и т. д. }
Write('x:=', x:3:1, ' y:=', y:3:1);
Writeln('Логические операции:');
Zb := xb and yb; { и т. д. }
Write('xb:=', xb,' yb:= ', yb);
Writeln('Математические функции:');
Z := sin(x*Pi/180); { и т. д. }
Writeln('Математические процедуры:');
Write('x1:=', x1);
Inc(x1); { и т. д. }
Writeln('Функции преобразования типов:');
c3 := Chr(x0);{ и т. д. }
Write('x0:=', x0);
readln { Задержка экрана до нажатия Enter }
end.
- Операторы ввода данных с клавиатуры Read("сп"); или Readln("сп");
Здесь "сп" - список переменных.
Перед вводом данных с клавиатуры желательно вывести на
экран поясняющее сообщение. Для этого в программу следует включить оператор
вывода, например: Write('введите значение а='); затем оператор Readln(a); При
выполнении программы на экране появится надпись: введите значение а= . Оператор
Readln(a); будет ждать ввода данных. Следует набрать на клавиатуре значение
переменной "а", например, число и нажать клавишу Enter.
Для ввода значений нескольких переменных, например, a,
b, c применяются конструкции вида: Readln(a); Readln(b); Readln(c); или
Readln(a, b, c);
При вводе нескольких числовых данных, например,
оператором Readln(a, b, c); необходимо после набора каждого значения переменной
нажимать клавишу SpaceBar или Enter, а в конце ввода - Enter.
При вводе значений символьных переменных нажатие
клавиши Enter приводит к присвоению символьной переменной значения кода клавиши
Enter (#13), поэтому значения символьных переменных вводятся одна за другой без
нажатия Enter или SpaceBar (#32). Например, оператор: Readln(с1, с2, с3, c4);
ожидает ввода значений символьных переменных с1, с2, с3, c4, т. е. набора на
клавиатуре символов, например: "У", "Р", "А", "!" и нажатия Enter. Тогда
оператор Writeln(с1, с2, с3, c4); выведет на экран надпись: УРА!
Оператор Readln; без параметров служит для приостановки
выполнения программы и ожидает нажатия клавиши Enter, т. е. применяется с целью
приостановки вывода информации на экран для просмотра результатов. При вводе
данных предпочтительнее использовать оператор Readln, поскольку оператор Read
после срабатывания не считывает управляющий код (#13), который остается в буфере
клавиатуры.
Приведем пример программы возведения положительного
числа "x" в степень"n", т. е. y = xn. Расчет производится
по формуле: y=Exp(n*ln(x)).
Program N_2; {возведение положительного числа в степень}
Var n, x, y : real;
BEGIN
Writeln('Программу разработал Иванов');
Writeln('Возведение положительного числа x степень n');
Writeln('x = ');
Readln(x);
Write('n = ');
Readln(n);
y := exp(n*ln(x));
Writeln('результат y=', y:10:6);
readln; {задержка экрана до нажатия Enter}
END.