Вы находитесь на странице: 1из 5

Циклические алгоритмы – те конструкция которых представляет собой

последовательность действий, повторяющихся многократно. Цикл бывает с параметрами и


с условием (предусловие и постусловие). Часть конструкции повторения называется телом
цикла. Циклы бываю сложные и простые.

Начало
Ввод данных
Тело цикла
Вывод данных
Конец

Циклический алгоритм
Цикл – это алгоритмическая конструкция, которая представляет собой
последовательность действий, повторяющихся многократно. Различают три вида циклов:
цикл с заданным условием продолжения работы, который называется также циклом с
предусловием; циклы с заданным условием окончания работы или с постусловием, а также
циклы с параметром.
В реальной жизни мы довольно часто сталкиваемся с циклами. Например, ходьба
человека — вполне циклическое явление: шаг левой, шаг правой, снова левой-правой и т.д.,
пока не будет достигнута некая цель (например, школа или магазин). В компьютерных
программах наряду с инструкциями ветвлениями (т.е. выбором пути действия) также
существуют инструкции циклов (повторения действия). Если бы инструкций цикла не
существовало, то тогда пришлось бы много раз вставлять в программу один и тот же код
подряд столько раз, сколько нужно выполнить одинаковую последовательность действий.
Универсальным организатором цикла в языке программирования Python (как и во многих
других) является инструкция while. Слово "while" с английского языка переводится как
"пока" (вроде как "пока действует что-то, делать то-то"). Конструкцию инструкции while на
языке Python можно описать следующей схемой:

Оператор цикла while. Структура циклом с предусловием


Оператор цикла while выполняет указанный набор инструкций до тех пор, пока
условие цикла истинно. Истинность условия определяется также как и в
операторе if. Синтаксис оператора while выглядит так:

while выражение: Синтаксис цикла while в простейшем случае


инструкция_1 выглядит так:
инструкция_2 while условие:
... тело цикла
инструкция_n

Выполняемый набор инструкций называется телом цикла.

Пример.
a=0
while a < 7:
print("A")
a += 1
Буква “А” будет выведена семь раз в столбик.

i++, i=i+1, i+=1 обозначает одно и тоже

Пример бесконечного цикла.


a=0
while a == 0:
print("A")

Операторы break и continue


При работе с циклами используются операторы break и continue.
Оператор break предназначен для досрочного прерывания работы цикла while.
Пример.
a=0
while a >= 0:
if a == 7:
break
a += 1
print("A")
В приведенном выше коде, выход из цикла произойдет при достижении переменной a
значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.
Оператор continue запускает цикл заново, при этом код, расположенный после
данного оператора, не выполняется.

Пример.
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)

## # Выводим числа, введенные пользователем, в порядке возрастания


# # Начинаем с пустого списка
# Считываем значения и добавляем их в список, пока пользователь не введет ноль
# Сортируем значения
# Выводим числа в порядке возрастания

Вызов метода sort применительно к списку переставляет значения в нем,


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

Создание списка без дубликатов


words = []
word = input("Введите слово (Enter для окончания ввода): ")
while word != "":
if word not in words:
words.append(word)
word = input()
for word in words:
print(word)

## # Считываем ряд слов, введенных пользователем, и выводим их без дубликатов


# в том же порядке, в котором они были введены
# # Запрашиваем слова у пользователя и сохраняем их в список
Наибольшие и наименьшие значения в списке можно было удалить и в одном цикле.
В данном случае используется два цикла, чтобы решение было более понятным.
# Добавляем слово в список, только если оно уже не присутствует в нем
# Запрашиваем следующее слово у пользователя
# Отображаем уникальные слова

Вам также может понравиться