|
Арифметическим называется циклический процесс, в котором количество повторений известно в момент входа в цикл. В языке Паскаль для реализации этого вида циклов рекомендуется использовать оператор FOR … DO.., получивший название оператор цикла с параметром.
До первого вхождения в тело арифметического цикла известно, сколько раз его необходимо повторить, например, N раз. В арифметических циклах обязательно должен присутствовать счетчик (параметр) цикла, который показывает, сколько раз до заданного момента времени повторилось тело цикла. Первоначально он принимает начальное значение, а при каждом прохождении тела он изменяется на величину приращения, и так происходит до тех пор, пока его значение или не превысит конечное значение, равное N (для случая положительного значения приращения) или не станет меньше N (для случая отрицательного значения приращения), затем происходит выход из цикла.
Арифметический цикл служит основой для алгоритмизации процесса, в котором число повторений известно заранее, поэтому при использовании такого процесса необходимо четко уяснить, какая переменная является счетчиком цикла, каков диапазон ее изменения (начальное и конечное значение), чему равно ее приращение за один проход цикла.
Чаще всего алгоритм арифметического цикла строится на основе цикла с предусловиями (ЦИКЛ – ДО), шаблон такого цикла для положительного значения приращения счетчика цикла приведен на рис. 2.5. В блоке задания начальных условий указываются начальное и конечное значения счетчика цикла и его приращение, при этом счетчик цикла получает свое начальное значение, затем проверяется условие повторения цикла (счетчик цикла не больше конечного значения счетчика), в зависимости от выполнения которого тело цикла выполняется еще раз (по ветке ДА) или происходит выход из цикла (по ветке НЕТ), затем следует тело цикла. После выполнения тела цикла счетчик цикла увеличивает свое значение на величину приращения, а затем осуществляется переход на проверку условия повторения.
Рис. 2.5 Шаблон арифметического цикла
Арифметические циклы используются, как правило, для решения следующих задач:
· вычисление суммы N слагаемых;
· вычисление произведения N сомножителей;
· табулирование функции на конечном интервале в N точках.
Рассмотрим подробнее примеры решения таких задач.
Вычисление суммы слагаемых.
Пусть необходимо вычислить
Исходными данными алгоритма являются значение переменной N, которое необходимо ввести, а выходными данными алгоритма является значение переменной S, которое надо вычислить и вывести.
В данном примере счетчиком цикла является переменная i, которая принимает значения от 1 до N с шагом 1.
Представим процесс вычисления суммы S как последовательное вычисление частичных сумм:
;
;
;
¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼
¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼
Исходя из этого, начальное значение суммы S принимается равным 0, затем, на каждом шаге текущее значение S увеличивается на величину i -го слагаемого:
Заполним таблицу имен объектов:
Имя объекта в задаче | Имя объекта в блок-схеме | Тип объекта | Примечание |
I | целая переменная | счетчик цикла | |
N | целая переменная | конечное значение счетчика цикла | |
S | Вещественная переменная | текущее значение частичной суммы | |
PI | Вещественная переменная | ||
A | Вещественная переменная | текущее слагаемое |
Тогда схема алгоритма по шагам запишется следующим образом:
Ш1. Ввод N.
Ш2. S присвоить 0.
Ш3. присвоить 1.
Ш4. Если , то перейти на Ш7.
Ш5. Вывод .
Ш6. Конец.
Ш7. присвоить .
Ш8. S присвоить .
Ш9. присвоить .
Ш10. Перейти на Ш4.
Блок-схема этого алгоритма приведена на рис.2.6.
Рис 2.6 Блок-схема алгоритма вычисления суммы N слагаемых
Поясним работу алгоритма таблицей трассировки для .
№ действия | № блока | Результат действия |
Ввод | ||
1 £ 3, ДА | ||
S = 0 + 0,8674 = 0,8674 | ||
i = 1 + 1 = 2 | ||
переход на 4 | ||
2 £ 3, да | ||
i = 2 + 1 = 3 | ||
переход на 4 | ||
3 £ 3, да | ||
S = 1,3011 + 0 = 1,3011 | ||
i = 3 + 1 = 4 | ||
переход на 4 | ||
4 £ 3, нет | ||
Вывод S = 1,3011 | ||
Конец |
При составлении программы по блок-схеме блоку "Начало" поставим в соответствие заголовок программы PROGRAM, блоку описания используемых в программе переменных соответствует раздел описания переменных VAR декларативной части блока. В этом разделе содержатся два описания: переменные I и N объявляются целыми, а переменные S и A вещественными.
Далее следует исполнительная часть блока, представляющая собой составной оператор. Она начинается с открывающей операторной скобки BEGIN. За ней следуют операторы программы. Блоку ввода ставим в соответствие вызов процедуры вывода информации на экран дисплея WRITELN для вывода приглашения ко вводу и вызов процедуры ввода информации с клавиатуры READLN для ввода исходных данных алгоритма – значения N.
Далее программируем операторы присваивания для задания сумме S начального значения 0, и параметру цикла I начального значения 1, ставя каждому блоку в соответствие один оператор, затем переходим к программированию цикла с предусловиями с помощью оператора WHILE. В теле цикла содержится более одного оператора, поэтому необходимо использование операторных скобок BEGIN END. В теле цикла последовательно вычисляются значение А, S и значение счетчика цикла увеличивается на величину приращения.
По выходу из цикла вывод информации программируем с помощью вызова процедуры вывода информации на экран дисплея WRITELN, блоку "конец" ставим в соответствие закрывающую операторную скобку END.
В результате получается следующая программа:
PROGRAM SUMMA1;
VAR I, N: INTEGER;
A,S:REAL;
BEGIN
WRITELN('ВВЕДИ ЗНАЧЕНИЕ N');
READLN(N);
S:=0.;
I:=1;
WHILE I<=N DO
BEGIN
A:=SIN(PI*I/N)/I;
S:=S+A;
I:=I+1;
END;
WRITELN('СУММА S=',S:10:4);
END.
Дата добавления: 2015-07-16; просмотров: 176 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ | | | Вычисление произведения N сомножителей. |