Книга: Одномерные массивы

(2.1)

Для вычисления суммы элементов части массива, например, с in– го до ik –го. Следует использовать формулу:

(2.2)

Очевидно, что формула (2.2) получается из формулы (2.1) при in=0 и ik =n –1 .

Алгоритм вычисления суммы состоит в следующем:

1. установить значение переменой для накопления суммы (s ) в нулевое значение (s=0 );

2. в цикле изменяя i от in до ik вычислить суммуэлементов массива по выражениию s=s+ai .

При первой итерации цикла (i=in ) получим s=s+ain = 0+ ain . На второй (i=in+1 ) – s=s+ain+1 = ain + ain+1 и т. д. На последней итерации цикла будем иметь s=s+aik = ain + ain+1 +…+ aik . Т.е. в цикле по параметру i "старое" значение s , содержащее накопленную сумму на предыдущей итерации, изменяется на значение ai . На рисунке 2.5 представлен алгоритм и фрагменты программ вычисления суммы элементов массива.

*/вычисление суммы элементов массива с in по ik

s=0;

for(i=in;i<ik;i++)

s=s+a[i]; // или s+=a[i]; или s+=*(a+i);

*/вычисление суммы всех элементов массива

s=0;

for(i=0;i<n;i++)

s+=a[i];

Рисунок 2.5 Графическая схема и фрагмент программы вычисления суммы элементов массива

Если в алгоритме (рисунок 2.5) в блоке 2 записать i=0, а блоке 3 – (i<n) , то получим алгоритм вычисления суммы всех элементов массива.

Рассмотренный алгоритм вычисления суммы, можно применить для вычисления суммы элементов, стоящих в массиве на заданных местах (рисунок 2.6). В этом случаи шаг изменения параметра цикла определяется переменной step .

/* с помощью цикла for */

s=0;

for(i=in;i<ik;i=i+step)

s+=a[i]; // или s=s+a[i];

/* с помощью цикла while */

s=0; i=in;

while (i<ik)

{

s+=a[i];

i=i+step;

К-во Просмотров: 1166
Бесплатно скачать Книга: Одномерные массивы