Сегодня мы разберём очень важную тему. Помню, когда-то в школе, учитель нам всегда говорил: "Вы можете не знать биологию, плохо понимать в химии, но математику Вы знать обязаны". Мы долго не понимали этого и задавали всегда вопрос: "Зачем? Весь в наше время есть калькуляторы, компьютеры, а на базаре 100+420 мы и так сложим!". Как же мы заблуждались...
Начав изучать язык программирования "питон" я понял, что даже в наш компьютерный век без математики никуда. Ведь речь идёт не столько о возможности сложить "2+4". Когда Вы начинаете писать более сложные программы, Вы сталкиваете с математикой практически на каждом шагу. Ведь любой алгоритм расчёта чего-либо невозможно написать без математических формул. Вот здесь то и понимаешь, насколько в нашем мире всё пронизано математикой. Для примера, я приведу кусочек кода, который рассчитывает передачу значения, необходимого для вычисления заражения персонажа (использовал при создании модификации для игры Dayz). Несмотря на то, что там используется другой язык программирования Enscript (дальний аналог C#, C++), Вы поймёте что даже здесь, математика нам очень нужна.
Это самый простой из имеющихся примеров использования математики в программировании. Чем сложнее программа, тем сложнее математические вычисления будут использоваться. Если конечно, Вы не пишите какого-нибудь телеграмм бота, который выводит сообщение о текущей погоде.
На этой ноте я и перейду к первой части нашего урока - Арифметическим операциям.
Давайте попробуем что-нибудь вычислим и запишем в нашем учебном файле следующую арифметическую операцию, например "2+3".
Интерпретатор выполнил вычисление и получил его результат. Но, нам ведь требуется не просто заставить компьютер вычислить, сколько будет "2+3". Нам необходимо, что бы компьютер выдал нам результат. Для этого мы передаём эту арифметическую операцию в известную нам функцию: print(). Тем самым, мы говорим: Компьютер, вычисли и выведи на экран.
Вот, теперь мы знаем результат. Да, при написании программ нам не всегда и не всё нужно выводить на экран. Большая часть операций будет выполняться в "фоне" и рассчитываться интерпретатором. Мы же в конце должны будем получать конечный результат наших вычислений.
Кроме сложения имеются и другие арифметические операции:
- - (вычитание)
- * (умножение)
- ** (возведение в степень)
- / (деление)
- // (целочисленное деление)
- % (остаток от деления)
Повторюсь, что мы видит результат выполнения арифметических операций лишь по той причине, что мы дали команду вывести их на экран. Если бы мы не использовали функцию print() интерпретатор всё равно бы произвёл вычисления в том же порядке и получил бы результат, просто без вывода в консоль.
Так мы плавно подошли к следующей части нашего урока.
Раз мы учимся языку программирования, то давайте потихоньку начинать разговаривать языком программирования. Так, математические знаки (+,-,*,/ и т.д.) называются операторами, а используемые в арифметических операциях числа операндами.
Есть следующие виды арифметических операций: бинарные, унарные, и тернарные.
Бинарные операции это операции между двумя операндами, например (2+3).
Унарные операции это операции с одним операндом, например (-3). Здесь стоит пояснить на примере:
Мы присвоили переменной "j" отрицательное значение, но следом используя унарную операцию изменяем значение на положительное.
Оператор "-" перед числом говорит интерпретатору: найди противоположное. Это самый простой способ унарной операции.
Тернарные операции это операции с тремя операндами.
Вот здесь отдельно стоит отметить, что в любом языке программирования, как и в математике имеется приоритет операций.
Приоритет операций определяет, в какой последовательности должны выполняться операции. Приоритет можно расположить в следующем порядке:
- возведение в степень
- умножение и деление
- сложение и вычитание
Именно в таком порядке будут производиться все вычисления. Вот пример:
Если оформить всё это в привычном нам математическом виде, то по сути, это будет выглядеть так:
Сначала 2 возводится в 3 степень, получаем 8, потом умножаем на 2, и прибавляем 2. Итого 18!
Порой арифметические операции могут быть бесконечно длинными. и в них легко запутаться. Поэтому, в таких случаях, проще выделять операции скобками. Однако, будьте внимательны, скобки, как и в реальной математике, могут изменять привычный нам приоритет. Вот в данном примере я изменил местоположение скобок, и как следствие, получил другой результат:
В завершение урока я хотел бы рассказать ещё об одном понятии, которое Вам известно ещё с начальных классов, но Вы наверное и не задумывались, как оно называется. И это - коммутативная операция.
Проще всего это понятие объяснить известным нам правилом: "От перемены мест слагаемых сумма не меняется". Один из простых примеров бинарной операции, которая считается коммутативной, это: 2 +3. Потому что, 3 + 2 даст нам такой же результат.
Ну что, вспомнили своего учителя, который говорил: "Дети, учите математику!"? Дальше этой математики будет больше и будет она сложнее...
В сегодняшнем уроке я рассказал базовые основы арифметических операций. Дальше мы будем работать с более сложными вычислениями, но, не важно, насколько они будут сложными, все они подчиняются базовым принципам и правилам.
Если Вам нравятся мои уроки, то "лайк" и подписка на мой канал, будут самой большой наградой!