Step 3 (S-14660)

From Stepik Wiki
Revision as of 18:29, 1 August 2017 by Евгений (Talk | contribs) (Немного почищен текст от мелких опечаток и двойных пробелов.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3364/step/3

S-14660-1.png

Рассмотрим несколько примеров задач с циклом while. Предположим, что мы хотим вывести все нечетные числа от 5 до 55. Мы могли бы подойти к этой проблеме следующим образом: давайте явным образом выведем число 5, потом выводим следующее четное число, то есть число 7, и так далее. Напишем много-много вызовов функций print и закончим выводом print(55).

S-14660-2.png

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

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

S-14660-3.png

В любом случае, сначала заведем специальную переменную, которая будет менять свое значение. Назовем эту переменную а и запишем в нее начальное значение 5. Напомню, мы хотим вывести все нечетные числа, которые не превосходят число 55. Будем делать это следующим образом: будем выводить значения переменной а и увеличивать ее значение на 2 (когда мы увеличиваем значение числа на 2, мы переходим к следующему нечетному числу, при условии, что изначально число было - нечетным). Как это записать? Мы выводим значения а и значение переменной а увеличиваем на 2. Поскольку эти действия нам нужно повторять до тех пор, пока значение переменной а не превысит 55, то запишем эти операции внутри цикла while с условием: а <= 55. Полученная конструкция выведет нам все значения нечетных чисел от 5 до 55.

S-14660-4.png

Можно написать программу немного по другому. Пусть переменная а будет в цикле пробегать все целые значения от 5 до 55.

S-14660-5.png

Внутри цикла мы будем явным образом проверять число на четность. Если число нечетное, то мы сделаем вывод а на экран. В противном случае - ничего не делаем. Выглядеть это будет следующим образом. Аналогично предыдущему решению мы заводим переменную а и создаем цикл с тем же условием. Внутри цикла мы делаем проверку: если а нечетно (остаток от деления а на 2 будет равно 1) выводим а. И независимо от результата проверки увеличиваем значение а на 1.

Этот пример демонстрирует то, что внутри тела цикла могут содержаться произвольные конструкции. Циклы могут содержать в себе вложенности произвольной глубины (например: условие, внутри условия - цикл, внутри цикла еще один цикл и т.д.).