- •Язык Турбо-Паскаль. Общие сведения о языке
- •Структура блока описаний
- •Типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Символьный тип
- •Функции преобразования типов
- •Приоритеты операций
- •Выполняемые операторы языка (для программ линейной структуры)
- •Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Оператор прекращения (прерывания) цикла.
- •Понятие составного оператора, операторные скобки
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных
- •Классификация составных типов
- •Массивы Основные определения
- •Сортировки массива
- •Алгоритмы основных методов сортировок
Операторы ветвлений
Реализация структур ветвления на Паскале осуществляется с помощью условных операторов "if" и с помощью оператора – переключателя "case". В первом случае производится выбор одного из двух альтернативных путей, переключатель позволяет выбрать один (или не одного) из нескольких путей.
Оператор условного перехода.
Это Простейший из условных операторов. Вид оператора:
if <логическое выражение> then goto <метка>;
Этому оператору соответствует структура (состоящая из одного блока), изображенная на рисунке
Рисунок 5. Структура
оператора условного перехода
Оператор условного перехода является самым универсальным из всех управляющих операторов любого языка. С его помощью можно реализовать алгоритм любой сложности. Однако, как и оператор безусловного перехода, он не допустим в структурном программировании, и обладает всеми недостатками оператора goto. Обычно, он используется для организации итеративных циклов, иногда – для перехода на завершающие операторы программы.
Пример:
. . .
if DX < 1e-6 then goto finihs;
. . .
Оператор, следующий за условным переходом, обычно не помечается.
Условный переход является частным случаем неполного условного оператора.
Неполный условный оператор.
Вид оператора:
if <логическое выражение> then <простой или составной оператор>;
Назначение оператора – выполнение или пропуск входящего в него оператора. Если результатом вычисления выражения является истина, оператор выполняется, иначе – не выполняется. В обоих случаях, дальше выполняется следующий оператор.
Этому оператору соответствует структура, изображенная на рисунке
да
нет
простой или
составной оператор
Рисунок 6. Структура
неполного условного оператора
Пример неполного условного оператора:
if Pr then {здесь Pr – логическая переменная,}
begin {если Pr равно TRUE выполнится этот блок}
Writeln(' При таких данных решения нет');
Pr:=FALSE;
end;
Как и предыдущие операторы, неполный условный не является оператором структурного программирования.
Полный условный оператор.
Вид оператора:
if <логическое выражение> then
<простой или составнойоператор ветви 1>
else
<простой или составнойоператор ветви 2>;
Этому оператору соответствует структура, изображенная на рисунке
да
нет
простой или
составной оператор ветви1
простой или
составной оператор ветви 2
Рисунок 7. Структура
полного условного оператора
Примеры написания таких операторов:
if A>0 then Y:=sin(X) else Y:=cos(X);
if (A+B > C) and (B < 0) then { если требуется проверка}
Writeln('Ветвь 1') { нескольких условий, }
else { каждое отношение следует}
Writeln('Ветвь 2'); { заключать в скобки }
Операторы циклов
Программы циклической структуры используются, когда необходимо несколько раз выполнить однотипные действия с различными данными. Если количество повторений тела цикла известно перед началом цикла, он называется арифметическим, если нет – итеративным. Для организации арифметического цикла в блок-схеме алгоритма используется блок "модификатор", а в программе – соответствующий ему оператор "for...".
Итеративный цикл строится с использованием блока "решение", в котором один из альтернативных путей представляет выход из тела цикла. В программе такой цикл может выполняться с помощью специальных операторов итеративных циклов или оператора условного перехода. В данной работе будет использоваться только "if..." оператор.