1. Программа, использующая цикл Repeat..Until зациклится тогда, когда проверяемое условие постоянно будет ложным.
2. Приведем тексты программ:
Program C1; Var x:Byte; Begin WriteLn('Первые 10 натуральных числа:'); x:=1; While x<11 Do Begin WriteLn(x); x:=x+1; End; WriteLn(x); End. |
Program C2; Var x:Byte; Begin WriteLn('Первые 10 натуральных числа:'); x:=1; Repeat WriteLn(x); x:=x+1; Until x>10; WriteLn(x); End. |
Текст этой программы можно взять здесь. | Текст этой программы можно взять здесь. |
Понятно, что, в отличие от цикла For, на экран будут выведены значения 1, 2, 3, 4, ..., 10, 11. Дело в том, что после вывода на экран числа 10 в теле цикла будет выполнен оператор x:=x+1;, который приведет к тому, что в переменной x будет находиться число 11. Это значение приведет к выходу из циклов, делая проверяемые условия (x<11 и x>10) соответственно ложным и истинным. Поэтому произойдет выход из циклов, и выполнятся операторы, расположенные после тела цикла. В этих пограммах он одинаков - WriteLn(x);. Так как переменная x имеет значение 11, то оно как раз будет выведено после первых 10 натуральных чисел.
Program C1; Var x:Byte; Begin WriteLn('Первые 10 натуральных числа:'); x:=1; While x<11 Do Begin x:=x+1; WriteLn(x); End; End.Что будет выведено при выполнении этой программы?
В заключение составьте еще несколько модификаций приведенных программ:
- модифицируйте программу C1 так, чтобы она выводила первые 10 четных натуральных чисел
(текст программы можно взять здесь);
- модифицируйте программу C2 так, чтобы она выводила первые 10 четных натуральных чисел
(текст программы можно взять здесь);
- модифицируйте программу C1 так, чтобы она выводила первые 10 четных натуральных чисел
в обратном порядке (текст программы можно взять здесь);
- модифицируйте программу C2 так, чтобы она выводила первые 10 четных натуральных чисел
в обратном порядке (текст программы можно взять здесь).