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

Структура «цикл с постусловием»

Структура цикла с постусловием имеет вид:

где Р – логическое выражение (условие), S – оператор или группа операторов (тело цикла).

Структура цикла с постусловием является дополнительной. Поэтому на некоторых языках программирования для ее реализации нет соответствующего оператора. В частности, нет оператора, реализующего данную структуру на языке Си.

На Бейсике и Паскале структура реализуется так:

Бейсик

Паскаль

DO

<оператор>

LOOP UNTIL <выражение>

repeat < оператор >

until < выражение > ;

Пример 4.5

Задача: Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, … , 24 часа.

program amebs;

uses crt;

var k,v:integer;

begin

clrscr;

k:=1;

v:=0;

writeln('Время Количество');

repeat

k:=k*2;

v:=v+3;

writeln(v:4,k:6)

until v=24;

readln;

end.

Структура «цикл с параметром»

Структуру «цикл с параметром» рекомендуется использовать, когда заранее известно число повторений тела цикла. Она имеет вид:

где М — заголовок цикла, S — оператор или группа операторов (тело цикла). В заголовке цикла инициализируется параметр цикла, т.е. ему присваивается начальное значение, указывается конечное значение параметра цикла, до достижения которого тело цикла будет повторяться, и шаг, который показывает, на сколько изменится параметр цикла после каждого выполнения тела цикла. На языках программирования данная структура реализуется следующим образом:

Бейсик

FOR <параметр цикла> = <начальное значение параметра цикла> TO <конечное значение параметра цикла> [STEP <шаг>]

<оператор>

NEXT [<параметр цикла>]

Паскаль

for <параметр цикла> := <начальное значение параметра цикла> to <конечное значение параметра цикла>

do <оператор>;

или

for <параметр цикла> := <начальное значение параметра цикла> downto <конечное значение параметра цикла>

do <оператор>;

Си

for (<параметр цикла> = <начальное значение параметра цикла>; <условие выполнения цикла>; [<параметр цикла> = <параметр цикла>+<шаг>] )

<оператор>;

Сравнив операторы, которые реализуют данные алгоритмические структуры, можно сделать вывод о том, что на известных языках программирования написание этих операторов почти одинаково.

Пример 4.6

Задача: Вывести квадраты чисел от 1 до 10.

program kvadrat;

uses crt;

var i, k:integer;

begin

clrscr;

for i:=1 to 10 do

begin

k:=i*i;

writeln('Kvadrat ',i:2,' = ',k )

end;

readln;

end.