Задача
Найти сумму всех целых чисел от 100 до 500.
Напишем программу, которая решает данную задачу, без использования формулы. Если мы будем просто записывать результат сложения в переменную
s
, например, как
\(s=100+101+102+103+...+500\),
мы потратим очень много времени на саму запись, ведь компьютер не поймет как использовать многоточие в арифметическом выражении и нам придется написать все числа от 100 до 500. Да и ценность такой программы будет ничтожной. Особенно если мы захотим поменять наши числа и взять другой диапазон.
Как же нам поступить?
Если мы обратим внимание на запись выше, то у нас постоянно используется сложение "
+
".
Можно попробовать добавлять числа к переменной
s
постепенно. Например, используя такую запись
s = s + i
.
Что мы сделали:
1) справа мы поставили вычисление выражения s + i
, то есть мы берем значение переменной s
и добавляем к нему значение переменной i
;
2) слева мы поставили имя переменной s
, то есть весь результат вычисления справа будут сохраняться в эту же переменную s
, таким образом мы будем изменять значение переменной s
.
Останется только изменять значение переменной i
в нужном диапазоне. Это можно сделать с помощью цикла for
.
Числа от 100 до 500, которые относятся к нашему диапазону, должны по очереди попадать в переменную
i
.
Пример
// ВАЖНО! В начале необходимо обнулить переменную s,
// чтобы на первом шаге число 100 добавлялось к нулю,
// а не к тому что в памяти!
s=0;
for ( i = 100; i <= 500; i++) // заголовок цикла, в котором переменная i
s = s + i; // меняет свое значение от 100 до 500 с шагом 1,
// в теле цикла постепенно к переменной s,
// добавляем значение изменяющейся переменной i,
// и результат сохраняем обратно в переменной s
Данное решение очень похоже на вычисление суммы по действиям:
\(s = 0 + 100 = 100, \\ s = 100 + 101 = 201, \\ s = 201 + 102 = 303 \\ ... \)