3.4. Правила выполнения арифметических действий — Информатика 6 класс, Кадыркулов: разбор и ответы
Ookul.kz · разбор уроков

Разберём любой номер вместе!

3.4. Правила выполнения арифметических действий

Информатика, 6 класс. Учебник: Кадыркулов Р. А., Нурмуханбетова Г. К. (Алматыкітап баспасы, 2023). Раздел 3: Программирование на языке Python. Страницы 86–89.

Чему научишься

  • Знать порядок выполнения действий в Python.
  • Записывать математические выражения и дроби в одну строку.
  • Пользоваться сокращённой записью +=, -=, *= и другими.
  • Применять функции abs(), int() и round().
  • Переводить формулы из математики на язык Python.

Разминка

  • Какие правила записи действий были в Scratch? Там выражения собирались блоками, порядок задавался вложением блоков. В Python всё пишется текстом, и порядок задают правила и скобки.
  • Какие правила порядка действий ты знаешь из математики? Сначала скобки, потом умножение и деление, потом сложение и вычитание.
  • Какое равенство верное: 4 + 5 · 7 = 63 или 4 + 5 · 7 = 39? Верное второе: сначала 5 · 7 = 35, потом 4 + 35 = 39. В программировании так же.

Разбираемся

В каком порядке Питон считает

Порядок в Python в основном такой же, как в математике.

  1. Сначала действия в скобках. Если скобок несколько и они вложены, начинаем с самой внутренней.
  2. Потом возведение в степень **.
  3. Потом умножение, деление, целое деление и остаток (*, /, //, %).
  4. Потом сложение и вычитание (+, -).
  5. Потом сравнения (<, >, == и другие).
  6. В самом конце присваивание (=, += и другие).

📕 В таблице учебника у каждого знака свой номер приоритета: сначала *, потом /, потом //, потом %, а + раньше -. На самом деле в Python у *, /, // и % один и тот же приоритет, и они считаются слева направо. То же верно для + и -. Например, 8 / 2 * 3 равно 12.0 (сначала 8 / 2 = 4, потом 4 * 3), а не 1.33, как получилось бы, если бы * шло раньше /.

Выражение — в одну строку

В математике дробь пишут «этажом»: числитель над чертой, знаменатель под ней. В Python такого нет. Дробь записывают в одну строку, а числитель и знаменатель берут в скобки.

В математике В Python
$x = \dfrac{b + 10c - 2(a+b)}{ac - 2a}$ x = (b + 10*c - 2*(a + b)) / (a*c - 2*a)

⚠️ Частая ошибка. Знак умножения нельзя пропускать. Математики пишут 2a, а в Python надо 2*a. И не забывай скобки вокруг знаменателя: x / a * c — это совсем не то же, что x / (a * c).

Короче: +=, -=, *=

Увеличить переменную на число — самое частое действие в программах. Для этого есть короткая запись. Её называют инкремент (увеличение) и декремент (уменьшение).

Полная запись Короткая запись
a = a + b a += b
a = a - b a -= b
a = a * b a *= b
a = a / b a /= b
a = a % b a %= b
a = a // b a //= b
a = a ** b a **= b

Примеры: k = k + 1 можно написать как k += 1, sum = sum + 5 как sum += 5, а len = len - 2 как len -= 2.

💡 Это как копилка: «добавить 500 тенге» — money += 500. Не надо писать money = money + 500.

Стандартные функции: abs(), int(), round()

x = -9; y = 9
print(abs(x), abs(y))            # 9 9, модуль числа (без знака минус)
x = 3.169; y = 3.98
print(int(x), int(y))            # 3 3, дробная часть отброшена
x = 5.16; y = 5.89
print(round(x), round(y))        # 5 6, округление до ближайшего целого
  • abs() даёт модуль числа: расстояние до нуля, всегда неотрицательное.
  • int() просто отбрасывает дробную часть: int(3.98) равно 3.
  • round() округляет до ближайшего целого: round(5.89) равно 6.

🌟 В Python есть и другие математические функции, но для них нужно подключать специальный модуль. С этим ты познакомишься в старших классах.

👨‍👩‍👧 Родителю. Дайте ребёнку формулу из бытовой жизни, например стоимость поездки в такси: посадка 300 тенге плюс 90 тенге за километр. Пусть запишет её в Python: price = 300 + 90 * km. Так формулы перестают быть абстрактными.

Проверь себя

  • Сформулируй правила записи арифметических действий на языке программирования. Выражение пишется в одну строку, знак умножения обязателен, дробь записывают через / с скобками, порядок задают скобками и приоритетами.
  • Какие приоритеты у действий? Скобки, потом **, потом умножение и деление (*, /, //, %), потом + и -, потом сравнения, в конце присваивание.
  • Почему важно соблюдать правила? Иначе компьютер посчитает по-другому и даст неверный ответ, а то и вовсе выдаст ошибку.
  • Чем int() отличается от round()? int() отбрасывает дробную часть, round() округляет до ближайшего целого.

Решаем упражнения

№ 1

(Примени на практике, «Практическое задание № 1».) Составь программу, которая вычисляет y = (a + 2b − 3c) / (5a + b) при a = 4, b = 3.5, c = 2.

Как думать. Числитель и знаменатель берём в скобки, умножения пишем со знаком *.

Решение.

a = 4; b = 3.5; c = 2
print((a + 2*b - 3*c) / (5*a + b))

Ответ: 0.2127659574468085 (примерно 0,213).

№ 2

(Примени на практике, «Практическое задание № 2».) Составь программу, которая вычисляет значение выражения $y = \dfrac{|a + 2c|}{b^2 + 3ac} \cdot a,(3 + (4 - a^2))$. Пример: a = 4, b = 5, c = 1 даёт −5.8378378.

Как думать. Модуль — это abs(). Квадрат можно записать как b*b. Дробь в одну строку, внутри скобок.

Решение.

a = float(input())
b = float(input())
c = float(input())
print(abs(a + 2*c) / (b*b + 3*a*c) * a * (3 + (4 - a*a)))

Для 4, 5, 1: |4 + 2| = 6, знаменатель 25 + 12 = 37, дробь 6/37. Дальше · 4 · (3 + (4 − 16)) = 4 · (−9) = −36. Итог −36 · 6/37 ≈ −5.8378.

Ответ: примерно −5.8378378 (Питон выведет −5.837837837837839, длиннее, но то же число).

№ 3

(Вопросы для размышления, № 1.) Сформулируй правила записи арифметических действий на языке программирования.

Как думать. Вспомни три главных правила из урока.

Пример ответа. Выражение пишется в одну строку. Умножение всегда пишется знаком *. Дроби записывают через / со скобками вокруг числителя и знаменателя. Порядок выполнения задают скобки и приоритеты операций.

Ответ: в одну строку, со знаком *, дроби через / со скобками, порядок задают скобки и приоритеты.

№ 4

(Вопросы для размышления, № 2.) Какие приоритеты имеют арифметические действия?

Как думать. Иди от самого сильного к самому слабому.

Решение. Скобки, потом степень **, потом *, /, //, %, потом + и -, потом сравнения, потом присваивание. Действия одного приоритета выполняются слева направо.

Ответ: скобки, **, умножение и деление (*, /, //, %), сложение и вычитание, сравнения, присваивание.

№ 5

(Вопросы для размышления, № 3.) Почему важно соблюдать правила применения арифметических действий?

Как думать. Что будет, если записать 4 + 5 * 7 и ждать 63?

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

Ответ: иначе результат будет неверным или программа не заработает.

№ 6

(Вопросы для размышления, № 4.) В чём разница между функциями int() и round()?

Как думать. Возьми число 5.89 и посмотри, что сделает каждая функция.

Решение. int(5.89) равно 5, потому что дробная часть отбрасывается. round(5.89) равно 6, потому что число округляется до ближайшего целого.

Ответ: int() отбрасывает дробную часть, round() округляет до ближайшего целого.

№ 7

(Задания, № 1**.) Запиши на языке Python четыре математических выражения: 1) $a^2 + b^2 + c^2 - 2ab$; 2) $xy + \dfrac{a+4}{b-4}$; 3) $\dfrac{|x^2 - 5|}{3y(5x + (4a + bt) - z)}$; 4) $x + 5 + \dfrac{y}{t(5x - c)}$.

Как думать. Везде ставим * между множителями, степень **, модуль abs(), дробь в скобках.

Решение.

  1. a**2 + b**2 + c**2 - 2*a*b
  2. x*y + (a + 4) / (b - 4)
  3. abs(x**2 - 5) / (3*y*(5*x + (4*a + b*t) - z))
  4. x + 5 + y / (t*(5*x - c))

Ответ: см. записи выше.

№ 8

(Задания, № 2*.) В таблице даны математические выражения и их записи на Python. Найди записи с ошибками и исправь.

Как думать. Сравнивай каждую запись с формулой: все ли степени, знаки, скобки и множители на месте.

Решение.

  1. $y = \frac45 + \frac12 - 2 + 5\cdot\frac{7}{10}$. Запись y = 4/5 + 1/2 - 2 + 5 * 7/10 верна. Слева направо: 5 * 7 / 10 = 3.5, то же, что 5 · 7/10.
  2. $x = a^3 + 4b - |4ab^2 - 7|$. Запись x = a * 3 + 4*b - abs(4*a*b * 2 - 7) неверна. Ошибки: a * 3 это утроенное a, а нужен куб a**3; b * 2 это удвоенное b, а нужен квадрат b**2. Правильно: x = a**3 + 4*b - abs(4*a*b**2 - 7).
  3. $k = \frac{2xyz}{3x+z} - \frac{5x^3y - z}{z - 4y}$. Запись k = (2x * y * z)/(3 * x - z) - (5 * x * y - z)/(z - 4y) неверна. Ошибки: 2x без знака умножения; в знаменателе 3 * x - z, а должно быть плюс; нет степени у x в 5x³y; в конце 4y без знака умножения. Правильно: k = (2*x*y*z) / (3*x + z) - (5*x**3*y - z) / (z - 4*y).
  4. $t = \dfrac{|3c - d - a|}{|a - d|} \cdot 5ab$. Запись t = abs(3*c - d - a) / abs(a - d) * 5ab неверна только одним: 5ab без знаков умножения. Правильно: t = abs(3*c - d - a) / abs(a - d) * 5*a*b.

Ответ: верна только запись 1, в записях 2, 3, 4 ошибки исправлены выше.

№ 9

(Задания, № 3**.) Даны размеры кирпича a, b, c. Составь программу, которая вычисляет сумму $\frac12$ и $\frac13$ объёма кирпича.

Как думать. Объём кирпича V = a · b · c. Нужно найти V/2 + V/3.

Решение.

a = float(input())      # ширина
b = float(input())      # длина
c = float(input())      # высота
V = a * b * c           # объём
print(V / 2 + V / 3)    # половина плюс треть

Проверка: a = 2, b = 3, c = 4. V = 24, 24/2 + 24/3 = 12 + 8 = 20.

Ответ: V / 2 + V / 3, где V = a·b·c (для 2, 3, 4 получится 20.0).

№ 10

(Задания, № 4***.) Даны ширина, длина и высота кирпича a, b, c. Найди отношение объёма кирпича к площади его полной поверхности.

Как думать. Объём: a · b · c. У кирпича шесть граней, они попарно равны: площадь полной поверхности S = 2(ab + bc + ac). Нужно V / S.

Решение.

a = float(input())
b = float(input())
c = float(input())
V = a * b * c                          # объём
S = 2 * (a*b + b*c + a*c)              # площадь полной поверхности
print(V / S)

Проверка: a = 2, b = 3, c = 4: V = 24, S = 2 · (6 + 12 + 8) = 52, отношение 24/52 ≈ 0.4615.

Ответ: отношение равно a*b*c / (2*(a*b + b*c + a*c)).

№ 11

(Домашнее задание.) Школа купила 12 м ткани для художественного труда. На ситец и шёлк потратили 2340 тенге. Метр шёлка стоит 420 тенге, шёлка куплено 3 м. Сколько стоит метр ситца? 1) Найди математическое решение и составь код. 2) Обозначь величины переменными и составь код универсальной программы.

Как думать. Шёлк: 3 м по 420 тенге, это 1260 тенге. Остальное потрачено на ситец. Ситца куплено 12 − 3 = 9 м.

Решение.

  1. Математически:
    1. Стоимость шёлка: 420 · 3 = 1260 тенге.
    2. Стоимость ситца: 2340 − 1260 = 1080 тенге.
    3. Длина ситца: 12 − 3 = 9 м.
    4. Цена метра ситца: 1080 / 9 = 120 тенге.
print((2340 - 420 * 3) / (12 - 3))
  1. С переменными: t — вся длина ткани, s — вся сумма, m — цена метра шёлка, n — длина шёлка.
t = int(input())     # вся ткань, м
s = int(input())     # вся сумма, тенге
m = int(input())     # цена метра шёлка
n = int(input())     # сколько метров шёлка
print((s - m * n) / (t - n))

Ответ: 120 тенге за метр ситца.

Шпаргалка

Термины: арифметическое выражение, приоритет операций, инкремент, декремент, стандартная функция, модуль, округление.

Мини-тест

← 3.3. Типы данных · 3.5–3.6. Практические задания →