Программа: Произведение ста целых чисел
Вход:
где
Integer,
= 100
Выход:
где
Решение задачи описывается программой
module ПроизведениеСтаЧисел;
const Длина = 100;
var N,K,M : integer;
begin M := 1; N := 0;
(**)
while N < Длина do (* {Ограничивающее
выражение: Длина-N } *)
Read(K); M := MK;
N := N+1
(**)
end;
(*
*)
write(M)
endПроизведениеСтаЧисел.
Фактически требуется, начиная от состояния памяти, в котором M равно 1, выполнить 100 раз оператор
begin read(K); M:= MK end.
Поэтому мы заводим специальную переменную N, с помощью которой и подсчитывается число осуществленных выполнений этого оператора. Используя цикл с параметром, программу ПроизведениеСтаЧисел можно переписать следующим образом:
module ПроизведениеСтаЧисел1;
const Длина = 100;
var N,K,M: integer;
begin M := 1;
(**)
for N := 1 to Длина do
read(K); M := MK
(* *)
end;
(*
*)
write(M)
end ПроизведениеСтаЧисел1.
Цикл с параметром задается синтаксическим правилом рис. 4.6, где все
выражение и пременная имеют тип integer.
ForStatement = for ident ":=" Expression to Expression [by ConstExpression] do StatementSequence end.
Рис. 4.6. Синтаксичес опертора цикла с параметром
Семантику оператора цикла можно описать следующим образом. Пусть V обозначает переменную, E1, E2 и E3 -- выражения, а S -- последовательность операторов. Тогда оператор цикла
for V := E1 to E2 by E3 do S end
описывается следующей последовательностью операторов:
V:= E1; temp := E2;
if E3 > 0 then
while V <= E2 do S; V :=
V+ E3 end
else
while V >= E2 do S; V := V+
E3 end
end.
Значение E3 (шаг) должно быть ненулевым константным выражением целого типа. Если опущен шаг, тогда шаг по умолчанию равен 1.
Next:4.1.5
Пошаговая разработка программ
Up:4.1
Средства для организации циклических вычислений
Previous:4.1.3
Оператор цикла с условием на окончание