И количества вычисленных значений

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

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

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

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

№ шага Текущее значение х (в начале цикла) Результат проверки условия продолжения цикла (xxk) Вычисл. значение у Текущие значения накапливающихся величин k, P, S Новое значение х (в конце цикла)
  -3 (xn) Истина -5 k= 1, P= 1, S =-5 -2
  -2 Истина -3 k= 2, P= 1, S =-8 -1
  -1 Истина -1 k =3, P =1, S= -9  
    Истина   k= 3, P= 1, S= -8  
    Истина   k= 3, P= 3, S= -5  
    Истина   k= 3, P= 15, S= 0  
  3 (xk) Истина   k= 3, P= 105, S= 7  
  4 Ложь      

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow