Прием накопления суммы
Данный алгоритмический прием используется, когда надо просуммировать большое количество чисел. Для этого переменной, в которую будет записываться сумма, в начале присваивается нулевое значение, затем делается цикл, где на каждом шаге к этой переменной добавляется очередное число.
Пример: Просуммировать все четные числа от 2 до 100.
... s:=0; {Обнуление переменной} for i:=2 to 100 do if i mod 2 = 0 then s:=s+i; {Прибавление очередного четного элемента суммы} ... |
Очень важная, фундаментальная идея, использованная в данном приеме, состоит в том, что результат выполнения каждого шага цикла, зависит от значения переменной, вычисленной на предыдущем шаге. Таким образом, вместо тривиального повторения одного и того же, мы на каждом шаге получаем новый результат. Так в приведенном примере очередное число добавляется к значению переменной s, полученному на предыдущем шаге.
А к чему добавляется очередное число на самом первом шаге? Чтобы было к чему добавлять, перед циклом обязательно должна присутствовать инициализация (присваивание начального значения) переменной, в которой накапливается сумма. Чаще всего требуется присвоить ей начальное значение 0.
Программистский анекдот в тему:
Буратино подарили три яблока. Два он съел. Сколько яблок осталось у Буратино? Ответ «одно» неправильный. Неизвестно, сколько осталось, так как не сказано, сколько яблок было у него до того, как ему подарили три новых. Мораль: не забывайте обнулить переменные. |
Прием накопления произведения
Аналогично накоплению суммы можно в отдельной переменной накапливать произведение. Переменной, в которой производится накопление, присваивается начальное значение 1.
Пример. Вычисление факториала.
Факториалом целого числа n называется произведение всех целых чисел от 1 до n. Обозначается n!. То есть: n! = 1*2*3*…*n
... readln(n); p:=1; for k:=2 to n do p:=p*k; writeln(p); ... |
Задание на урок:
«A»: Ипполит задумал трёхзначное число, которое при делении на 17 даёт в остатке 6. Напишите программу, которая находит произведение всех таких чисел.
«B»: С клавиатуры вводится натуральные числа А и В, причем А<В. Программа должна найти сумму всех чётных натуральных чисел от А до В.
«C»: Найти сумму четырехзначных чисел, сумма цифр которых делится на 5 без остатка.
Внимание! В первой строке своей программы в комментариях указываем фамилию, имя и класс на кириллице. Имя файла формируем из своих инициалов и номера программы, например IVP10.pas (десятая программа Иванова Василия Петровича). Не забываем копировать ваши программы в папку Обмен.
Удачи!
Удачи!