СТРУКТУРНЫЕ ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ
План лекции
§ Составной оператор
§ Условные операторы
w Оператор условия IF
w Оператор выбора CASE
§ Операторы повтора
w Оператор повтора For
w Оператор повтора Repeat
w Оператор повтора While
Для программирования сложных алгоритмических структур, таких, например, как ветвления и циклы, необходимо иметь представление о структурных операторах. Структурные операторы представляют собой структуры, построенные из других операторов по строго определенным правилам. Все структурные операторы подразделяются на три группы: составные, условные и повтора.
Составной оператор
Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками Begin ... End.
Формат
begin
<оператор;>
<оператор;>
. . .
<оператор>
end;
Пример
Записать, используя составной оператор, выражение .
Begin
A:= Sin(Pi*x);
B:= exp(2*x);
Rez:= A + B;
end;
Составной оператор может находиться в любой части программы и воспринимается как единое целое. Обычно используется при организации разветвлений или циклов.
Условные операторы
Условные операторыиспользуются для реализации разветвляющихся алгоритмов.
Разветвляющимся называется алгоритм, который содержит несколько ветвей, отличающихся друг от друга содержанием вычислений. Выход вычислительного процесса на ту или иную ветвь алгоритма определяется исходными данными задачи.
В разветвляющихся вычислительных процессах отдельные этапы вычислений (операторы) выполняются не всегда в одном и том же порядке. В зависимости от условий, проверяемых по ходу вычислений, выбираются для исполнения различные их последовательности. Поэтому в программе должно содержаться указание о том, в каком случае надо выбирать для исполнения тот или иной оператор. Это указание формулируется в виде отношения, например, условия . Если это условие истинно, то выполняется соответствующий этому условию оператор, в противном случае, если условие ложно, выполняется другой оператор.
Для задания подобного рода разветвляющихся вычислительных процессов служат условные (выбирающие) операторы, которые относятся к числу производных операторов. Такой оператор обеспечивает выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий. Pascal допускает использование двух условных операторов IF и CASE.
Оператор условия IF является одним из самых популярных средств, изменяющих естественный порядок выполнения операторов программы. Он может принимать одну из следующих форм:
полная форма
If <условие> Then <оператор1>
Else <оператор2>;
Если условие истинно, выполняется оператор1, в противном случае – оператор2;
неполная форма
If <условие> Then <оператор>;
Если условие истинно, выполняется оператор, стоящий за Then, в противном случае – выполняется оператор, стоящий за If.
Условие может быть простым и сложным. В последнем случае используются логические операции AND, OR, NOT,
например, If (A>3) And (A<5).
Блок-схемы полной и неполной условной конструкции подробно рассмотрены в в лекции 1.
Пример
If X>0 Then Writeln(‘X больше 0’)
Else Writeln (‘X меньше или равно 0’);
Перед Else точка с запятой не ставится. Если после Then или Else необходимо выполнить не один, а несколько операторов, они оформляются как составной оператор, т.е. заключаются в операторные скобки Begin ... End.
Пример
If X<=A Then Begin
Y:= A*X;
Z:= Ln(X)+Y;
End;
Один оператор IF может входить в состав другого оператора IF. Такие конструкции называют вложенными. Допускается до 7 вложений оператора IF друг в друга.
Оператор выбора CASE является обобщением оператора IF и позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором, и списка параметров, каждому из которых предшествует список констант выбора. Как и в операторе IF, здесь может присутствовать слово ELSE, имеющее тот же смысл.Блок-схема оператора Case представлена на рисунке 1.
Формат
Case <выражение-селектор> of
<список1>: <оператор1;>
<список2>: <оператор2;>
. . .
<списокN>: <операторN>
else <оператор>
end;
Вход
…
Выход
Рисунок1 – Блок-схема оператора Case |
Эта структура обеспечивает выбор одного из ряда возможных действий в зависимости от значения, которое принимает выражение (условие) Р.
Пример
Селектор целочисленного типа | Селектор интервального типа |
Var I:integer; Begin . . . Case I of 1:Z:=A+B; 2:Z:=A+10; 3:Z:=A+100; end; | Var I:integer; Begin . . . Case I of 1..2: Writeln(‘WINTER’); 3..5: Writeln(‘SPRING’); 6..8: Writeln(‘SUMMER’); 9..11: Writeln(‘AUTUMN’); 12: Writeln(‘WINTER’) end; |
Селектор литерного типа | Селектор перечисляемого типа |
Var Name:Char; Begin . . . Case Name of ‘А’,’a’: Writeln(‘Модуль’); ‘S’,’s’ :Writeln(‘Синус’); ‘C’,’c’: Writeln(‘Косинус’); end; | Var Season:(Winter,Spring,Summer Autumn); Begin . . . Case Season of Winter: Writeln(‘WINTER’); Spring: Writeln(‘SPRING’); Summer: Writeln(‘SUMMER’); Autumn: Writeln(‘AUTUMN’); end; |
Количество значений, принимаемых Р, должно быть конечным. Селектор P может быть любого скалярного типа, кроме вещественного.
Операторы повтора представляют третью группу структурных операторов и используются при организации циклов.
Цикл –это многократное использование одного и того же вычисления с изменяющимися исходными параметрами.
Конкретные программные реализации циклов называются циклическими программами.
Различают два типа циклов:
цикл со счетчиком, когда число повторений цикла известно заранее;
итерационный цикл, когда число повторений цикла не известно заранее. В этом случае задается условие, при котором цикл должен закончиться или, наоборот, продолжаться.
Можно выделить основные типы задач, которые сводятся к программированию циклических процессов:
1. Вычисление суммы, произведения элементов конечного ряда. При этом суть циклического процесса заключается в накоплении суммы S или произведения P по зависимости
Sn := Sn-1 + Un,
где S, стоящее справа от оператора присваивания – есть сумма элементов конечного ряда,
U – значение текущего элемента конкретного ряда,
S, стоящее слева от оператора присваивания – последующее (определяемое) значение суммы конечного ряда.
В случае вычисления произведения формула имеет вид:
Pn:= Pn-1*Un,
где Р, стоящее справа от оператора присваивания – есть произведение элементов конечного ряда,
U – значение текущего элемента конкретного ряда,
Р, стоящее слева от оператора присваивания – последующее (определяемое) значение.
2. Определение суммы (произведения) элементов бесконечного ряда. Условием окончания цикла является дополнительное логическое условие
|Sn – Sn-1|<e,
где e – заданная точность вычислений.
Сумма или произведение при этом вычисляются традиционно:
S:=S+U или P:= P*U.
3. Табулирование функции – получение таблицы значений функции на заданном интервале хÎ [хmin; xmax] при дискретном изменении х, равном dx.
Для реализации циклов в Паскале используются три оператора повтора:
For – для реализации циклов, число повторений которых известно заранее (циклов со счетчиком);
Repeat и While – используются как в итерационных циклах, так и в циклах со счетчиком.
Дата добавления: 2019-02-07; просмотров: 458;