Цветовая схема:
C C C C
Шрифт
Arial Times New Roman
Размер шрифта
A A A
Кернинг
1 2 3
Изображения:
  • ХМАО - Югра, г. Нижневартовск
  • +7 (904) 483-50-68
  • sammitportal@mail.ru

9 класс: цикл FOR с накоплением

9 класс: цикл FOR с накоплением

9класс.jpg  

Прием накопления суммы

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

Пример: Просуммировать все четные числа от 2 до 100.

...
s:=0; {Обнуление переменной}
for i:=2 to 100 do
if i mod 2 = 0 then s:=s+i; {Прибавление очередного четного элемента суммы}
...
[spoiler]

Очень важная, фундаментальная идея, использованная в данном приеме, состоит в том, что результат выполнения каждого шага цикла, зависит от значения переменной, вычисленной на предыдущем шаге. Таким образом, вместо тривиального повторения одного и того же, мы на каждом шаге получаем новый результат. Так в приведенном примере очередное число добавляется к значению переменной 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 (десятая программа Иванова Василия Петровича). Не забываем копировать ваши программы в папку Обмен.
Удачи!

Удачи!