1. При выполнении указанных конструкций на экране появятся следующие числа (в столбик): 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10. Дело в том, что при выходе из цикла счетчик цикла сохраняет свое последнее значение. А раз мы требуем после завершения цикла вывода на экран значения счетчика, то компьютер повторно выведет нам число 10.
2. Достаточно поменять местами верхнюю и нижнюю границы цикла и вместо To поставить DownTo:
Program Cikl2; Var i:Byte; Begin WriteLn('Первые 10 натуральных чисел в обратном порядке: '); For i:=10 DownTo 1 Do {i принимает значения от 10 до 1} WriteLn(i); End.
3. При решении задачи о выводе на экран первых 10 четных натуральных чисел можно, конечно, завести переменную, которая последовательно будет принимать значения: 2, 4, 6, ..., 20. Однако учитывая тот факт, что чисел все равно остается 10, и оператор WriteLn может вычислять выражения, можно предложить следующий вариант программы:
Program Cikl3; Var i:Byte; Begin WriteLn('Первые 10 четных натуральных чисел: '); For i:=1 To 10 Do {i принимает значения от 1 до 10} WriteLn(2*i); {При заданном i выводится 2*i} End.