Модуль: Pascal. Оператор цикла For. Типовые задачи


Задача

1/16

Сумма чисел последовательности - Пример 1

Теория Нажмите, чтобы прочитать/скрыть

Попробуем написать программу для решения следующей задачи:
Найти сумму всех целых чисел от 100 до 500. 

При решении данной задачи возникает трудность в поиске суммы. Если мы будем просто записывать результат сложени в переменную s, например как


s=100+101+102+103+...+500

уйдет очень много времени на саму запись, ведь компьютер не поймет как использовать многоточие в арифметическом выражении и нам прийдется написать все числа от 100 до 500 в эту сумму. Да и ценность такой программы будет ничтожной. Особенно если мы захотим поменять наши числа и взять другой диапазон.

Как же нам поступить?

Если мы обратим внимание на запись выше, то у нас постоянно используется сложение "+".
Можно попробовать добавлять числа к переменной s постепенно. Например, используя такую запись
s := s + i;
что мы здесь сделали:
1) справа мы поставили вычисление выражения s+i, то есть мы берем значение переменной s, которое у нас сейчас в памяти и добавляем к нему значение переменной i
2) слева мы поставили имя переменной s, то есть весь результат вычисления справа будут сохраняться в эту переменную, таким образом мы изменем значение переменной s. 

Где же взять числа из нашего диапазона?

Числа от 100 до 500, которые относятся к нашему диапазону должны поочереди попадать в перемнную i. А это можно сделать с использованием известного нам цикла for
Например, таким образом
s := 0;          //в начале необходимо обнулить переменную s, чтобы на первом шаге число 100 добавлялось к нулю, а не к тому, что в памяти!
for i := 100 to 500 do  //заголовок цикла, в котором переменная i меняет свое значение от 100 до 500 с шагом 1
    s := s + i;   //тело цикла, в котором мы постепенно к переменной s добавляем значение изменяющейся переменной i 
                 // и результат сохраняем обратно в переменной s
Данное решение очень похоже на вычисление суммы по действиям
 s = 0 + 100 = 100
 s = 100 + 101 = 201
 s = 201 + 102  = 303
и т.д.

Задача

1. Запустите разобранную в теоретической части программу на выполнение, посмотрите результат ее работы