- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Операторы ветвлений
Реализация структур ветвления на Паскале осуществляется с помощью условных операторов "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'); { заключать в скобки }
Если в качестве оператора одной из ветвей используется условный оператор, то можно выбирать один из трех возможных путей. Вообще, количество "if"-операторов должно быть на единицу меньше, чем возможных ветвей алгоритма. Например, если нужно задать Y=-1, при X<0, Y=0 при X=0 и Y=1 при X>0, такой алгоритм и соответствующий ему текст на Паскале будет выглядеть:
If X<0 then Y=-1
else
if Y>0 then Y=1
else Y=0;
Рисунок 8. Вложенный
условный оператор
Условиями, определяющими какую ветвь алгоритма выполнять, являются логические выражения, принимающие значение TRUE или FALSE. В качестве таких выражений часто используются отношения между двумя однотипными данными. Турбо-Паскаль разрешает сравнивать вещественные, целочисленные, строчные и символьные данные, а также данные, описанные с помощью одного и того же описателя, но только на равенство и неравенство.
Лекция 15