Отправляет email-рассылки с помощью сервиса Sendsay

Дистанционное обучение

  Все выпуски  

уроки и методика преподавания информатики для учителей цикл с параметром www.thl.narod.ru


ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ Турбо Паскаль позволяет использовать три различных оператора для организации повторяющихся последовательностей действий, которые называют циклами. ЦИКЛЫ С ПАРАМЕТРОМ. Оператор цикла For организует выполнение одного оператора заранее определенное число раз. Его еще называют цикл со счетчиком. Существует две формы оператора: FOR <параметр> := TO DO <оператор>; FOR <параметр> := DOWNTO DO <оператор>; Здесь параметр цикла (счетчик) представляет собой переменную порядкового (ординального) типа; и - выражения, определяющие начальное и конечное значение счетчика; <оператор> - один (возможно составной) оператор, который называют телом цикла, повторяемый определенное число раз. На первом шаге цикла параметр принимает значение nz. В этот же момент происходит вычисление kz - значения параметра на последнем шаге цикла. После каждого выполнения тела цикла, если параметр цикла не равен kz, происходит изменение параметра на следующее большее или меньшее значение в зависимости от формы оператора for, т.е. неявно происходит выполнение одного из двух операторов: <параметр> := Succ(<параметр>); <параметр> := Pred(<параметр>); В случае nz > kz в первой форме оператора или nz < kz во второй его форме ошибки не происходит, но цикл не выполняется ни разу. После завершения работы цикла значение параметра остается равным kz. РЕКОМЕНДАЦИИ: Использовать цикл for при заранее известном количестве повторений. Не изменять параметр в теле цикла. При использовании кратных (вложенных) циклов применять разные переменные в качестве параметров. Определять до цикла значения всех используемых в нем переменных. Не ставить точку с запятой после do. ПРИМЕР: Вводятся 10 чисел, посчитать среди них количество положительных. program cycle_for1; var i,kn:byte; x:real; begin kn:=0; for i:=1 to 10 do begin writeln('Введите ',i,' число: '); readln(x); if x>0 then kn:=kn+1 {увеличиваем количество на 1} end; writeln('Вы ввели ',kn,' положительных чисел.'); readln end. ПРИМЕР: Напечатать буквы от 'Z' до 'A'. program cycle_for2; var c:char; begin for c:='Z' downto 'A' do write(c); readln end ПРИМЕР: Вычислить N-е число Фиббоначчи. Числа Фиббоначчи строятся следующим образом: F(0)=F(1)=1; F(i+1)=F(i)+F(i-1); для i>=1. Это пример вычислений по рекуррентным формулам. program Fib; var a,b,c:word; i,n:byte; begin write('введите номер числа Фиббоначчи '); readln(N); a:=1; {a=F(0), a соответствует F(i-2)} b:=1; {b=F(1), b соответствует F(i-1)} for i:=2 to N do begin c:=a+b; {c соответствует F(i)} a:=b; b:=c; {в качестве a и b берется следующая пара чисел} end; writeln(N,'-е число Фиббоначчи =',b); {для N>=2 b=c} readln end.

В избранное