- •Лекция 1 Тема: Организация линейной программы. Цель: Ознакомиться с алфавитом языка Паскаль, операторами присваивания и ввода-вывода.
- •Общие сведения
- •Алфавит языка Паскаль
- •Константы
- •Целые Действительные
- •Символьные константы
- •Переменные
- •Перечисляемые типы данных
- •Оператор присваивания
- •Выражения
- •Организация программы
- •Комментарии
- •Операторы ввода-вывода
- •Операторы ввода
- •Операторы вывода
- •Стандартная форма вывода данных
- •Управление формой вывода данных
- •Оператор условного перехода
- •Оператор варианта.
- •Логические отношения
- •Лекция 3 Тема: Операторы цикла. Цель: Познакомиться с операторами цикла, научиться применять их при составлении программ.
- •Понятие циклического процесса.
- •Операторы цикла с присваиванием.
- •Оператор цикла с предусловием.
- •Оператор цикла с постусловием.
- •Вложенные циклы.
Оператор варианта.
Оператор варианта является обобщением условного оператора: он дает возможность выполнить один из нескольких операторов в зависимости от значения некоторого выражения, называемого селектором. В общем случае оператор имеет вид:
CASE <селектор> OF
<список меток 1>: <оператор 1 >;
<список меток 2>: <оператор 2 >;
…………………………………………….
<список меток N>: <оператор N >;
END;
Где CASE (выбор), OF(из), END(конец) – служебные слова;
Селектор – выражение любого скалярного типа, кроме вещественного;
Оператор – любой оператор языка, в том числе и составной;
Список меток – список разделенных запятыми значений выражения селектор или одно его значение. Эти константы, следовательно, должны иметь тот же тип, что и селектор, и называются они метками варианта. Метка варианта – не обычная метка: это не обязательно целое число, она не описывается в разделе LABEL, на нее нельзя ссылаться в операторе GOTO.
Оператор варианта выбирает для исполнения тот оператор, одна из меток которого равна текущему значению выражения селектор. По окончании выполнения выбранного оператора управление передается в конец оператора CASE.
Метки полей не должны пересекаться. Если ни одна метка не найдена, то управление передается за оператор END.
Можно использовать следующую конструкцию:
CASE I OF
1 : <оператор 1>;
2 : <оператор 2>;
ELSE <оператор 3>; END;
Рассмотрим оператор на примере:
CASE NOMER OF
0 : y: =G;
1..3 : y: =G*X;
6,7,8 : y: =G*sqrt (abs (x));
9..11 : y: =G*exp (x)+H;
12 : y: =G*sqr (sin (x)+H);
END;
В зависимости от значения селектора NOMER значение функции У вычисляется по одной из перечисленных формул. Схематическое представление оператора CASE – структура отбора, представлена для данного примера на рис.4.
Рис. 4
Метка может быть константой, диапазоном констант и списком:
0 и 12 – константа;
1..3 и 9..11 – диапазон констант;
6,7,8 – список констант.
Такие вычисления могут быть выполнены и с помощью вложенных условных операторов, однако это в значительной степени удлинило бы программу и сделало бы ее менее наглядной.
Пример: Найдем остаток от деления значения целого выражения С=К*(А+В) на 4 и выведем сообщение о величине остатка. Если остаток равен 0, то значение переменной С оставим без изменения, если 1 или 3 – уменьшим на величину остатка, если 2 – увеличим на величину остатка. Новое значение С так же выведем на печать (оно делится на 4 нацело).
Программа решения имеет вид
{ОПРЕДЕЛЕНИЕ ОСТАТКА}
PROGRAM OSTATOK;
CONST
DEL=4;
VAR A, B, C, K: INTEGER;
OST: 0..3;
BEGIN {OSTATOK}
READ (A, B, K);
WRITELN (‘A=’, A,’B=‘, B,’K=’, K);
C: =K*(A+B);
OST: =C MOD DEL;
CASE OST OF
0: WRITELN (‘ОСТАТОК 0’);
2: BEGIN
WRITELN (‘ОСТАТОК 2’);
C: =C+OST
END;
1,3: BEGIN
WRITELN (‘ОСТАТОК 1,3’);
C: =C-OST
END;
END {CASE}
END.
Введены дополнительные обозначения: константа DEL – делитель, равный 4, OST – величина остатка, описанная как переменная ограниченного целого типа с диапазоном от 0 до 3.
Далее составной оператор или операторные скобки с комментарием {остаток}, вводятся переменные А,В,К и выводятся. Вычисляется переменная С и OST от деления С на DEL. По оператору варианта происходит выбор остатка, если OST =0, то выводится результат – остаток 0, если OST=2, то новые операторные скобки, выводится остаток 2 и величина С увеличивается на величину OST, OST=1 или 3 – новые операторные скобки, вKЀводится остаток 1, 3 и величина С уменьшается на величину OST.
Оператор безусловного перехода
Общий вид оператора:
GOTO <метка>
где GOTO (идти к) – служебное слово; <метка> - целое число без знака, определяемое в разделе LABEL как метка оператора. Оператор GOTO производит передачу управления к оператору, помеченному указанной меткой.
Применение оператора безусловного перехода в языке Паскаль является необязательным и нежелательным, так как присутствие этого оператора в программе нарушает ее структурную целостность и наглядность, такую программу становится трудно читать, отлаживать и модифицировать. Используют оператор GOTO лишь в исключительных случаях, например для выхода из структурного (составного) оператора при возникновении особой ситуации в программе.
