Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (Информатика).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

I:integer;

f:longint;

begin

f:=1;

for i:=2 to 10 do

f:=f*i;

writeln ('f=', f)

end.

Результат выполнения программы:

f=3628800

Рис.3

Параметром цикла может быть и переменная типа BOOLEAN. В качестве примера рассмотрим программу вычисления логического выражения

F= a∧(y>0)∨(y>z) для двух значений a: “истина” и “ложь” при заданных y и z.

PROGRAM LOGIC (input, output);

(*******************************)

(* Задача: вычислить значение *)

(* логической функции *)

(* F= a∧(y>0)∨(y>z) *)

(* Переменные: *)

(* F - логическая функция; *)

(* y, z - исходные данные; *)

(* а - параметр цикла. *)

(*******************************)

var

F,a:Boolean;

z,y:integer;

begin

write('z='); read(z);

write('y='); read(y);

for a:=true downto false do

begin

F:=not a and (y>0) or (y>z);

writeln ('a=', a, 'F=',F);

end

end.

Результат выполнения программы:

z=1

y=2

a=TRUE F=TRUE

a=FALSE F=TRUE

В качестве параметра цикла в операторе FOR можно использовать и переменные типа CHAR. Так, если стоит задача вывести на экран буквы от Z до A, относящихся к типу CHAR, то программа циклического процесса может иметь следующий вид:

PROGRAM ALPHABET;

(****************************************)

(* Цель – вывести на экран буквы от Z до A*)

(* Переменные: *)

(* BUKVA - параметр цикла *)

(****************************************)

VAR

BUKVA: CHAR;

BEGIN

FOR BUKVA:=’Z’ DOWNTO ’A ’ DO

WRITE (BUKVA);

WRITELN

END.

Результат выполнения программы:

ZYXWVUTSRQPONMLKJIHGFEDCBA

Отметим, что часто циклические процессы используются для решения задачи табулирования функции y=f(x) (составления таблицы значений функции для каждого значения аргумента) на каком-либо промежутке [x1;x2] с шагом h, где все переменные действительного типа. В таком случае поступают следующим образом. Отсчитывают число повторений цикла по формуле Nx:=TRUNC((x2-x1)/h)+1. А далее в задаче аргумент меняют как x:=x1+(i-1)*h для которого i= .

5.5. Итерационные циклы

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

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

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

Алгоритм итерационного цикла в общей постановке поиска с заданной точностью решения Y одной из перечисленных задач включает в себя:

  1. ввод исходных данных а, ;

  2. установку начального значения решения Y0 = a;

  3. вычисление текущего значения решения Y1 = f (Y0);

  4. проверку условия на окончание цикла |Y0Y1| ;

  5. если условие TRUE, то вывод результата Y1 и конец решения;

  6. в противном случае, т.е. если условие FALSE, Y0 = Y1 и переход на п. 3.

В качестве примера рассмотрим вычисление суммы степенного ряда

для X=0.3 и =0.01,

где .

PROGRAM EXPONENT;

VAR