Слайд 2При выполнении программ нахождения наибольшего общего делителя число повторений различно для разных
данных.
Когда известно число повторений, удобно использовать цикл пересчет.
В Паскале имеется два оператора для организации циклов пересчет: прямой и обратный.
Слайд 3Прямой пересчет идет от известного меньшего числа до известного большего, на каждом
шаге прибавляется единица ( например, от 120 до 140: 121, 122, 123, … 139,140).
Оператор прямого пересчета:
for i:=n1 to n2 do оператор
Читается как «для i начиная с n1 до n2 выполнить оператор».
Слайд 4Переменная i называется переменной цикла, она при прямом пересчете всегда меняется от
меньшего значения до большего .
При i=n1 цикл выполняется первый раз.
Затем к значению переменной i добавляется единица и осуществляется проверка, не превысило ли полученное значение величину n2.
Если i+1=< n2, то оператор выполняется , если нет, то происходит выход из цикла и выполнение следующего по порядку оператора программы.
Слайд 5Оператор в цикле может быть простым или составным, заключенным в операторные скобки.
Оператор пересчет работает как цикл «до», поэтому надо быть внимательным, оператор в теле цикла выполнится всегда хотя бы один раз.
Слайд 6Пример
Пусть надо вычислить аn.
Известно, что для получения целой степени n
числа его надо умножить само на себя n раз.
Это произведение при выполнении программы будет хранится в ячейке с именем р.
Каждый раз, при очередном выполнении цикла, из этой ячейки будет считываться предыдущей результат, домножаться на основание степени а и снова записываться в ячейку р.
Основной оператор в теле цикла повторяется n раз и имеет вид.
р:=р*а;
Слайд 7При первом выполнении цикла в ячейке р должно находиться число, не влияющее
на умножение, т.е. до цикла туда надо записать единицу.
Протокол программы:
Слайд 8Program E8;
var a,p:real; i,n:integer;
Begin
write (‘ vvedite a – osnovanie stepeni, a=‘);
readln (a);
write
(‘vvedite zeloe n – pokasatel stepeni, n=‘);
readln (n);
p:=1;
for i:=1 to n do
p:=p*a;
write (‘p= ‘, p);
readln
end.