Программирование на языке Python
Что такое цикл?
Блок-схема цикла
Как организовать цикл?
Цикл с условием
Считаем цифры
Максимальная цифра числа
Цикл с условием
Сколько раз выполняется цикл?
Пример-1 (с предусловием)
Цикл с постусловием
Пример-2 (с постусловием)
Пример-3 (c предусловием)
Пример-4 (c постусловием)
Алгоритм Евклида
Алгоритм Евклида
Задачи-2
Задачи-2
Задачи-2
Задачи-2
Конец фильма
Источники иллюстраций
365.81K
Категория: ПрограммированиеПрограммирование

9ba174a5a6c64d81b01e2d9ad2fa539d (1)

1. Программирование на языке Python

1
Программирование
на языке Python
§ 57. Циклические
алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

2. Что такое цикл?

Алгоритмы и программирование, язык Python, 10 класс
2
Что такое цикл?
Цикл – это многократное выполнение одинаковых
действий.
Два вида циклов:
• цикл с известным числом шагов (сделать 10 раз)
• цикл с неизвестным числом шагов (делать, пока не
надоест)
Задача. Вывести на экран 10 раз слово «Привет».
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

3. Блок-схема цикла

Алгоритмы и программирование, язык Python, 10 класс
3
Блок-схема цикла
начало
сделали 10 раз?
да
конец
нет
print("Привет!")
тело цикла
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

4. Как организовать цикл?

Алгоритмы и программирование, язык Python, 10 класс
4
Как организовать цикл?
счётчик = 0
пока счётчик < 10:
print("Привет“)
увеличить счётчик на 1
результат операции
автоматически
сравнивается с нулём!
счётчик = 10
пока счётчик > 0:
print("Привет")
уменьшить счётчик на 1
? Какой способ удобнее для процессора?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

5. Цикл с условием

Алгоритмы и программирование, язык Python, 10 класс
5
Цикл с условием
Задача. Определить количество цифр в десятичной
записи целого положительного числа, записанного в
переменную n.
n
счётчик
счётчик = 0
пока n > 0:
1234
0
отсечь последнюю цифру n
123
1
увеличить счётчик на 1
12
2
? Как отсечь последнюю цифру?
n = n // 10
1
0
3
4
? Как увеличить счётчик на 1?
счётчик = счётчик + 1
К.Ю. Поляков, Е.А. Ерёмин, 2018
счётчик += 1
http://kpolyakov.spb.ru

6. Считаем цифры

Алгоритмы и программирование, язык Python, 10 класс
6
Считаем цифры
начальное значение
счётчика
заголовок
цикла
условие
продолжения
count = 0
while n > 0 :
n = n // 10
count += 1
тело цикла
! Цикл с предусловием – проверка на входе в цикл!
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

7. Максимальная цифра числа

Алгоритмы и программирование, язык Python, 10 класс
7
Максимальная цифра числа
Задача. Определить максимальную цифру в
десятичной записи целого положительного числа,
записанного в переменную n.
n = int(input())
пока остались
M = -1
цифры
последняя while n > 0:
цифра
d = n % 10
if d > M:
? Что плохо!
поиск
M = d
максимума
n = n // 10
отсечь
print( M )
последнюю
цифру
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

8. Цикл с условием

Алгоритмы и программирование, язык Python, 10 класс
8
Цикл с условием
При известном количестве шагов:
k=0
while k < 10:
print ( "привет" )
k += 1
Зацикливание:
k=0
while k < 10:
print ( "привет" )
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

9. Сколько раз выполняется цикл?

Алгоритмы и программирование, язык Python, 10 класс
9
Сколько раз выполняется цикл?
a = 4; b = 6
while a < b: a += 1
2 раза
a=6
a = 4; b = 6
while a < b: a += b
1 раз
a = 10
a = 4; b = 6
while a > b: a += 1
0 раз
a=4
a = 4; b = 6
while a < b: b = a - b
1 раз
b = -2
a = 4; b = 6
while a < b: a -= 1
зацикливание
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

10. Пример-1 (с предусловием)

Алгоритмы и программирование, язык Python, 10 класс
10
Пример-1 (с предусловием)
Задача. Посчитать сумму положительных целых чисел,
вводимых с клавиатуры, пока не будет введён ноль
Начало
S=0
Ввод числа x
x 0
нет
да
S = S+ х
Ввод числа x
Вывод S
print ('Сумма чисел отличных от нуля')
S=0
x = int (input('Введите целое
положительное число'))
while x != 0 :
S=S+x
x = int (input('Введите целое положительное
число (или ноль – для завершения программы)'))
print ('Сумма чисел отличных от нуля S=‘ , S)
Конец
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

11. Цикл с постусловием

Алгоритмы и программирование, язык Python, 10 класс
11
Цикл с постусловием
Задача. Обеспечить ввод положительного числа в
переменную n.
бесконечный
цикл
while True:
print ( "Введите положительное число:" )
n = int ( input() )
if n > 0: break
тело цикла
условие
прервать
выхода
цикл
• при входе в цикл условие не проверяется
• цикл всегда выполняется хотя бы один раз
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

12. Пример-2 (с постусловием)

Алгоритмы и программирование, язык Python, 10 класс
12
Пример-2 (с постусловием)
Задача. Посчитать сумму положительных целых чисел,
вводимых с клавиатуры, пока не будет введён ноль
Начало
print ('Сумма положительны чисел
отличных от нуля')
S=0
while True:
x = int (input('Введите целое положительное
S=0
Ввод числа x
S = S+ х
x =0
да
нет
число (или ноль – для завершения программы)'))
S=S+x
if x==0: break
Вывод S
Конец
К.Ю. Поляков, Е.А. Ерёмин, 2018
print ('Сумма чисел отличных от нуля S=‘ , S)
http://kpolyakov.spb.ru

13. Пример-3 (c предусловием)

Алгоритмы и программирование, язык Python, 10 класс
13
Пример-3 (c предусловием)
Задача. Протабулировать (найти значение функции)
y=x3 на отрезке [0;-12] с шагом 0,3
print ('Значения функции Y')
x=0
while x >= -12 :
y=x**3
print ('При х=',f '{x:6.2f}',' y=',f '{y:2.2f}')
x−=0.3
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

14. Пример-4 (c постусловием)

Алгоритмы и программирование, язык Python, 10 класс
14
Пример-4 (c постусловием)
Задача. Протабулировать (найти значение функции)
y=x3 на отрезке [0;-12] с шагом 0,3
print ('Значения функции Y')
x=0
while True:
y=x**3
print ('При х=',f '{x:6.2f}',' y=',f '{y:2.2f}')
x−=0.3
if x< − 12 : break
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

15. Алгоритм Евклида

Алгоритмы и программирование, язык Python, 10 класс
15
Алгоритм Евклида
Алгоритм Евклида. Чтобы найти НОД двух натуральных
чисел, нужно вычитать из большего числа меньшее до
тех пор, пока они не станут равны. Это число и есть
НОД исходных чисел.
НОД(14,21) = НОД(14,7) = НОД(7, 7) = 7
пока a != b:
если a > b:
a -= b # a = a - b
иначе:
b -= a # b = b - a
while a != b:
if a > b:
a -= b
else:
b -= a
НОД(1998,2) = НОД(1996,2) = … = НОД(2, 2) = 2
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

16. Алгоритм Евклида

Алгоритмы и программирование, язык Python, 10 класс
16
Алгоритм Евклида
Модифицированный алгоритм Евклида. Заменять
большее число на остаток от деления большего на
меньшее до тех пор, пока меньшее не станет равно
нулю. Другое (ненулевое) число и есть НОД чисел.
НОД(1998,2) = НОД(0,2) = 2
пока a!=0
???: and b!=0:
если a > b:
a = a % b
иначе:
b = b % a
если a != 0:
вывести a
иначе:
вывести b
К.Ю. Поляков, Е.А. Ерёмин, 2018
? Какое условие?
? Как вывести
результат?
http://kpolyakov.spb.ru

17.

Алгоритмы и программирование, язык Python, 10 класс
Алгоритмы расчёта количества, суммы или
произведения определённых элементов в цикле
К.Ю. Поляков, Е.А. Ерёмин, 2018
17
http://kpolyakov.spb.ru

18.

Алгоритмы и программирование, язык Python, 10 класс
Алгоритмы расчёта количества, суммы или
произведения определённых элементов в цикле
К.Ю. Поляков, Е.А. Ерёмин, 2018
18
http://kpolyakov.spb.ru

19. Задачи-2

Алгоритмы и программирование, язык Python, 10 класс
19
Задачи-2
«А»: Ввести с клавиатуры два натуральных числа и сравнить
количество шагов цикла для вычисления их НОД с
помощью обычного и модифицированного алгоритмов
Евклида.
Пример:
Введите два числа:
1998 2
НОД(1998,2)=2
Обычный алгоритм: 998
Модифицированный: 1
Сохранить программу:
D:\Ученики\Класс\Фамилия\Программирование\Циклы
под именем: while-A
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

20. Задачи-2

Алгоритмы и программирование, язык Python, 10 класс
20
Задачи-2
«В»: Ввести натуральное число и определить, верно ли,
что в его записи есть две одинаковые цифры (не
обязательно стоящие рядом).
Пример:
Введите натуральное число:
12342
Да.
Пример:
Введите натуральное число:
12345
Нет.
Сохранить программу:
D:\Ученики\Класс\Фамилия\Программирование\Циклы
под именем: while-B
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

21. Задачи-2

Алгоритмы и программирование, язык Python, 10 класс
21
Задачи-2
«С»: Напечатать значения функции
English     Русский Правила