Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмы1.docx
Скачиваний:
26
Добавлен:
10.06.2015
Размер:
1.98 Mб
Скачать

27. Составной оператор (блок). Условный оператор. Оператор перехода goto и помеченный оператор. Оператор цикла с параметром (оператор for)

Блок:

begin

x:=1;

y:=2;

end;

Условный оператор:

if ptr E=nil then x:=1 else x:=2;

После служебных слов then и else можно размещать по 1-му оператору, если надо совершить много действий, то следует оформить как блок goto и помеченный оператор:

(пример оператора перехода в составе условного оператора)

if x<=3 then goto 23;

23:y:=5; // помеченный оператор

В псевдокоде в качестве меток могут использоваться целые не отрицательные числа или идентификаторы.

Оператор с параметром (for):

Оператор начинается с for, после которого с помощью операторов присваивания задаются стартовые значения параметрам цикла, после to задаются конечные значения параметров, после do ставится тело цикла (1 оператор). При выполнении каждой итерации соответствующей параметрам цикла, значения параметров передаются от стартового до конечного, после цикл завершает работу.

Пример:

z:=0;

for i:=2 to n begin

mas [i] := i*x/y;

z := z+i*y;

end;

28. Оператор цикла с предусловием (оператор while). Оператор цикла с постусловием (оператор repeat). Оператор варианта (оператор case).

Оператор с предусловием (while):

Оператор начинается со служебного слова while, после записывается логическое выражение (по смыслу условия продолжения цикла и если false, то цикл завершается), после do ставится тело цикла (1 оператор).

Пример:

var

c: char;

c:=0; // стартовое значение счетчика итераций

while (i<=maxsize) and ((x/y)<i) do begin

i:=i+1;

mas1[1]:=x*i;

Dmas[i+1, c] :=r+I;

end;

Оператор с постусловием (repeat):

Начинается с repeat, после которого записывается последовательность операторов (тело цикла), после идет until, после котрого записывается логическое выражение логики работы цикла: в начале тело цикла → вычисление логического значения, если false, то новая итерация, иначе конец цикла.

Пример:

var

Ri:real;

DEL:real = 1.0e^(-7); // объявляем вещественные переменные

i:=0; y:=0; x:=0; // начальные значения переменных

repeal

y:=y+x;

i:=i+1;

x:=x*(z/i);

Ri:=y*x;

until Ri<DEL;

Оператор варианта (case):

Аналогичным в С++ является переключатель svich.

Оператор начинается со служебного слова case, после которого записывается «ключ выбора» - это выражения порядкового типа (целочисленное выражение), далее после of идет список выбора, состоящий из элементов выбора, каждый элемент включает в себя 1-ну или несколько меток выбора, после каждой метки ставится «:». В качестве меток должны использоваться те же типы, что и ключи, после меток в каждом элементе ставится 1-н оператор и после «;», далее идет else, после которого задается список операторов через «;». Оператор заканчивается «end;». Допустимо сокращение без «else».

Логика работы: вычисляется ключ выбора и управление передается тому оператору, который помечен меткой совпадающей по значению с ключом выбора, после выполнения работа оператора варианта в целом заканчивается, если значение ключа не совпало ни с одной меткой, то выполняется список операторов после else, а если else нет, то оператор прекращает работу.

Пример:

До входа некоторой переменной нужно стартовое значение (i), в примере оператор с 3-мя ветвями и дополнительная ветвь else

case (i div 5) of

1: j:=1;

3, 4, 9: j:=1000;

else j:=0, x:=0,99;

end;