Академический Документы
Профессиональный Документы
Культура Документы
Начало
Ввод данных
Тело цикла
Вывод данных
Конец
Циклический алгоритм
Цикл – это алгоритмическая конструкция, которая представляет собой
последовательность действий, повторяющихся многократно. Различают три вида циклов:
цикл с заданным условием продолжения работы, который называется также циклом с
предусловием; циклы с заданным условием окончания работы или с постусловием, а также
циклы с параметром.
В реальной жизни мы довольно часто сталкиваемся с циклами. Например, ходьба
человека — вполне циклическое явление: шаг левой, шаг правой, снова левой-правой и т.д.,
пока не будет достигнута некая цель (например, школа или магазин). В компьютерных
программах наряду с инструкциями ветвлениями (т.е. выбором пути действия) также
существуют инструкции циклов (повторения действия). Если бы инструкций цикла не
существовало, то тогда пришлось бы много раз вставлять в программу один и тот же код
подряд столько раз, сколько нужно выполнить одинаковую последовательность действий.
Универсальным организатором цикла в языке программирования Python (как и во многих
других) является инструкция while. Слово "while" с английского языка переводится как
"пока" (вроде как "пока действует что-то, делать то-то"). Конструкцию инструкции while на
языке Python можно описать следующей схемой:
Пример.
a=0
while a < 7:
print("A")
a += 1
Буква “А” будет выведена семь раз в столбик.
Пример.
a = -1
while a < 10:
a += 1
if a >= 7:
continue
print("A")
При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего
будет выполнено 11 проходов цикла.
Оператор continue позволяет пропустить часть цикла при возникновении внешнего
фактора и перейти к следующей итерации цикла. То есть текущая итерация прерывается,
после чего программа возвращается в начало цикла. Оператор continue располагается в
блоке кода после оператора цикла (обычно после if).
Рассмотрим задачу. Написать программу для вычисления суммы цифр целого числа.
Для решения задачи мы будем выделять правую цифру числа путём вычисления его
остатка от деления на десять, учитывать найденную цифру при расчёте суммы, после чего
убирать эту цифру из числа путём его безостаточного деления на десять. Мы будем
повторять эти действия до тех пор, пока в числе не останется цифр, то есть пока оно больше
нуля.
Напишем модуль для решения задачи. Вначале, с помощью инструкции print, выведем
на экран сообщение о том, что это программа, вычисляющая сумму цифр целого числа, и
запрос на его ввод. Дальше запишем инструкцию для считывания числа в переменную n.
Так как по условию число целое – при вводе будем преобразовывать его значение в
целочисленный тип int. Введённое число необязательно положительное, поэтому для
вычисления суммы цифр будем использовать его модуль. Для получения модуля числа
присвоим переменной n значение функции abs (n). Прежде чем начать вычисление суммы
цифр числа, объявим переменную для её хранения. Назовём её s и присвоим ей значение
ноль. Теперь начнём вычисление суммы цифр числа. Для этого запишем цикл while.
Условием продолжения его работы будет то, что в числе n ещё остались цифры, то есть оно
больше нуля. В теле цикла запишем единственную инструкцию присваивания
переменным s и n соответственно s + n % 10, а также n // 10. Таким образом, на каждом шаге
цикла к переменной s будет добавляться значение правой цифры n, после чего эта цифра
будет убрана из числа. По завершении работы цикла, в переменной s будет храниться
значение суммы цифр числа. Поэтому с помощью инструкции pritn выведем на экран
сообщение о том, что сумма цифр введённого числа равна значению переменной s.
Как извлечь отдельные цифры из числа? Если число разделить нацело на десять, в
остатке будет последняя цифра этого числа. Например, если 349 разделить нацело на 10, то
получится частное 34 и остаток 9. Если потом 34 разделить также, получится частное 3 и
остаток 4; далее при делении 3 на 10 получим частное 0 и остаток 3.
print ('Программа, вычисляющая сумму print ('Программа, вычисляющая сумму
цифр целого числа. Введите число.') цифр целого числа. Введите число.')
n = int (input ()) n = int (input ())
n = abs (n) n = abs (n)
s=0 s=0
while n > 0: while n > 0:
s, n = s + n % 10, n // 10 r= n % 10
print ('Сумма цифр введённого числа:', s) s = s +r,
n =n // 10
print ('Сумма цифр введённого числа:', s)
Запустим модуль на выполнение и введём число 32768. Сумма его цифр действительно
равна 26. Ещё раз запустим модуль и введём число -256. Сумма его цифр действительно
равна 13. Программа работает правильно. Задача решена.
Исправьте программы чтобы работали
data = []
num = int(input("Введите целое число (0 для окончания ввода): "))
while num != 0:
data.append(num)
num = int(input("Введите целое число (0 для окончания ввода): "))
data.sort()
print("Введенные числа в порядке возрастания:")
for num in data:
print(num)