номер 12, страница 60 - гдз по информатике 8 класс учебник Котов, Лапо

Информатика, 8 класс Учебник, авторы: Котов Владимир Михайлович, Лапо Анжелика Ивановна, Быкадоров Юрий Александрович, издательство Адукацыя i выхаванне, Минск, 2026

Авторы: Котов В. М., Лапо А. И., Быкадоров Ю. А.

Тип: Учебник

Издательство: Адукацыя i выхаванне

Год издания: 2026

Цвет обложки: фиолетовый, белый с ноутбуком

ISBN: 978-985-34-0487-6

Допущено Министерством образования Республики Беларусь

Глава 1. Основы алгоритмизации и программирования. Параграф 7. Использование основных алгоритмических конструкций для решения практических задач. Упражнения - номер 12, страница 60.

№12 (с. 60)
Условие. №12 (с. 60)
скриншот условия
Информатика, 8 класс Учебник, авторы: Котов Владимир Михайлович, Лапо Анжелика Ивановна, Быкадоров Юрий Александрович, издательство Адукацыя i выхаванне, Минск, 2026, страница 60, номер 12, Условие

12 Выполните задания для примера 7.13.

1. Команду print('в числе', k, ' цифр') заменили командой print('число', n, ' состоит из ', k, ' цифр'). Какой результат будет получен и почему? Какие изменения нужно внести в программу для получения правильного результата?

2. Изменится ли результат работы программы, если вместо условия цикла n > 0 использовать условие n > 1?

3. Проверьте работу программы для n = 0. Почему получился такой результат? Что нужно изменить в программе для получения правильного результата?

Решение. №12 (с. 60)

1.Результат и причина: будет напечатано, что исходное число равно $0$ (например, для числа $125$ вывод будет: «число 0 состоит из 3 цифр»). Это происходит потому, что в теле цикла while переменная $n$ на каждом шаге делится нацело на $10$ (n = n // 10) до тех пор, пока не станет равной $0$. Поэтому к моменту выполнения команды вывода в переменной $n$ всегда хранится значение $0$.

Что нужно изменить: чтобы сохранить исходное число, перед началом цикла следует записать его значение в дополнительную переменную (например, m = n), а в функции print() выводить именно эту сохранённую переменную:

n = int(input()) m = n # сохраняем исходное число k = 0 while n > 0: k += 1 n = n // 10 print('число ', m, ' состоит из ', k, ' цифр')

2.Да, результат изменится для всех чисел, у которых старшая первая цифра равна $1$ (например, для $1$, $12$, $158$).
Когда в числе остаётся последняя первая цифра, равная $1$, условие $n > 1$ становится ложным (так как $1 > 1$ — неверно). Из-за этого цикл завершится раньше времени, последняя единица не будет посчитана, и значение $k$ окажется на $1$ меньше правильного. Например, для числа $1$ программа выведет $0$ цифр вместо $1$.

3.Проверка для $n = 0$: программа выдаст результат $0$ цифр (вывод: «в числе 0 цифр»), однако это неверно, так как число $0$ состоит из одной цифры.

Причина: цикл имеет предусловие $n > 0$. При вводе нуля условие $0 > 0$ сразу ложно, поэтому тело цикла не выполнится ни разу, и счётчик $k$ останется равным $0$.

Что нужно изменить: добавить предварительную проверку условия с помощью оператора if:

n = int(input()) if n == 0: k = 1 else: k = 0 while n > 0: k += 1 n = n // 10 print('в числе ', k, ' цифр')

Помогло решение? Оставьте отзыв в комментариях ниже.

Присоединяйтесь к Телеграм-группе @gdz_by_belarus

Присоединиться

Мы подготовили для вас ответ c подробным объяснением домашего задания по информатике за 8 класс, для упражнения номер 12 расположенного на странице 60 к учебнику 2026 года издания для учащихся школ и гимназий.

Теперь на нашем сайте ГДЗ.БАЙ вы всегда легко и бесплатно найдёте условие с правильным ответом на вопрос «Как решить ДЗ» и «Как сделать» задание по информатике к упражнению №12 (с. 60), авторов: Котов (Владимир Михайлович), Лапо (Анжелика Ивановна), Быкадоров (Юрий Александрович), учебного пособия издательства Адукацыя i выхаванне.