(Python) Арифметические выражения


Арифметические выражения

Вспомним оператор присваивания. Общий вид можно записать таким образом:
имя_переменной = выражение 
Выражение, стоящее в правой части оператора присваивания, позволяет вычислять значения переменных по различным формулам.
 
Выражение может содержать:
• целые и вещественные числа (в вещественных числах целая и дробная часть разделяются точкой, а не запятой, как это принято в математике)
• знаки арифметических действий:  
+ сложение,
- вычитание,
* умножение,
/ деление,
// целочисленное деление,
% вычисление остатка от деления,
**возведение в степень;

• вызовы стандартных функций (приведем только часть из большого набора. Все математические функции описаны в библиотеке math, которую необходимо подключить с использованием строки import math )
 abs(n) модуль целого числа n
 math.fabs(x) модуль вещественного числа x 
 math.sqrt(x) квадратный корень из вещественного числа x
 math.pow(x,y) вычисляет x в степени y;

• круглые скобки для изменения порядка действий.
 
Сокращенная запись выражений
При изменении значений переменных, удобно использовать сокращенную запись 
Полная запись Сокращенная запись
a = a + b a +=  b
a = a - b a -=  b
a = a * b a *=  b
a = a / b a /=  b

При записи десятичных дробей, разделителем целой и дробной части является точка. Знаки умножения не опускаются как в математической записи. Например, математическое записывается как 4*а.

Встроенные функции

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

Например, наиболее часто используемые стандартные математические функции и их запись на языке Python:

 abs(i) модуль целого числа i,
 math.fabs(x) модуль вещественного числа x,
 math.sqrt(x) квадратный корень из вещественного числа x,
 math.pow(x,y) вычисляет x в степени y.
 
Надо запомнить!
Аргумент функции всегда записывается в скобках.

Для работы этих функций необходимо подключить дополнительную математическую библиотеку (модуль).
Сделать это можно добавив в начале программы строчку 
import math
Подробное описание функций, которые содержит данный модуль можно найти на официальном сайте с документацией Python.

Правила записи арифметических выражений на языке программирования

Допустим нам необходимо вычислить выражение, записанное в математическом виде таким  образом:
\( {2\ *\ 17, 56 ^ 2 \over 7\ *\ 2,47\ *\ 0,43}\)
 

Прежде чем написать программу, которая подсчитает нам результат, сформулируем ПРАВИЛА записи алгебраических выражений на языке программирования:
 
Надо запомнить!
  1. Выражения содержат числа, имена других переменных, знаки операций, круглые скобки, имена функций.
  2. Арифметические операции и их знаки (+, -, *, /, //, %).
  3. Разделителем целой и дробной части является точка.
  4. Выражение записывается в одну строку (линейная запись выражений), символы последовательно выстраиваются друг за другом, проставляются ВСЕ знаки операций, используются круглые скобки.

Таким образом, следуя правилам записи арифметических выражений, мы должны перевести данную (математическую запись) дроби в линейную запись, то есть записать дробь в одну строчку.
Так как и числитель, и знаменатель у нас сложные (то есть содержат два и более множителя), то при записи в линейную форму необходимо выражения в числителе и знаменателе взять в скобки.
Таким образом линейная запись такого выражения будет выглядеть следующим образом:
(2*17.56*17.56)/(7*2.47*0.43)
Напишем программу для вычисления данного выражения. Для этого определимся с входными и выходными данными

Входные данные
Так как нам все значения известны, то с клавиатуры ничего вводить не надо, следовательно входных данных не будет.

Выходные данные
Программа должна вывести результат данного арифметического выражения (можно его занести в какую-либо переменную, либо же сразу вывести значение на экран).

Результат выражения мы будем сразу выводить на экран без сохранения в какой-либо переменной.  
Так как у нас имеется дробь, то результатом будет являться вещественное число 
print((2 * 17.56 * 17.56) / (7 * 2.47 * 0.43))
Запустите программу на компьютере и убедитесь, что она выдает результат, равный  82.94984330235246

После этого выполните задание.
 
 

Целочисленная арифметика

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

1) Распределение элементов по определенному количеству групп.
Например, если у нас есть 10 кусочков шоколадки, и мы делим их на 3 друзей, то результат целочисленного деления будет 3. Это означает, что каждый друг получит по 3 целых кусочка шоколадки. А если вычислим 10 % 3 = 1, это будет означать, что 1 долька останется не разделенной.

2) Разбиение числа на цифры
Например, число 123 можно разбить на цифры следующим образом:
123 % 10 = 3 ( 3 - цифра единиц)
123 // 10 = 12
12 % 10 = 2 (2 - цифра десятков)
12 // 10 = 1 (1 - цифра сотен)

3) Модулярная арифметика
Это система арифметики, в которой числа "оборачиваются" по достижении определенного значения, называемого модулем. Она часто используется в различных областях, таких как криптография, компьютерные науки, теория чисел и даже в музыке.

Например, возьмем циферблат часов. 

На часах со стрелками циферблат разделён на 12 частей, которые мы обозначим числами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. В следующей таблице можно видеть, как время на аналоговом циферблате соответствует времени после полудня на экране цифровых часов.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Когда мы говорим, например, что сейчас 14:00, мы можем также сказать, что сейчас два часа дня (14 % 12 = 2). Тот же принцип применяется и в случае измерения углов. Угол в 370 градусов равен углу в 10 градусов, потому что от первого значения мы должны вычесть полный оборот в 360 градусов (или 370 % 360 = 10).

Другой пример, разбить 135 минут на часы и минуты. В одном часе 60 минут. Следовательно, если 135 поделить целочисленно на 60, то можно узнать сколько полных часов в 135 минутах (135 // 60 = 2 часа). Если вычислить остаток от деления, то можно узнать оставшиеся минуты в неполном часе (135 % 60 = 15 минут). То есть 135 минут - это 2 часа и 15 минут.

Целочисленное деление

Кроме обычной операции деления ("/"), результат которой в Python всегда является вещественным (имеет тип float), есть еще две операции деления, которые применяются над целыми числами и результат которых - целое число (тип int). 

Это операции:
  1. Целочисленное деление (//): Оператор целочисленного деления округляет результат до целого числа не большего результата (к ближайшему меньшему целому).
    Например,
    7 // 3 = 2, т.к. 7/3 = 2.333 - ближайшее целое число, не большее 2.3 - это число 2;
    -7 // 3 = -3, т.к. -7/3 = -2.333 - ближайшее целое число, не большее -2.3 - это число -3;

  2. Остаток от деления (%): Оператор остатка от деления возвращает остаток от деления одного числа на другое.
    Например,
    7 % 3 = 1 (7=3×2+1)
    -7 % 3 = 2 (−7=3×(−3)+2)

Операция вычисления остатка от деления в Python соответствует математическому определению остатка. Знак остатка всегда соответствует знаку делителя. 

Математически, остаток от деления двух целых чисел a и b определяется как число r, такое что a = b × q + r, где q - это целое число, а r - остаток, удовлетворяющий условию 0 ≤ r < |b|.

Эти операции могут быть полезны для различных задач, например, при проверке чисел на четность, распределении элементов по определенному количеству групп, или при работе со временем (вычисление времени в часах и минутах) и т. д..
 
Надо запомнить!
Операции целочисленного деления:
  1. // - деление нацело
  2. % - остаток от деления