☰ Содержание · Информатика

Цикл while и практика с ним

Уроки 44–45 · 2 урока · М. Р. Файзиева, Д. М. Сайфуров, Н. С. Хайтуллаева. Информатика и информационные технологии, 9 класс. «Nashriyot uyi Tasvir», Ташкент, 2020
45

Практическое занятие: оператор while

Учебник: с. 88–89
ЦельНа практическом занятии работает с цифрами числа с помощью while (сумма, подсчёт) и пишет программы, которые повторяются в зависимости от ответа пользователя.
Новые слова
сумма цифр: прибавить x % 10, затем убрать последнюю цифру с помощью x //= 10 · raqamlar yig‘indisiигра-угадайка: цикл повторяется, пока догадка не совпадёт · sinov-xato o‘yiniпеременная цикла: значение, изменяемое в теле, чтобы условие могло остановить цикл · sikl o‘zgaruvchisiтрассировочная таблица: таблица значений переменных после каждого прохода · kuzatuv jadvali
Объяснение

Лучшее применение цикла while – работа с цифрами числа. Сумма цифр: s = 0; цикл выполняется, пока x > 0; каждый раз последняя цифра прибавляется к s (x % 10) и убирается из x (x //= 10). По тому же шаблону считают число цифр, только вместо s += x % 10 ставят k += 1. Второй вид задач – спрашивать, пока ответ не будет правильным: первый ответ запрашивается до цикла, условие записывается как «ответ неверен», а в теле ответ запрашивается снова и обновляется. В этой игре загаданное число задаётся внутри программы; случайное число мы изучим позже (модуль random). Выполняйте каждую программу вручную в трассировочной таблице: тогда ясно, когда цикл остановится.

Примеры
Сумма цифр: x = int(input()) ⏎ s = 0 ⏎ while x > 0: ⏎     s += x % 10 ⏎     x //= 10 ⏎ print(s) Для 2749 выводится 9 + 4 + 7 + 2 = 22.
Угадывание: guess = int(input()) ⏎ while guess != 7: ⏎     print("Yana urining") ⏎     guess = int(input()) ⏎ print("Topdingiz") 3 и 9 неверны, поэтому «Yana urining» выводится дважды; когда набирают 7, цикл заканчивается и выводится «Topdingiz».
Работа в классе

«Игра с цифрами»: пары выбирают собственные числа, выполняют программу суммы цифр в трассировочной таблице и сравнивают итоговый ответ с IDLE; затем изменяют программу для «произведения цифр».

Упражнения
1
Чему равна сумма цифр числа 5081?
2
Напишите программу, которая с помощью while находит сумму чисел от 1 до n (55 при n = 10).
3
Сколько цифр 0 в числе 40105? Напишите программу, которая их подсчитывает.
4
Почему цикл по цифрам никогда не останавливается без x //= 10?