Эквивалентен ли оператор: for i :=i1 to i2 do written(ord(i )) Последовательность...

0 голосов
36 просмотров

Эквивалентен ли оператор:
for i :=i1 to i2 do written(ord(i ))
Последовательность операторов :
i :=i1;
repeat
written(ord(i));
i :=succ(i):
until i>i2
Агргументируйте ответ


Информатика (15 баллов) | 36 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Почти эквивалентен.
for i := i1 to i2 do writeln(ord(i)) (у вас опечатка в writeln?) выводит ord(i1), ord(i1 + 1), ord(i1 + 2), ..., ord(i2 - 1), ord(i2).

Во втором случае сначала i = i1, выводится ord(i1), и i увеличивается на 1. Так будет продолжаться до тех пор, пока i после увеличения не станет больше i2, т.е. (если всё целое) i2 + 1.

Выводы будут совпадать, но переменная i после выхода из цикла может принимать разные значения: в первом случае она равна i2, во втором i2 + 1. Однако лучше переменную цикла вне цикла не использовать, тогда никакой разницы между двумя конструкциями не будет.

(148k баллов)
0

Да, там опечатка, должно быть writeln