Учебник Turbo Pascal. Введение - Вычисление суммы
ОГЛАВЛЕНИЕ
Вычисление суммы
В следующей программе вычисляется сумма:
Листинг 1.4. Вычисление суммы
program summation_2;
var
i, n: Word;
t, add, summa: Real:
begin
Write('Введите количество слагаемых n = ');
ReadLn(n);
summa := 0:
for i := n downto 1 do
begin
t := 1.0/i:
add := Sqr(t):
summa := surma + add;
end;
WriteLn('Сумма l/i^2 от i = 1 до ', n);
WriteLn('S = ', summa):
Write('Нажмите клавишу <Enter>');
ReadLn;
end.
В этой программе есть переменные типов Real и Word. Во втором операторе присваивания внутри цикла используется функция вычисления квадрата числа — Sqr. Кроме того, здесь мы встречаемся с разновидностью цикла for, в которой благодаря использованию ключевого слова downto вместо to значение управляющей переменной i уменьшается каждый раз на единицу. В рассматриваемом случае лучше всего проводить суммирование в обратном порядке, то есть от слагаемых с наибольшими номерами, принимающими наименьшие значения, к слагаемым с наименьшими номерами, принимающими наибольшие значения. При суммировании в прямом порядке, начиная с некоторого номера, может возникнуть ситуация, когда при каждом проходе цикла к относительно большому значению суммы будет прибавляться сравнительно малое значение очередного слагаемого. Погрешность выполнения такой операции увеличивается — это особенность машинной арифметики. При суммировании в обратном порядке слагаемые не так сильно различаются между собой по величине, и, следовательно, точность вычисления полной суммы будет выше.