Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1196.doc
Скачиваний:
20
Добавлен:
09.04.2015
Размер:
1.29 Mб
Скачать

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

Итерационный вычислительный процесс – это процесс последовательных приближений.

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

Пример. Выполнить расчет А=-0,27ВС, с заданной точностью – ε, если В=1,3; С=0,8 и напечатать А. Введем обозначения:

– в алгоритме ε;

– в программе d.

Блок-схема алгоритма приведена на рис. 4.

PROGRAM CIKL;

const

c, b: real;

var

a, d: real;

begin

writeln (‘ввести b, c, d’);

readln (b, c, d);

REPEAT

a:=-0,27bc;

c:=a;

UNTIL (ABS(a-c))=>d;

writeln (‘a=’, a:3:1);

end.

Рис. 4. Итерационный цикл

Вычисления по программе будут выполняться до тех пор, пока не будет выполнено условие ε, где А и С два соседних приближения (см. рис.4). В программе использован оператор цикла «с постусловием»REPEAT…..UNTIL.

2.2.4. Циклический разветвляющийся (смешанный) вычислительный процесс

Структура построения алгоритма, этого типа вычислительного процесса, предусматривает:

– первоначально выбор формулы, в зависимости от выполнения (или невыполнения) условия, при котором выполняется расчет;

– затем выполнение расчета в пределах изменяющегося параметра переменной цикла, Рис. 5.

Пример. Вычислить и напечатать значение функции и ее аргумента, когда функция задана одной из трех формул.

если

если

если

изменяется от -5 до 0 с шагом h=0,5.

По условию задачи вычисляется по одной из трех формул. Выбор формулы, для каждого значения, производится в зависимости от выполнения (или невыполнения) условия.

Блок-схема приведена на рис. 5.

Блок 2 – ввод исходных данных.

Блок 3 – начальное значение приравнивается текущему значению в формуле.

Блок 4 – проверка условия окончания общего (внешнего) цикла;

Блок 5,6 – проверка условия и выбор ветви выполнения алгоритма решения.

Блок 7, 8, 9 – вычесление значений ,соответственно по 1-ой формуле, 2-ой и3-ой формулам.

Блок 10 – вывод результатов на дисплей.

Блок 11 – изменение предыдущего значения переменной на шаг,h.

Блок 12 – окончание расчета.

При анализе алгоритма наблюдаются 3 ветви расчета по формулам:

а) блоки 1 – 2 – 3 – 4 – 5 – 7 – 10 – 11 при ()

б) блоки 4 – 5 – 6 – 8 – 10 – 11 при ()

в) блоки 4 – 5 – 6 – 9 – 10 – 11 – 12 при ()

PROGRAM BOL;

var

x, x, h, y: real;

begin

writeln (‘ввести x, x, h’);

readln (x, x, h);

writeln (‘y,’ ‘,x’);

x:= x;

while x<=0 do

begin

if (x<-4) then y:=x-3sin(x) else

if (x<0) then y:=1-sin(x) else y:=lg(2+sin(x));

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

x:=x+h;

end

end.

Рис. 5. Циклический разветвляющийся процесс

2.2.5. Накопление суммы и произведения

Пример. Даны N чисел. Вычислить и напечатать сумму и произведение N чисел.

Данные числа – это элементы массива, обозначаемые A(I), каждому числу соответствует определенное значение индекса I, где I=1÷N. Получаем А(1), А(2)…А(N).

Пусть через S обозначим символ, в котором постепенно будем накапливать сумму: к предыдущему значению суммы прибавляем очередное данное число, т.е. S=S+A(I).

Начальное значение приравняем S=0. При I=1 имеем S=S+A(1)=А(1). Чтобы прибавить следующее число, необходимо изменить I, чтобы I=2, тогда S=A(I)+А(2) и т.д. На последнем этапе прибавляем к предыдущему значению суммы последнее число, при I=N, получим:

Аналогичные рассуждения для получения произведения. Искомое значение накапливаемых чисел обозначим Р. Выражение, которое реализует постепенное накопление произведения, имеет вид: P=PA(I).

Начальное значение Р должно быть равно: Р=1.

Блок-схема приведена на рис. 6.

Верхняя часть алгоритма предусмотрена для резервирования памяти машины и размещения в ней элементов массива А(I). Нижняя часть алгоритма выполняет выборку из памяти введенных элементов массива А(I) и действия сложения и умножения.

В представленной блок-схеме (рис. ) блоки 3, 4, 5, 6 показывают последовательность правильной организации ввода элементов одномерного массива А(N) в цикле. Сокращенный вариант организации ввода элементов одномерного массива А(N) в цикле можно показать всего одним блоком , который по сути заменит 4 блока (блоки 3, 4, 5, 6).

Этим правилом воспользуемся в своем дальнейшем изложении.

При организации циклического процесса в программе использован оператор цикла с параметром FOR.

PROGRAM SUMMA;

type

mas=array[1..100] of real;

var

i, n: integer;

A: mas;

P, sum: real;

begin

writeln (‘ввести размер массива’);

readln (n);

FOR i=1 to n do

begin

writeln (‘ввести число’);

readln (A[i]);

end;

writeln (‘данный массив’);

FOR i=1 to n do

begin

writeln (A[I]:3:1, ‘ ’);

end;

S=0;

P=1;

FOR I=1 to n do

begin

S:=S+A(I);

P:=P*A(I);

end;

writeln;

writeln (‘сумма=’, S:6:1, ‘ ’, ‘произведение=’, P:9:1);

end.

Количество чисел в массиве (размер)

Индекс порядкового номера первого эл-та

Ввод первого элемента массива А(1)

Формирование очередного номера элемента

массива A(I)

Проверка, все ли элементы массива A(I),

введены

Вывод всех элементов массива A(I) на экран

дисплея

Начальные значения суммы и произведения

Индекс первого элемента

Выполнение действий сложения и

умножения

Изменение индекса для выборки

следующего элемента из массива A(I)

Проверка, все ли элементы массива A(I),

перебрали

Вывод суммы и произведения элементов

массива A(I) на дисплей

Рис. 6. Алгоритм вычисления суммы и произведения элементов массива A(I)

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