Опубликовано: 2018-05-09 08:00:00
Счетный цикл FOR...NEXT. Часть вторая
В этой статье продолжим обсуждение оператор цикла с параметром FOR...NEXT ещё раз, поскольку это одна из самых важных тем.
Понимание оператора цикла с параметром дает ключ к автоматизации процесса. Например, если Вам нужно 10 раз подряд спросить у пользователя число, а потом посчитать сумму? Будете 10 раз печатать запрос? А если 20 раз? 100? В общем, без лишних слов.
Еще раз помотрите на синтаксис:
FOR <переменная> = <начальный_шаг> TO <до_скольки_повторять> [STEP <шаг>]
<оператор_1>
...
<оператор_N>
NEXT [<переменная>]
Ещё раз обратите внимание на STEP <шаг>. Если это не писать (можно не писать), то программа после каждого прохода увеличивает переменную на 1. Если написать STEP <шаг>, то программа будет увеличивать переменную на указанный шаг.
Прежде, чем продолжить, посмотрим ответ на предыдущую задачу (если вы её ещё не сделали самостоятельно):
- FOR I = 1 TO 15
- PRINT I;
- NEXT
Рисунок 1 – Пример использования переменной-счетчика в цикле
Рисунок 2 – Пример вывода переменной-счетчика в цикле
Обратите внимание, что в операторе FOR нужно использовать переменную-счетчик. Я называю её всегда I, но можно как-угодно, например, CNT.
Решим ещё одну задачу: Найти сумму N чисел.
- S = 0
- INPUT "SUMMU SKOL'KIKH NATURAL'NYKH CHISEL NADO NAYTI?"; N
- FOR I = 1 TO N
- S = S + I
- NEXT I
- PRINT "SUMMA IZ"; N; "NATURAL'NYKH CHISEL RAVNA:"; S
Рисунок 3 – Нахождение суммы в цикле
Рисунок 4 – Нахождение суммы N чисел и вывод результата
Теперь смысл. В первой строчке я делаю очень важную вещь – я собираюсь в переменную S складывать сумму всех чисел и перед этим присваиваю этой переменной значение 0. Если Вы собираетесь искать произведение чисел, то следует переменой присвоить 1, т.к. если бы там был 0, то произведение всех чисел было бы 0. Короче, это просто нужно думать по ходу написания программ. Для суммы нужно присваивать 0, для произведения 1. Далее идет ожидание ввода числа. В самой программе я могу использовать и I, но присваивать счетчику значения нужно только если знаешь, что делаешь. В теле цикла закапливаем сумму. А после этого я вывожу S, в которой содержится сумма чисел от 1 до N.
Общий алгоритм:
- Заводим переменную для накапливания суммы S, присваеваем ей изначально 0.
- Получаем N. Это сколько раз надо повторять. Для наглядности пусть будет 3.
- Теперь увеличиваем I и выполняем N-итераций. Накапливаем в S содержимое счетчика. Если I уже достиг N, то прекратить выполнение цикла.
Если объяснять наглядно, то после первого захода в S было 1, после второго 1 + 2, а после третьего 1 + 2 + 3. А теперь догадайтесь, что в конце в S будет? Правильно – 6!
Теперь немного усложним задачу (перед тем как увидеть ответ попробуйте решить её самостоятельно). Найти сумму четных чисел от 1 до 10:
- S = 0
- FOR I = 2 TO 10 STEP 2
- S = S + I
- NEXT I
- PRINT "SUMMA CHETNYKH CHISEL: "; S
Рисунок 5 – Пример нахождения суммы четных чисел
Рисунок 6 – Найденная сумма чисел от 1 до 10
А ведь всего то изменился только шаг!
Смысл оператора FOR такой, что он несколько раз (N-раз) «прогоняет» операторы, что перед NEXT. Не обязательно его использовать в самой программе, можно делать, что хотите, просто это что-то будет выполнено N-раз.
Спасибо за прочтение этой статьи.