Урок 6. Тема: «Понятие циклы» Тип урока: объяснение нового материала. Цели: дать понятие циклов и их видов; научить учащихся использовать циклы при решении задач программирования; расширить знания учащихся о возможности применения циклов; развить логическое мышление у учащихся при составление алгоритмов; повысить информационную культуру у учащихся; развить навыки работы за компьютером. Ход урока 1.Объяснение нового материала. Цикл - предусматривает многократное выполнение некоторых операторов, входящих в тело цикла. Рассмотрим блок-схему работы цикла: (алгоритм поиска грибов) В языке Паскаль имеются три оператора цикла: For (цикл с параметром или на заданное число повторений); While (цикл ПОКА – с предусловием); Repeat (цикл ДО - с постусловием). Если число повторений известно, то лучше воспользоваться оператором цикла с параметром. Рассмотрим подробно каждый вид цикла. 1)цикл с предусловием, while- пока Цикл While сначала проверяет условие, и только если оно истинно, выполняет тело цикла. While < условие > do Begin < оператор цикла> End Проверяется условие пока оно истинно. Выполняются операторы цикла. Как только оно станет ложным происходит выход из цикла. Если с самого начало условие не выполняется, то операторы цикла не выполняются не разу. 2)с постусловием (с последующей проверкой) Цикл Repeat сначала выполняет тело цикла, а лишь затем проверяет условие, и только если оно истинно, завершает свою работу. Repeat-повторять until- до тех пор, пока Repeat <операторы цикла> Until <условие> Нет необходимости в цикле Repeat использовать составной оператор, т.к. данная конструкция предусматривает выполнение не одного, а нескольких операторов, заключенных между словами Repeat и Until. Операторы цикла выполняются (по крайней мере один раз) до тех пор, пока условие ложно, как только условие станет истинным, происходит выход из цикла. Пример: Найти сумму нат чисел от 1 до 50. 1. program primer; 2. program primer2; uses crt; uses crt; var var i, sum: integer; i, sum:integer; begin begin sum:=0; sum:=0; i:=0; инициализ. начальное значение i:=0; while i <50 do repeat begin i:=i+1; наращиваем счетчик цикла i:=i+1; sum:=sum+i; sum:=sum+i; end; until i=50; writeln ('summa = ',sum); writeln ('Summa = ',sum); readln; readln; end. end. Цикл работает пока изменяющаяся переменная I не станет больше 50 3) цикл с параметром Цикл на заданное число повторений с возрастающим или убывающим значением параметра. Применяется в тех случаях, когда количество повторений выполнения команд заранее известно. Форма записи: 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. Пример3. program for1; uses crt; var i, sum: integer; begin sum:=0; for i:=1 to 50 do sum:=sum+i; writeln ('summa =',sum); repeat until keypressed; end. В программе мы должны заботиться чтобы произвольные значения, хранящиеся изначально в переменных были уничтожены. Поэтому мы и присваиваем переменной sum значение ноль. Если пренебречь этим правилом и не обнулить эту переменную. При первом выполнении цикла в операции сложения будет участвовать произвольное значение, в результате чего по окончанию цикла мы получим некорректный ответ. Д\з: найти произведение первых 50 чисел