Если вы поняли идею счетчика, то понять идею сумматора вам будет нетрудно. Посмотрим, как будет работать следующий фрагмент:
s:=0; {Обнуляем сумматор. Это не менее важно, чем обнулить счетчик}
m: ReadLn(a);
s:=s+a; {Увеличиваем сумматор}
WriteLn(‘Сумма=’, s);
goto m;
Пусть мы вводим числа 8, 4, 10 . . . В этом случае порядок выполнения операторов будет такой:
Оператор | а | s | Печать |
s:=0 | ? | ||
ReadLn(a) | |||
s:=s+a | |||
WriteLn(‘Сумма=' ,s) | Сумма=8 | ||
goto m | |||
ReadLn(a) | |||
s:=s+a | |||
WriteLn(‘Сумма=' ,s) | Сумма=12 | ||
goto m | |||
ReadLn(a) | |||
s:=s+a | |||
WriteLn(‘Сумма=' ,s) | Сумма=22 | ||
goto m | |||
………. |
Как видите, в ячейке s накапливается сумма вводимых чисел a, поэтому назовем эту ячейку сумматором. Отличие сумматора от счетчика в том, что счетчик увеличивается на 1 оператором c:=c+1, а сумматор - на суммируемое число оператором s:=s+a.
Задача: В компьютер вводится N чисел. Вычислить и один раз напечатать их сумму.
Программа:
VAR i,N :Integer;
a,s :Real;