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

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

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

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

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

Пример 4.2.Составить блок-схему алгоритма, вычисляющего значения функцииу = 2∙x + 1, при различных значениях параметрах, принадлежащих интервалу -3x ≤ 3,hx = 1. В качестве дополнительной задачи необходимо найти: количество (k) вычисленных значенийy, которые ≤ 0; сумму (S) всех значенийy (S = y) и произведение (Р) значенийy, которые > 0 ().

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

Поэтому для реализации алгоритма, в отличие от примера 4.1, можно воспользоваться циклом с предусловием, блок-схема которого приведена на рис. 4.2.

Исходными данными, как и в примере 4.1, являются xn, xk, hx, которые вводятся в блоке 2. В нашем случае необходимо будет ввестиxn =-3, xk=3, hx=1. На этапе подготовки к выполнению цикла задаются начальные значения для параметра циклаx(блок 3) и дополнительных величинk, S, P(блок 4). Затем начинается тело цикла с предусловием (блоки 5-12).

При входе в цикл проверяется условие продолжения вычислений в теле цикла (блок 5). Вычисляется (блок 6) и выводится на экран (блок 7) значениеупри текущем значении параметра циклах. Затем проверяется вычисленное значениеу(блок 8), и еслиу ≤ 0, тоkувеличивается на единицу (блок 9), в противном случае текущее значениеуучитывается в произведенииР(блок 10). Кроме этого, каждое вычисленное значениеудобавляется к суммеS(блок 11). В конце тела цикла выполняется изменение параметра цикла (блок 12), т. е. вычисляется следующее значениехиз заданного интервала, и происходит возврат в начало цикла. После выхода из цикла выводятся значения переменныхk, P, S(блок 13).

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

Таблица 4.2. Пошаговое выполнение цикла

шага

Текущее

значение х

(в начале

цикла)

Результат проверки

условия продолжения цикла (x xk)

Вычисл.

значение у

Текущие

значения накапливающихся

величин k, P, S

Новое

значение х

(в конце цикла)

1

-3(xn)

Истина

-5

k=1, P=1, S=-5

-2

2

-2

Истина

-3

k=2, P=1, S=-8

-1

3

-1

Истина

-1

k=3, P=1, S=-9

0

4

0

Истина

1

k=3, P=1, S=-8

1

5

1

Истина

3

k=3, P=3, S=-5

2

6

2

Истина

5

k=3, P=15, S=0

3

7

3(xk)

Истина

7

k=3, P=105, S=7

4

8

4

Ложь

Пошаговое выполнение цикла показывает, что итоговые значения суммы, количества и произведения (k=3, P=105, S=7) будут получены после завершения работы цикла. Поэтому они должны выводитьсятолько после выхода из цикла. Если выводk, P, Sорганизовать внутри тела цикла, то будут выведены все промежуточные значения этих величин, приведенные в таблице. Также будет неправильно поставить вывод значения параметра циклахи вычисляемой величиныу(блок 7) после выхода из цикла. Из таблицы 4.2 видно, что в этом случае будут выведены последние значения, хранящиеся в этих переменных (х=4 иу=7).