Информатика -продвинутый курс




ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА - часть 3


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

Программа 5

program store;

var sum,w:real;

num:integer;

begin

num:=0;sum:=0;

while sum<100 do

begin

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

readln(w);

sum:=sum+w;

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

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

end;

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

end.

Оператор цикла с постусловием имеет форму:

repeat <последовательность операторов>

until <логическое выражение>

Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов и т.д.

Решим предыдущую задачу, применяя цикл с постусловием. Цикл разгрузки заканчивается, если выполняется условие: sum > 100.

Программа 6

program store2;

var sum,w:real; man:integer;

begin

num: =0; sum: =0;

repeat

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

readln(w); sum:=sum+w;

if sum<=100 then num:=num+l .

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

until sum>=100;

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

end.

Оператор цикла с

параметром предусматривает повторное выполнение некоторого оператора с одновременным изменением по правилу арифметической прогрессии значения управляющей переменной (параметра) этого цикла. Оператор цикла с параметром имеет две формы.

Форма 1:

for <параметр>:= <выражение 1> to <выражение 2> do <оператор>

Параметр, выражение 1, выражение 2 должны быть одного ординального типа;

Параметр в этом цикле возрастает. Действие эквивалентно действию следующего составного оператора:

begin

<параметр>:=<выражение 1>;

while <параметр> <= <выражение 2> do

begin

<оператор>;

<параметр>:=suсс(<параметр>)

end

end.

Если в этом описании отношение <= заменить на >= , а функцию succ на pred, то параметр в цикле будет убывать, в этом случае цикл с параметром принимает форму 2.

Форма 2:

for <параметр>:=<выражение 1> downto <выражение 2> do <оператор>

Пример: составим программу, по которой будет напечатана таблица перевода километров в мили (1 миля = 1,603 км). Параметром цикла можно считать целую величину k - количество километров. Пусть эта величина изменяется от 1 до 10 (с шагом 1, разумеется).

Программа 7

program mili;

const a=1.603; b='км'; с='мили';

var k:integer; m:real;

begin

writeln(b:5,c:7); writeln;

for k:=l to 10 do

begin

m:=k/a; writeln(k:5,m:6:3)

end

end.

Запишем в этой программе цикл с параметром в форме 2:

for k:=10 downto 1 do

begin

m:=k/a; writeln(k:5,m:6:3)

end.

Тогда значения k в таблице будут убывать от 10 до 1 с шагом 1.




Содержание  Назад  Вперед