Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
206.34 Кб
Скачать

4.3. Циклические вычислительные процессы и операторы цикла

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

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

1) задание начальных значений переменным цикла перед первым его выполнением;

2) действия, повторяемые в цикле для различных значений переменных цикла (тело цикла);

3) изменение (модификацию) переменных цикла перед каждым новым его повторением;

4) проверку условия продолжения работы цикла и переход на начало тела цикла или окончание работы цикла и выход из него.

Вход в цикл возможен только через его начало.

Различают циклы с заданным и заранее неизвестным числом повторений. Циклы первого типа называют также циклами со счетчиком. Число повторений цикла подсчитывается с помощью специальной переменной (счетчика), для которой известны начальное и конечное значения, шаг изменения. Управление циклом осуществляется на основании сравнения текущего значения счетчика с его конечным значением. Переменную – счетчик называют параметром цикла, а сам цикл– циклом с параметром.

Примером цикла с параметром может служить задача табулирования функции.

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

Применение циклов в программе позволяет эффективно использовать машину, приводит к уменьшению длины программы и сокращению времени на ее составление и отладку.

В Турбо Паскале имеется три вида операторов цикла:

1) оператор цикла с параметром;

2) оператор цикла с предварительным условием;

3) оператор цикла с последующим условием.

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

Оператор цикла с параметром организует выполнение одного оператора (простого или составного) заранее известное число раз.

Формат записи оператора:

for <параметр>:= m1 to m2 do

<оператор>; {тело цикла}

или

for <параметр> := m1 to m2 do

begin

<оператор 1>;

<оператор 2>;

. . . . . . . . . . . .

<оператор n>

end;

Параметр – переменная порядкового типа; m1 – выражение, определяющее начальное значение параметра цикла; m2 – выражение, определяющее конечное значение параметра цикла. Значения выражений m1 и m2 не могут быть типа real. Операторы 1, 2, ..., n образуют тело цикла. Цикл работает следующим образом:

1) вычисляются и запоминаются значения выражений m1 и m2;

2) параметру цикла присваивается значение выражения m1;

3) значение параметра цикла сравнивается со значением выражения m2, если значение параметра меньше или равно m2, то выполняется тело цикла, в противном случае – выход из цикла;

4) значение параметра цикла увеличивается на 1 и переходим к пункту 3).

Если m1>m2, то тело цикла не выполняется ни разу.

Оператор цикла, записанный в формате

for <параметр>:= m1 downto m2 do

<оператор>; {тело цикла}

работает следующим образом:

1) вычисляются и запоминаются значения выражений m1 и m2;

2) параметру цикла присваивается значение выражения m1;

3) значение параметра цикла сравнивается со значением выражения m2, если значение параметра больше или равно m2, то выполняется тело цикла, в противном случае – выход из цикла;

4) значение параметра цикла уменьшается на 1 и переходим к пункту 3).

Если m1<m2, то тело цикла не выполняется ни разу.

После выхода из цикла параметр цикла становится неопределенным, за исключением случая, когда выход из цикла был осуществлен с помощью оператора GOTO или стандартной процедуры BREAK. В теле цикла нельзя изменять значение параметра цикла.

Задача 1. Найти среднее арифметическое N чисел и N!.

program SREDNEE_1;

var N, F: integer; X, S: real;

I: integer; (параметр цикла}

begin

Writeln('Введите N '); Readln(N);

S:=0; F:=1;

for I:=1 to N do

begin

F:=F*I; {подсчет N!}

Writeln('Введите очередное число Х '); Readln(X);

S:=S+X {подсчет суммы N чисел}

end;

S:=S/N;

Writeln ('Среднее арифметическое ', N:2, ' чисел равно ', S:6:2);

Writeln (' N! равно ', F)

end.

Задача 2. Составить программу, выводящую на экран буквы от Z до A.

program BUKVI;

var i: char; (параметр цикла}

begin

for i:='Z' downto 'A' do

Write (i, ' ')

end.

Задача 3. Числа Фибоначчи ( Fi ) определяются по формулам F0 = F1 = 1; Fi = Fi –1 + Fi –2 при i = 2, 3, ... (каждое очередное число равно сумме двух предыдущих). Вычислить n число Фибоначчи, при n>2.

Program n_Fib;

  Var n,                  {заданное число }

     I, F0, F1, F2 : Integer;                {три последовательных числа Фибоначчи}

BEGIN

  Write(’Введите натуральное n : ’);

  ReadLn(n);

  F0:=1; F1:=1;

  (’Числа Фибоначчи :’, F0:4, F1:4);

  For I:=3 to n do

    begin

F2:=F0+F1;

Write(F2 : 4);

F0:=F1;

F1:=F2;

      end;

END.

Задача 4. Даны натуральные числа n и k. Вычислить:

Program Prim4;

Uses Crt;

Var

i,K,N : integer;

S: Real;

Begin

ClrScr;

Writeln('Input N and K');

ReadLn(N,K);

S:=Sqrt(K*N);

For i:=1 to N-1 do S:=Sqrt(S+K*(N-i));

WriteLn('S = ',S);

ReadLn;

End.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]