Конец цикла

Отметим основное отличительное свойство циклических алгоритмов: количество действий, исполняемых в процессе выполнения алгоритма, может существенно превышать количество команд, из которых организован цикл. Чтобы в этом убедиться, достаточно алгоритм "проиграть", то есть выполнить его шаг за шагом при некоторых наборах допустимых исходных данных, перевоплотившись в предполагаемого педантичного исполнителя. (Отметим также, что перед началом этапа программирования полезно проводить указанным образом "проигрывание" любого алгоритма, так как эта процедура позволяет легко обнаружить ошибки, допущенные в логической организации алгоритма).

Для примера напишем блок-схему алгоритма вычисления суммы всех натуральных чисел от 1 до введенного пользователем N. Надо отметить, что можно было бы обойтись линейным алгоритмом, используя формулу суммы n членов арифметической прогрессии. Однако нам интересно именно на этом простом примере проиллюстрировать работу циклического алгоритма.

 

Дано n=10.

Найти S=1+2+…+10.

Учитывая то, что Si+1= Si+i+1, где Si =1+2+…+i.

Наша цель – получить тело цикла, т.е. блок команд, который будет повторяться несколько раз.

Шаг          
S:=0;   Усовершенствуем, программу, введя новую переменную i, которая пробегала бы все числа от 1 до 100. S:=0; S:=0; i:=0;
S:=S+1; i:=1; S:=S+i; i:=i+1; S:=S+i;
S:=S+2; i:=2; S:=S+i; i:=i+1; S:=S+i;  
S:=S+3; i:=3; S:=S+i; i:=i+1; S:=S+i;  
 
S:=S+100; i:=100; S:=S+i; i:=i+1; S:=S+i;

 

Итак, тело нашего цикла:

 

Найдем условие продолжения цикла. Так как перед входом в цикл значение переменной i равно 0. Поставим условие продолжения <100, т.е. i =0,1,2,…,99.

 
 

[kgl]

 

[gl]ЛЕКЦИЯ 11. ОСНОВЫ ЯЗЫКА ПАСКАЛЬ[:]