На Горох
Информатика, 10 класс

§ 56. Вычисления

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 56. Вычисления

Кратко о теме

Вычисления в программе — это действия над числами и переменными, записанные в виде арифметических выражений. Они нужны, чтобы обрабатывать данные и находить значения по формулам. Результат зависит не только от знаков операций, но и от типов чисел, скобок и порядка действий. В Python для обычного деления, целочисленного деления и остатка используются разные операторы: /, // и %. Вещественные вычисления иногда дают приближённый результат.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Вещественное число — число, у которого может быть дробная часть; в Python её отделяют десятичной точкой, например 3.5. Целое число, например 3, дробной части не имеет. Тип числа определяет, какие значения можно хранить и какие правила вычислений применит программа. Поэтому точка в записи числа помогает явно задать вещественный тип.

Арифметическое выражение — запись вычисления, составленная из чисел, переменных, знаков операций и скобок. Значение выражения получают, подставляя значения переменных и выполняя действия в установленной последовательности. Например, при x = 4 выражение x + 2 имеет значение 6. Такие записи позволяют формулировать вычисления компактно и точно.

Целочисленное деление — деление, при котором вместо обычного частного получают целое значение, соответствующее делению с округлением вниз в Python. Для положительных чисел это совпадает с отбрасыванием дробной части: 7 // 2 = 3. Обычное деление 7 / 2 даёт 3.5. Различие нужно учитывать, выбирая оператор для конкретной задачи.

Остаток от деления — число, которое остаётся после того, как делимое представили как целое кратное делителя и остаток. Для целых a и b, где b не равно нулю, верно: a = (a // b) * b + (a % b). Например, 23 = 4 * 5 + 3, поэтому 23 % 5 = 3. Остаток используют, чтобы проверять делимость и разделять число на разряды или группы.

Как это устроено

Тип чисел влияет на результат, потому что программа выбирает правила операций по типу операндов. Целые значения удобны там, где дробей быть не должно, например при подсчёте предметов. Вещественные значения позволяют работать с измерениями и частями величин. При этом операция / в Python даёт вещественное частное и для двух целых операндов, тогда как // сохраняет результат целочисленного деления.

Порядок действий нужен, чтобы одно и то же выражение все вычисляли одинаково. Сначала выполняются действия в скобках, затем возведение в степень, умножение и деление, а после — сложение и вычитание; действия одного уровня обычно идут слева направо. Поэтому 18 + 6 * 2 означает 18 + 12. Если требуется сначала сложить, скобки меняют выражение на (18 + 6) * 2.

Операторы /, // и % решают разные задачи, хотя все связаны с делением. Оператор / находит обычное частное, включая дробную часть, а // — частное с округлением вниз в Python. Оператор % возвращает остаток, который согласован с результатом //: для 23 и 5 это 4 и 3, поскольку 23 = 4 * 5 + 3. Разделение на три оператора помогает отдельно получить точное частное, целое частное или остаток.

С отрицательными числами целочисленное деление может удивить, если ожидать простого отбрасывания дробной части. Python округляет результат // вниз, то есть к меньшему целому: -7 // 2 равно -4, поскольку -3.5 округляется вниз. Тогда -7 % 2 равно 1, и равенство -7 = (-4) * 2 + 1 сохраняется. В других языках правила могут отличаться, поэтому их нужно проверять по документации языка.

Сложную формулу в программе записывают как выражение, внимательно сохраняя её структуру. Скобки показывают, какие части относятся к числителю и знаменателю, а переменные заменяют исходные величины. Полезно сначала проверить вычисления на простых значениях, для которых результат можно посчитать вручную. Такая проверка помогает обнаружить пропущенные скобки и ошибки в записи до решения большой задачи.

Арифметические операции в вычислениях

ОперацияЗапись в программеЧто даётПример
Сложение+Сумму операндов7 + 2 = 9
Вычитание-Разность операндов7 - 2 = 5
Умножение*Произведение операндов7 * 2 = 14
Деление/Частное, обычно вещественное7 / 2 = 3.5
Целочисленное деление//Частное с округлением вниз7 // 2 = 3
Остаток от деления%Остаток при делении7 % 2 = 1
Возведение в степень**Первый операнд в степени второго2 ** 3 = 8

Сначала определите, какой результат требуется получить: обычное частное, целую часть частного или остаток. Затем выберите соответствующий оператор и проверьте, нет ли в выражении скобок, которые задают особый порядок действий. Таблица показывает запись операторов именно в Python.

Разбор задач

Задача 1. Вычислите значение выражения 18 + 6 * 2 и объясните порядок действий. Здесь встречаются сложение и умножение, поэтому нельзя просто выполнять действия в том порядке, в каком они записаны. Сначала определим приоритет операций, а затем выполним сложение.

  1. Найдём умножение: 6 * 2 = 12, потому что умножение выполняется раньше сложения.
  2. Подставим результат в исходное выражение: 18 + 12.
  3. Сложим числа: 18 + 12 = 30; скобок, меняющих порядок, в выражении нет.

Ответ: 30. Если бы выражение было записано как (18 + 6) * 2, сначала сложились бы числа в скобках и получилось бы 48. Сравнение показывает, что скобки задают другую последовательность вычислений.

Задача 2. Для a = 23 и b = 5 найдите a // b и a % b, затем проверьте связь результатов с исходными числами. Оператор // сообщает, сколько полных групп по 5 помещается в 23, а % — сколько единиц остаётся. Проверим, что найденные значения вместе восстанавливают исходное число.

  1. Определим целую часть частного: 23 // 5 = 4, поскольку 5 * 4 = 20, а 5 * 5 уже больше 23.
  2. Найдём остаток: 23 % 5 = 23 - 20 = 3.
  3. Проверим равенство a = (a // b) * b + (a % b): 4 * 5 + 3 = 23.

Ответ: a // b = 4, a % b = 3. Остаток меньше делителя, так как в него не помещается ещё одна полная группа из пяти. Такая проверка подходит для деления положительных целых чисел.

Задача 3. Составьте программу для вычисления формулы (x + y) / (x - y) при заданных x и y и проверьте её на нескольких наборах данных. Числитель здесь — сумма, знаменатель — разность, поэтому каждую часть нужно заключить в скобки. Кроме того, знаменатель не должен быть равен нулю.

  1. Запишем программу, которая считывает два числа и вычисляет выражение: x = float(input()), y = float(input()), z = (x + y) / (x - y), print(z).
  2. Проверим набор x = 5, y = 1: числитель равен 6, знаменатель — 4, поэтому программа выдаёт 1.5.
  3. Проверим набор x = 2, y = 2: знаменатель равен нулю, значит деление невозможно. Перед вычислением следует проверить, что x != y.

Ответ: формула в программе записывается как (x + y) / (x - y), а при x = y вычислять её нельзя. Скобки сохраняют нужные числитель и знаменатель. Проверка на нескольких входных данных помогает убедиться, что программа верно обрабатывает и обычный, и недопустимый случай.

Типичные ошибки

  • Путать / и // — значит считать, что оба оператора возвращают один и тот же результат. Ошибка возникает, когда ориентируются только на знак деления и не проверяют, нужна ли дробная часть. Проверьте вычисление на 7 и 2: / даёт 3.5, а // — 3.

  • Считать, что остаток всегда меньше делителя, не учитывая отрицательные числа и правила языка. Для положительных чисел это привычное правило, но в Python знак остатка при отрицательных операндах связан с округлением // вниз. Проверьте равенство a = (a // b) * b + (a % b) и уточните правила языка.

  • Не ставить скобки в формуле — значит рисковать изменить её смысл при записи в программе. Так бывает, если полагаться на неверное представление о приоритете операций. Сопоставьте код с формулой по частям и проверьте его на простых значениях, для которых ответ известен.

  • Ожидать, что любое десятичное число хранится точно, — ошибка при работе с вещественным типом. Двоичная запись не всегда может точно представить десятичную дробь, поэтому возникает небольшое отличие результата от ожидаемого. Проверьте значение с учётом допустимой погрешности и не сравнивайте вещественные числа на точное равенство без необходимости.

Связь с другими темами

Для работы с вычислениями нужны знания арифметических действий, порядка операций, скобок и различий между целыми и дробными числами. Эти правила превращаются в выражения и формулы, которые программа использует для обработки данных и решения прикладных задач. Понимание типов и точности вычислений пригодится при изучении математических функций и численных методов. Оно также помогает оценивать, насколько надёжен полученный программой результат.

Что запомнить

  • Выражение вычисляется с учётом приоритета операций и скобок.
  • Операция / выполняет обычное деление.
  • Операция // выполняет целочисленное деление с округлением вниз в Python.
  • Операция % находит остаток от деления.
  • В Python степень записывают оператором **.
  • Вещественные вычисления могут давать приближённый результат.

Частые вопросы по теме

Чем отличаются операции / и //?

Оператор / выполняет обычное деление и в Python возвращает вещественный результат: например, 7 / 2 = 3.5. Оператор // выполняет деление с округлением вниз до целого значения: 7 // 2 = 3.

Как найти остаток от деления в программе?

Используйте оператор %. Например, 23 % 5 = 3, потому что 23 = 4 · 5 + 3. Для отрицательных чисел в Python остаток согласуется с делением с округлением вниз.

Почему результат вычисления выражения зависит от скобок?

Скобки задают, какие действия выполняются раньше, и могут изменить порядок вычислений. Например, 18 + 6 * 2 = 30, а (18 + 6) * 2 = 48.

Почему деление двух целых чисел может дать вещественный результат?

В Python оператор / предназначен для обычного деления, поэтому он возвращает вещественный результат даже тогда, когда оба операнда целые. Например, 8 / 2 даёт 4.0, а не целое число 4.

Почему при вычислениях с десятичными числами иногда появляется небольшая погрешность?

Компьютер хранит вещественные числа в двоичном виде, а некоторые десятичные дроби нельзя точно представить конечной двоичной записью. Поэтому значение может храниться приближённо, и при вычислениях проявляется малая погрешность.

Спросить по теме параграфа

§ 56. Вычисления

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.