Понятие циклов и их применение к решению задач по программированию на языке Pascal
Цикл - предусматривает многократное выполнение некоторых операторов, входящих в тело цикла.
Виды циклов В языке Паскаль имеются три оператора цикла: For (цикл с параметром или на заданное число повторений); While (цикл ПОКА – с предусловием); Repeat (цикл ДО - с постусловием). Если число повторений известно, то лучше воспользоваться оператором цикла с параметром.
1)цикл с предусловием, while Цикл While сначала проверяет условие, и только если оно истинно, выполняет тело цикла. While do Begin End Проверяется условие пока оно истинно, выполняются операторы цикла. Как только оно станет ложным происходит выход из цикла. Если с самого начало условие не выполняется, то операторы цикла не выполняются не разу.
2)с постусловием, Repeat Цикл Repeat сначала выполняет тело цикла, а лишь затем проверяет условие, и только если оно истинно, завершает свою работу. Repeat-повторять until- до тех пор, пока Repeat Until
Нет необходимости в цикле Repeat использовать составной оператор, т.к. данная конструкция предусматривает выполнение не одного, а нескольких операторов, заключенных между словами Repeat и Until. Операторы цикла выполняются (по крайней мере один раз) до тех пор, пока условие ложно, как только условие станет истинным, происходит выход из цикла.
Пример цикла while program primer; uses crt; var i, sum: integer; begin sum:=0; i:=0; инициализируем начальное значение while i
Пример цикла repeat program primer2; uses crt; var i, sum:integer; begin sum:=0; i:=0; инициализируем начальное значение repeat i:=i+1; наращиваем счетчик цикла sum:=sum+i; until i=50; Цикл работает пока изменяющаяся переменная I не станет больше 50 writeln ('Summa = ',sum); readln; end.
цикл с параметром Цикл на заданное число повторений с возрастающим или убывающим значением параметра. Применяется в тех случаях, когда количество повторений выполнения команд заранее известно.
Форма записи 1.for параметр: = начальное значение to конечное значение do оператор; Пример. For k:=2 to 10 do p:=p*k В этих операторах нет шага изменения параметра. Он в этом случае постоянен и равен 1. 2.for параметр := начальное значение down to конечное значение do оператор Пример. For i:=640 down to 1 do x:=x+i В данном случае шаг цикла равен 1.
Для изменения шага в цикле: Вводят дополнительную переменную, отвечающую за изменение шага в алгоритме. Изменяют значение переменной цикла, при этом учитывая: -целый тип; -конечное значение.
В тех случаях когда изменение параметра цикла д\б иным используются циклы с предусловием и постусловием. В качестве оператора может выступать составной оператор. For переменная := нач. значение to (down to) конечное значение to Begin Оператор1; Оператор2; ……… Оператор n; End.
Замечания: Параметр – целый тип; В цикле можно использовать операторные скобки; В теле цикла нельзя менять параметр цикла; Параметр цикла увеличивается на единицу; Начальное значение > конечного, иначе тело цикла игнорируется; Для уменьшения параметра, To заменяется на DownTo.
Пример цикла for program for1; uses crt; var i, sum: integer; begin sum:=0; обнуляем значение переменной for i:=1 to 50 do для I от 1 до 50 sum:=sum+i; writeln ('summa =',sum); repeat until keypressed; end.
В программе мы должны заботиться чтобы произвольные значения, хранящиеся изначально в переменных были уничтожены. Поэтому мы и присваиваем переменной sum значение ноль. Если пренебречь этим правилом и не обнулить эту переменную. При первом выполнении цикла в операции сложения будет участвовать произвольное значение, в результате чего по окончанию цикла мы получим некорректный ответ.