Thon Условные



бет21/38
Дата23.02.2020
өлшемі2,05 Mb.
#58878
1   ...   17   18   19   20   21   22   23   24   ...   38
Байланысты:
8-3 python


Циклы с условием

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

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

цикл не выполнится ни разу, если условие в самом начале ложно;

как только нарушается условие в заголовке цикла, его рабо-та заканчивается.

Рассмотрим ещё одну задачу, которая решается с помощью цикла с условием. Требуется ввести с клавиатуры натуральное число и найти сумму цифр его десятичной записи. Например, если ввели число 123, программа должна вывести сумму 1+2+3 = 6.

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



Запишите команды, с помощью которых можно:

записать в переменную d последнюю цифру числа, находящегося в переменной N;

отбросить последнюю цифру числа, находящегося в переменной N;

добавить значение переменной d к значению, находя-щемуся в переменной s.

55 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

Вспомним, что остаток от деления числа на 10 равен по-следней цифре его десятичной записи. Запишем эту цифру в переменную digit:

digit = N % 10

Сумму цифр будем хранить в целой переменной summa. В самом



начале, пока ни одну цифру ещё не обработали, значение этой переменной равно нулю:

summa = 0

Для того чтобы добавить к предыдущей сумме новую цифру, нужно заменить значение переменной summa на summa+digit, то есть выполнить присваивание

summa += digit

Для того чтобы затем отсечь последнюю цифру числа N, разде-лим N на 10 снование системы счисления):

N = N // 10

Эти три операции выделение последней цифры числа, увеличение суммы и отсечение последней цифры нужно вы-полнять несколько раз, пока все цифры не будут обработаны отсечены!) и в переменной N не останется ноль:

N = int( input("Введите число: ") ) summa = 0

while N != 0:

digit = N % 10 summa += digit N = N // 10

print( "Сумма цифр", summa )

Выполните ручную прокрутку программы при N = 123. Определите итоговое значение переменной summa.

Для введённого числа 123 программа должна выдать ответ 6 (последнее значение переменной sum). Это правильный ответ.

В отличие от предыдущего примера, здесь количество ша-гов цикла заранее неизвестно, оно определяется количеством цифр введённого числа.

56 http://kpolyakov.spb.ru



05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

Сколько раз выполнится цикл, если ввести однозначное число? двузначное? K-значное? число 0?

Какова может быть сумма цифр двузначного числа? трёхзначного? K-значного?

Докажем, что эта программа не зациклится, то есть не бу-дет работать бесконечно. Цикл завершается, когда переменная N становится равна нулю, поэтому нужно доказать, что это обя-зательно случится. По условию заданное число натуральное, на каждом шаге цикла оно делится на 10 (остаток отбрасывает-ся), поэтому значение переменной N каждый раз уменьшается. В результате после очередного уменьшения оно обязательно станет равно нулю.


Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   ...   38




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет