logo
Лекции по TURBO PASCAL

Нахождение суммы

Циклы часто используют для нахождения суммы каких-либо последовательностей. Например, сумму натуральных чисел от 1 до 10. Можно, конечно, решить эту задачу таким способом:

s := 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 ;

Но у этого способа есть два недостатка:

  1. Решение громоздко и банально.

  2. Решение не поддается корректировке. Например, если мы захотим изменить эту программу так, чтобы она находило сумму первых 100 натуральных чисел, то размер программы увеличится почти в 10 раз.

Поэтому такую задачу лучше решать с использованием цикла. Решать будем по такой общей схеме:

обнулить счётчик суммы

начало цикла

прибавить к счётчику суммы очередное слагаемое

конец цикла

вывести значение счётчика суммы на экран

То есть для нахождения суммы мы должны специально выделить переменную, в которой эта сумма будет храниться. Пусть это будет переменная s. Вначале сумму нужно обнулить, то есть переменной s присвоить 0. Потом, уже в теле цикла, мы должны будем каждый раз увеличивать значение переменной s на значение очередного слагаемого. Этим слагаемым будет переменная цикла, так как именно она будет поочерёдно принимать все интересующие нас значения.

Переведём всё вышесказанное на язык Паскаль:

program The_sum_of_natural_numbers_from_1_to_10;

var s, i : integer;

begin

s := 0; { вначале сумма равна 0 }

For i := 1 to 10 do

begin

s := s + i { суммируем }

end;

writeln (’Сумма чисел от 1 до 10 равна ’, s)

end.

Заметьте, что строчка с выводом результата на экран находится за телом цикла. Скажите, как изменилось бы выполнение программы, если бы оператор writeln находился внутри тела цикла?

Измените эту программу так, чтобы она находила сумму первых n натуральных чисел, где n вводится с клавиатуры.