Простые и структурированные операторы. Выражения
Операторы языка Паскаль
Все операторы языка Паскаль делятся на простые и структурированные.
Примерами простых операторов являются рассматриваемые далее оператор присваивания и операторы ввода и вывода. Структурированные операторы содержат простые или структурированные операторы внутри себя.
Оператор присваивания
( Синтаксис
<Имя переменной> := <Выражение>
Тип значения выражения должен либо совпадать с типом переменной, либо являться преобразуемым к типу переменной. Например, целочисленное значение можно преобразовать к вещественному типу, но не наоборот. Символьное значение можно преобразовать к строковому, но нельзя к целому или вещественному и т.д.
Оператор вывода
Синтаксис
Write[Ln](<Список выражений>);
В списке выражений через запятую может перечисляться любое количество значений, которые необходимо вывести на экран. Оператор WriteLn, как и Write, выводит на экран значения указанных выражений, но в отличие от оператора Write после этого переводит курсор на следующую строку. Для каждого выражения можно дополнительно указать формат вывода.
Синтаксис формата вывода
<Выражение>[:<Минимальная длина>[:<Точность>]]
<Минимальная длина> и <Точность> – целые числа. Если длина значения выражения при выводе на экран будет меньше, чем указанная минимальная длина, то оно будет дополнено слева соответствующим количеством пробелов. Точность задает количество десятичных знаков, которые будут напечатаны при выводе вещественных чисел. Если точность не указана, вещественные числа выводятся в экспоненциальной форме.
Пример
WriteLn(Pi,Sqrt(2)/2);
WriteLn('Sin(Pi/4)=',Sin(Pi/4):1:5);
Результат выполнения
3.14159265358979E+0000 7.07106781186548E-0001
Sin(Pi/4)=0.70711
Оператор ввода
Синтаксис
ReadLn(<Список имен переменных>);
Оператор ReadLn вводит с клавиатуры значения указанных в списке переменных. Значения при вводе должны быть разделены пробелами. При несоответствии типов введенных значений с типами переменных выдается сообщение об ошибке.
Составной оператор
Синтаксис
BEGIN
<Оператор 1>;
<Оператор 2>;
∙ ∙ ∙
<Оператор N-1>;
<Оператор N>
END
Операторы внутри операторных скобок BEGIN END разделены точками с запятой. После последнего оператора точку с запятой ставить не требуется, хотя допустимо и ошибки не вызовет.
Действие составного оператора заключается в последовательном выполнении содержащихся в нем операторов.
Условный оператор
Синтаксис
IF <Логическое выражение> THEN <Оператор 1>
[ELSE <Оператор 2>]
Если значение логического выражения является истинным, происходит выполнение оператора 1. Если же значение логического выражения ложно и присутствует ключевое слово ELSE, выполняется оператор 2. Если значение логического выражения ложно и ключевое слово ELSE отсутствует, то ничего не происходит.
Пример
IF x<Min THEN Min:=x;
IF A>B THEN
A:=A-B
ELSE
IF B>A THEN
B:=B-A
ELSE
BEGIN
WriteLn('НОД = ',A);
Exit;
END;
Выражения
В простейшей форме определение выражения можно сформулировать так: выражениями являются константы и переменные, соединенные между собой знаками операций. В выражениях также можно использовать функции.
Арифметические операции
Операция | Обозначение | Описание |
Сложение | + | Тип результата зависит от типов аргументов: для целых аргументов получается целый результат, а если хотя бы один из аргументов вещественный, результат тоже вещественный |
Вычитание | – | |
Умножение | * | |
Деление | / | Результат всегда вещественный, даже если аргументы целые и делятся без остатка, например, 10/2 равно 5.0, а не 5 |
Целая часть от деления | div | Определены только для целых чисел, результат также целое число, например 13 div 5 = 2, 13 mod 5 = 3 |
Остаток от деления | mod |
Логические выражения
Логическими выражениями называются выражения, которые принимают одно из значений логического типа (Boolean): истина (True) или ложь (False). Логические выражения конструируются при помощи логических операций.
Логические операции
Отношения: =, <>, <, >, <=, >=. Определены для всех скалярных типов, а также для строковых.
Логические связки: NOT (не – отрицание), AND (и), OR (или), XOR (исключающее или). Определены для аргументов логического типа. Рассмотрим действие логических связок при помощи таблиц истинности. При этом будем обозначать истину (True) единицей, а ложь (False) нулем.
A | NOT A |
A | B | A AND B | A OR B | A XOR B |
Приоритеты операций
Вычисление значений любых выражений происходит с учетом приоритета операций.
Приоритет | Операции |
1 (высший) | @, not, – (отрицание) |
*, /, div, mod, and, shl, shr | |
+, – (вычитание), or, xor | |
4 (низший) | =, <>, <, >, <=, >=, in |
Важно правильно записывать выражения в соответствии с этой таблицей приоритетов операций. Например, выражение A>0 AND B>0 будет интерпретироваться как (A>(0 AND B))>0, что вызовет ошибку, так как выражение A>(0 AND B) – логического типа, а 0 – числового. В данном случае выражение следует записывать так: (A>0) AND (B>0).