Оператор цикла с параметром




 

for i:=N to K do P;

(для) (до) (выполнять)

где i - параметр цикла;

N, K - его начальное и конечное значение;

P - простой или составной оператор;

i,N,K - переменные или константы целого типа.

Шаг изменения i - равен 1.

Если K<N, т.е. имеем дело с циклом с отрицательным шагом: (-1)

for i:=N down to K do P;

Оператор цикла с параметром автоматически устанавливает начальное значение параметра цикла, изменяет значение параметра на шаг

(+1 или -1), организовывает проверку на выход из цикла.

 

 

Задача.

Вычислить сумму ряда

S= 1+1/2+1/3+ … +1/50

Выделим переменную для накапливания суммы - sum. Значение этой переменной необходимо предварительно обнулить.

program cikl;

Var

i: integer;

sum: real;

Begin

sum: =0;

for i: = 1 to 50 do

sum: = sum + 1/i;

Writeln (' сумма = ', sum:10:4);

End.

Оператор for применяют в тех случаях, когда значения параметра цикла целые и меняются с шагом +1, -1.

Оператор цикла с постусловием

 

Repeat

p1;p2;…pn;

until <условие>;

где p1; p2; … pn; - любые операторы, образующие тело цикла.

По этому оператору выполняется «тело цикла», а затем проверяется <условие>, если оно не выполнилось, цикл повторяется. И так до тех пор, пока <условие> не будет выполнено. Необходимо помнить: если <условие> выполнилось c первого раза, цикл будет пройден один раз.

 

Задача.

Вычислить значение функции:

y = a*sin (x),

При x = от 0 до 1, с шагом =0.2

program cikl_1;

Var

y,a,x:real;

Begin

writeln(‘Введите а’);

read(a);

x:=0;

Repeat

y:=a*sin (x);

writeln (‘y=’,y:8:3,’ x=’,x:8:3);

x:=x+0.2;

until x>1;

End.

 

Действия, которые подчеркнуты, необходимы для организации цикла.

Для организации цикла необходимо выполнить три действия:

· восстановить начальное значение параметра цикла;

· сформировать текущее значение параметра цикла;

· организовать проверку на выход из цикла.

 

В операторе for … to … do перечисленные действия выполняются автоматически. В остальных операторах цикла эти действия необходимо организовать составителю программы.

Оператор цикла с предусловием

 

while <условие> do P;

Где P - простой или составной оператор.

По этому оператору проверяется <условие> и, если оно выполняется, то выполняется - P, после чего опять проверяется <условие> и т. д.

Итак, P - выполняется до тех пор, пока выполняется <условие>.

Если условие ни разу не выполнилось, P - игнорируется, управление передается следующему оператору.

 

Задача.

 

Вычислить сумму ряда:

Sin x sin 2x sin 3x sin n x

y = ----------- - ------------- + -------------- - … + (-1n+1) --------------

1! 2! 3! n!

где n! = 1*2*…*n

 

Значение аргумента х и количество итераций n ввести с клавиатуры.

Введем дополнительную переменную для вычисления n! – f.

program cikl_2;

Uses

crt;

Var

x,y: real;

i,n,f: integer;

Begin

writeln (' введите x, n ');

read (x, n);

y: =0; f: =1; i:=1;

while i<=n do

{ составной оператор }

Begin

f:=f*i;

y:=y+sin(i*x)/f;

i:=i+1;

end;

writeln (' y = ', y:8:3);

readln;

End.

 

 

Вложенные циклы

 

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

Рассмотрим задачу вывода на экран таблицы умножения, решение которой предполагает использование вложенных циклов.

Var

i,j: byte;

Begin

writeln(‘ Таблица умножения ’);

for i:=1 to 9 do

Begin

for j:=1 to 9 do

writeln(i, ‘ * ‘, j,‘ = ’, i*j);

writeln;

end;

readln;

End.

 

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-13 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: