Управляющие конструкции языка Паскаль.
Безусловные конструкции.
Оператор языка представляет собой неделимый элемент программы, который позволяет выполнять определенные алгоритмические действия. Все операторы можно условно разделить на две группы: простых операторов и структурированных операторов. К простым относятся те операторы, которые не содержат других операторов. К структурированным - те, которые состоят из других операторов.
В Паскале существует один оператор безусловного перехода goto и четыре безусловных функции: break, continue, exit, halt. Оператор безусловного перехода goto представляет собой простой оператор, используя который можно изменять порядок выполнения операторов в программе. Общий вид оператора безусловного перехода: goto<метка> , где <метка> - это идентификатор или целое число от 0 до 9999, объявленное в разделе меток label. Применение оператора безусловного перехода в программе является нежелательным, т.к. его присутствие нарушает структурную целостность и наглядность. Такую программу трудно читать, отлаживать и модифицировать.
Функция break позволяет досрочно закончить цикл.
Функция continue- позволяет начать новую итерацию цикла, даже если предыдущая не была завершена.
Функция exit - позволяет завершить работу текущего программного блока.
Функция halt (n), где n - некоторое целое число - позволяет завершить работу программы с кодом завершения n.
Условные конструкции.
1) неполная форма с одним оператором
if условие then оператор;
2) полная форма с одним оператором
if условиеthenоператор1 else оператор2;
2) неполная форма с несколькими операторами
ifусловие then
Begin
оператор1;
оператор2;
…
оператор n;
end;
4) полная форма с несколькими операторами
if условие then
Begin
оператор1;
оператор2;
…
оператор n;
End
Else
begin
оператор 1;
оператор 2;
…
оператор n;
end;
Конструкция Выбор.
Ситуации, реализующие систему вложенных ветвлений, могут быть разрешены с использованием конструкции выбор.
Оператор выбора является структурированным и использует в своей записи операторы case, of, else, end и операторные скобки по необходимости.
В самом общем виде оператор выбора можно записать так:
Case порядковая переменная of
значение1: begin оператор1; оператор2; …; оператор n; end;
значение2: begin оператор1; оператор2; …; оператор n; end;
…
значениеm: begin оператор1; оператор2; …; оператор n; end;
else beginоператор1; оператор2; …; оператор n; end;
end;
Пример. Ввести оценку студента в баллах и сообщить ее название.
begin
read(b);
case b of
5: write('отлично');
4: write('хорошо');
3: write('удовл.');
2: write('неудовл.');
else write('это не оценка');
end;
end.
Порядковая переменная, значение которой при выполнении программы определяет ветвь в операторе выбора, подлежащую выполнению, может принадлежать любому целочисленному типу. В случае, когда для нескольких значений выполняемые действия одинаковы, их можно указать один раз, а сами значения перечислить через запятую.
Пример. Напечатать количество дней во введенном месяце:
begin
read(m);
case m of
янв, мар, май, июл, авг, окт, дек: write('31');
апр, июн, сен, ноя: write('30');
фев: write('28');
else write ('это не месяц');
end;
end.
Циклические конструкции.
Цикл с параметром.
Для реализации в языке Pascal используется составной оператор, состоящий из операторов for, to, downto, do и при необходимости из операторных скобок. Переменная параметр обязательно объявляется в декларационной части программы и может принадлежать одному из порядковых типов.
Если при изменении переменной параметра необходимо использовать переход к следующему значению, то используется оператор to, если переход необходимо осуществить к предыдущему значению, то используется оператор downto. Тогда в общем виде цикл записывается так:
fori:=n1 ton2 do
begin
оператор 1;
оператор 2;
...
оператор n;
end;
Следует помнить, что тип переменной-параметра цикла должен быть выбран одним из целых типов: integer, word, byte и т.д.
Шаг изменения номера параметра цикла равен 1, если в заголовке цикла стоит to; и -1 — при downto. Это основное ограничение данного вида цикла. Для решения задач, в которых параметр по условию изменяется с дробным шагом, требуется предварительно рассчитывать количество повторений в цикле.
Пример. Рассчитать значения функции для , шаг изменения .
programsinx;
varx,dx,xhi,xlow,y:real;
i,n:word;
Begin
x:=0;
dx:=pi/6; xhi:=2*pi; xlow:=0;
n:=round((xhi-xlow)/(dx));
fori:=1 ton+1 do
Begin
y:=sin(x);
writeln('x=',x:5:2,' y=',y:5:2);
x:=x+dx;
end;
end.
Цикл с предусловием.
Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки.
В общем виде цикл реализуется записью:
while<условие> do<действие>;
Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:
while<условие> do
Begin
<оператор 1>;
<оператор 2>;
...
<оператор n>;
end;
Цикл с постусловием.
Для реализации цикла используется составной оператор, состоящий из операторов repeat и until. В общем виде цикл записывается так:
repeat
<оператор 1>;
<оператор 2>;
...
<оператор n>;
until<условие>;