Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
261.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Алгоритм цикла с предусловием – While

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

Формат записи:

while Условие выполнения цикла do

begin

{Инструкции}

end;

Рис. 3.

Алгоритм цикла с постусловием Repeat

Серия команд будет исполняться до тех пор, пока не выполнится условие. Если условие выполняется, то цикл завершает работу и выполняется следующая за циклом команда. Следует отметить, что число выполнений серии команд цикла заранее не определено и если при первом входе в цикл условие уже выполняется, то серия команд в цикле будет выполняться один раз.

Формат записи:

repeat

{Инструкции}

until Условие выхода из цикла

Алгоритм цикла со счетчиком For

В циклах с известным числом повторений всегда можно определить переменную, связанную с числом повторений цикла, значение которой изменяется по заданному закону от начального до конечного с постоянным шагом. Такая переменная используется для управления циклом в условии окончания цикла и осуществляется сравнение текущего значения с заданным порогом. Для схематического представления используют специальную управляющую структуру с блоком модификации, где указывают закон изменения параметра цикла(рис. 3). 1  вход в цикл, 2  повторение цикла, 3 – окончание цикла. Блок модификации включает в себя подготовку цикла(х:=х0), изменение параметра цикла(х:=х+h), Управление циклом -проверку условия его продолжения или окончания цикла. Проверка х<xn проводится перед каждым выполнением цикла. Если начальное значение параметра больше конечного, то цикл не выполняется ни разу.

Формат записи: Вариант 1 (с увеличением счетчика)

for Счетчик := НачальноеЗначение to КонечноеЗначение do

begin

{Инструкции}

end;

Вариант 2 (с уменьшением счетчика)

for Счетчик:= КонечноеЗначение downto НачальноеЗначение do

begin

{Инструкции}

end;

Практические примеры Задачи с использованием оператора while

Программа 1

На склад привозят однородный груз на машинах различной грузоподъемности. На компьютер, управляющий работой склада, поступает информация о весе груза очередной машины. Составить программу подсчета количества машин, прибывших на склад до его заполнения, если вместимость склада не более 100 тонн.

Введем обозначения: sum – сумма веса груза, хранящегося в этот момент на складе; num – число разгруженных машин; w – масса груза очередной машины. Вначале величины sum и num равны нулю.

Цикл разгрузки продолжается, пока выполняется неравенство sum<100.

program store;

var sum,w:real;

num:integer;

begin

num:=0;sum:=0;

while sum<100 dо

begin

writeln('введите вес груза машины');

readln(w);

sum:=sum+w;

if sum<=100 then num:=num+ 1

else writeln('груз уже не поместится');

end;

writeln('число разгруженных машин =',num:З)

end.

Программа 2

Напечатать таблицу значений функций sin x и cos x на отрезке [0,1] с шагом 0.1 в следующем виде:

    x              sin(x)          cos(x)

---------------------------------

0.0000        0.0000        1.0000

0.1000        0.0998        0.9950

. . . . . . . . . . . . . . . . . . . . . . . . .

1.0000        0.8415        0.5403

Program Table; Const a=0; b=1; h=0.1; { границы и шаг табулирования} Var x: Real; Begin         x:=a;         Write(‘x   sin(x)   сos(x)‘); { заголовок таблицы}         Write(‘---------------------------------‘);         While x<=b Do         Begin                 Writeln(x:7:4,sin(x):7:4,cos(x):7:4);                 {вывод значений аргумента и функций}                 x:=x+h {увеличение аргумента на шаг}         End; Writeln(‘---------------------------------‘) End.

Программа 3

Написать программу, которая напечатает

1

2

3

4

5

6

7

8

9

10

10

9

8

7

6

5

4

3

2

1

Program Table2; Var i: integer; Begin         i:=0;        While i<10 Do         Begin

I:=succ(i);                 Write(I,’ ‘);

End;

Writeln;

        i:=10;        While i>0 Do         Begin

Write(I,’ ‘);

I:=pred(i);                

End;

End.