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

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

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

Тип: Учебник

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

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

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

ISBN: 978-985-34-0487-6

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

Глава 1. Основы алгоритмизации и программирования. Параграф 1. Основные алгоритмические конс•грукции. Упражнения - номер 4, страница 13.

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

4 Рассмотрите программы, которые находят целую и дробную части частного от деления х на у. Проверьте, одинаковые ли результаты будут выдавать программы. Проверьте случаи, когда х, у оба положительные, оба отрицательные, имеют разные знаки. Объясните результаты.

1.

from math import * x = float(input("введи x = ")) y = float(input("введи y = ")) z1 = ceil(x / y) z2 = x / y - z1 print("целая часть", z1) print("дробная часть", z2)

2.

from math import * x = float(input("введи x = ")) y = float(input("введи y = ")) z1 = floor(x / y) z2 = x / y - z1 print("целая часть", z1) print("дробная часть", z2)

3.

import math x = float(input("введи x = ")) y = float(input("введи y = ")) z1 = trunc(x / y) z2 = x / y - z1 print("целая часть", z1) print("дробная часть", z2)

4.

import math x = float(input("введи x = ")) y = float(input("введи y = ")) z2, z1 = modf(x / y) print("целая часть", z1) print("дробная часть", z2)

* Измените одну из программ так, чтобы результат её работы соответствовал математическому определению целой и дробной частей (дробная часть не может быть отрицательной).

Решение. №4 (с. 13)

Решение задачи:

Для того чтобы понять, как работают эти программы, вспомним, как ведут себя различные функции округления модуля math в языке Python:

  • ceil(a) — округляет число вверх (к ближайшему большему целому);
  • floor(a) — округляет число вниз (к ближайшему меньшему целому);
  • trunc(a) — отбрасывает дробную часть (округляет в сторону нуля);
  • modf(a) — возвращает кортеж из дробной и целой частей числа, причем обе части сохраняют знак самого числа.

(Примечание: в программах 3 и 4 при запуске через import math функции должны вызываться как math.trunc() и math.modf(), либо модуль должен быть импортирован через from math import *).

Проверим работу программ на конкретных тестовых примерах для всех знаков:

1.Оба числа положительные: пусть $x = 7$, $y = 2$, тогда частное равно $\frac{x}{y} = 3.5$.

  • Программа 1: $z_1 = \text{ceil}(3.5) = 4$, $z_2 = 3.5 - 4 = -0.5$;
  • Программа 2: $z_1 = \text{floor}(3.5) = 3$, $z_2 = 3.5 - 3 = 0.5$;
  • Программа 3: $z_1 = \text{trunc}(3.5) = 3$, $z_2 = 3.5 - 3 = 0.5$;
  • Программа 4: целая часть $z_1 = 3.0$, дробная часть $z_2 = 0.5$.

2.Оба числа отрицательные: пусть $x = -7$, $y = -2$, тогда частное равно $\frac{x}{y} = 3.5$. Результаты будут в точности такими же, как в пункте 1, поскольку частное положительно.

3.Числа имеют разные знаки: пусть $x = -7$, $y = 2$, тогда частное равно $\frac{x}{y} = -3.5$.

  • Программа 1: $z_1 = \text{ceil}(-3.5) = -3$, $z_2 = -3.5 - (-3) = -0.5$;
  • Программа 2: $z_1 = \text{floor}(-3.5) = -4$, $z_2 = -3.5 - (-4) = 0.5$;
  • Программа 3: $z_1 = \text{trunc}(-3.5) = -3$, $z_2 = -3.5 - (-3) = -0.5$;
  • Программа 4: целая часть $z_1 = -3.0$, дробная часть $z_2 = -0.5$.

Сведем результаты в сравнительную таблицу:

Программа Функция Результат при $\frac{x}{y} = 3.5$ Результат при $\frac{x}{y} = -3.5$
№ 1 ceil целая: $4$, дробная: $-0.5$ целая: $-3$, дробная: $-0.5$
№ 2 floor целая: $3$, дробная: $0.5$ целая: $-4$, дробная: $0.5$
№ 3 trunc целая: $3$, дробная: $0.5$ целая: $-3$, дробная: $-0.5$
№ 4 modf целая: $3.0$, дробная: $0.5$ целая: $-3.0$, дробная: $-0.5$

Вывод: программы выдают разные результаты из-за различий в алгоритмах функций: ceil округляет к большему числу, floor — к меньшему, а trunc и modf просто отбрасывают знаки после запятой, двигаясь к нулю.

Ответ на задание со звёздочкой (*):

В математике целая часть числа $[a]$ — это наибольшее целое число, не превосходящее $a$ (то есть $[a] \le a$), а дробная часть $\{a\} = a - [a]$ всегда удовлетворяет неравенству $0 \le \{a\} < 1$.

По этому определению программа № 2 (с использованием функции floor) уже выдает математически точный результат для любых знаков числа, так как дробная часть у неё всегда неотрицательна. Если же требуется исправить, например, программу № 3 (или № 4), то достаточно добавить проверку знака дробной части:

import math x = float(input("введи x = ")) y = float(input("введи y = ")) z1 = math.trunc(x / y) z2 = x / y - z1 if z2 < 0: z1 = z1 - 1 z2 = z2 + 1 print("целая часть", z1) print("дробная часть", z2)

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

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

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

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

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