Условный оператор
Используя условный оператор, вывод результата в предыдущей программе можно сделать более информативным. Можно, например, заменить оператор WRTELN (Р) тремя операторами:
WRTE (СРЕДИ ЧИСЕЛ А, В и С); F Р
THEN WRTE (ИМЕЕТСЯ ПАРА) ELSE WRTE (НЕ ИМЕЕТСЯ); WRTELN (ВЗАИМНО ОБРАТНЫХ)
Как видно уже из этого простого примера, естественная форма оператора F позволила отказаться от неизбежного в данном случае при использовании Бейсика оператора GOTO, что делает программу более лаконичной и наглядной.
Особенно эффективно идеи структуризации реализованы в операторе цикла языка Паскаль. Этот оператор имеет три формы записи, две из которых фактически совпадают с базовыми структурами ЦИКЛ-ПОКА и ЦИКЛ-ДО.
Оператор цикла, соответствующий структуре ЦИКЛ-ПОКА имеет в Паскале вид:
WHLE -< условно DO <тело>
Здесь WHLE (пока), DO (делать, исполнять) — ключевые слова, < условие> является логическим выражением, а С тело > состоит из одного или нескольких операторов (в последнем случае тело является составным оператором, т. е. заключается в скобки BEGN и END). Тело цикла исполняется до тех пор, пока <условие> остается истинным.
Оператор цикла, соответствующий структуре ЦИКЛ-ДО, записывается по форме
REPEAT <тело> UNTL < условие >
Здесь REPEAT (повторять), UNTL (до) —ключевые слова, имеют тот же смысл, что и в ЦИКЛ-ПО-КА. В данном случае выход из цикла происходит сразу после того, как <условие > станет истинным.
Если число повторений в цикле не зависит от результата работы оператора цикла, а, например, известно заранее, то для этих целей лучше всего может быть использован имеющийся в Паскале оператор цикла с параметром.
Выше мы отмечали четыре стандартных типа (REAL, NTEGER, CHAR, BOOLEAN), которые считаются заданными для каждой Паскаль-программы. Важнейшей особенностью Паскаля является наличие мощного аппарата, позволяющего вводить произвольные типы данных.
Bce типы данных в Паскале разбиваются на два больших класса — скалярные (перечислимые) и структурные. Описание скалярного типа имеет вид:
TYPE <имя>= (<список констант>)
Здесь TYPE (тип) — ключевое слово, <список констант> — перечень констант задаваемого типа, перечисленных через запятые. Пример:
TYPE ДЕНЬ= (ПОНЕДЕЛЬНИК, ВТОРНИК, СРЕДА, ЧЕТВЕРГ, ПЯТНИЦА, СУББОТА, ВОСКРЕСЕНЬЕ); ФИГУРА = (КРУГ, ПРЯМОУГОЛЬНИК);
Значения скалярного типа упорядочены и получают порядковые номера. Порядковый номер первого элемента — 0, второго—1 и т. д. Из этого следует, например, что
PRED (СУББОТА) = ПЯТНИЦА
SUCС (КРУГ) = ПРЯМОУГОЛЬНИК
Введя в программу описание новых типов, мы получаем возможность описывать переменные этих типов. Так, имея приведенный выше скалярные типы ДЕНЬ и ФИГУРА, можно составить, например, такие описания переменных.
Согласно приведенному описанию переменные X и Y могут имеет своими значениями ПОНЕДЕЛЬНИК, ВТОРНИК, СРЕДА, ЧЕТ ВЕРГ, ПЯТНИЦА, СУББОТА, ВОСКРЕСЕНЬЕ, а переменна А — одно из значений КРУГ, ПРЯМОУГОЛЬНИК.
Значения переменных структурного типа (в отличие от скаляруных переменных) состоят из нескольких отдельных компонент. Структурные типы данных позволяют, например, описать информацию: фамилия, имя, отчество; год рождения; номер школы город и т. п. Среди данных структурного типа в Паскале, в частности, имеются множества и массивы.

