Математика является основополагающей (фундаментальной) единицей любого программирования. Разработка ярких и привлекательных интерфейсов, создание онлайн-карт, написание игр любого жанра, разработка операционных систем, создание сайтов и так далее. В общем, программирование и математика связаны друг с другом как правое и левое полушарие мозга.
Над любыми данными можно совершать определённые операции. Над числами и цифрами можно производить различные математические действия и преобразования: сложить, отнять, поделить, перемножить. Вот вроде всего четыре основные и всем известные операции, но сколько можно из них организовать комбинаций… бесчисленное множество! Операции nok и nod, нахождение факториала, вычисление и многие другие вариации.
Язык C++ является очень мощным (если не мощнейшим) языком программирования и имеет ряд своих индивидуальных особенностей, в том числе и при работе с числами.
Рассмотрим несколько примеров: сложение и вычитание целых и дробных чисел, а также деление и умножение с двумя типами.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <iostream> int main() { setlocale(LC_ALL, "Russian"); int a = 10 + 20; //в целочисленную переменную a положили результат сложения двух целых чисел int aa = 10.0 + 20.1; //в целочисленную переменную положили результат сложения двух дробных чисел int b = 30 - 15; //в целочисленную переменную a положили результат вычитания двух целых чисел int bb = 30.2 - 15.3; //в целочисленную переменную a положили результат вычитания двух дробных чисел std::cout << "10 + 20 = " << a << "\n" << "10.0 + 20.1 = " << aa << "\n" << "30 - 15 = " << b << "\n" << "30.2 - 15.3 = " << bb << "\n\n\n"; float c = 10 + 20; //в переменную типа float мы положили результат сложения двух целых чисел float cc = 10.0 + 20.1; //в переменную типа float мы положили результат сложения двух дробных чисел float d = 30 - 15; //в переменную типа float мы положили результат вычитания двух целых чисел float dd = 30.2 - 15.3; //в переменную типа float мы положили результат вычитания двух дробных чисел std::cout << "10 + 20 = " << c << "\n" << "10.0 + 20.1 = " << cc << "\n" << "30 - 15 = " << d << "\n" << "30.2 - 15.3 = " << dd << "\n\n\n"; int e = 10 * 2; //в целочисленную переменную e записываем результат умножение двух целых чисел int ee = 10.1 * 2.4; //в целочисленную переменную ee записываем результат умножение двух дробных чисел int f = 10 / 3; //в целочисленную переменную f записываем результат деления двух целых чисел int ff = 10.0 / 3.0; //в целочисленную переменную ff записываем результат деления двух дробных чисел std::cout << "10 * 20 = " << e << "\n" << "10.1 * 2.4 = " << ee << "\n" << "10 / 3 = " << f << "\n" << "10.3 / 3.3 = " << ff << "\n\n\n"; float g = 10 * 2; //в переменную типа float записываем результат умножения двух целых чисел float gg = 10.1 * 2.4; //в переменную типа float записываем результат умножения двух дробных чисел float h = 10 / 3; //в переменную типа float записываем результат деления двух целых чисел float hh = 10.0 / 3.0; //в переменную типа float записываем результат деления двух дробных чисел std::cout << "10.0 * 20.0 = " << g << "\n" << "10.1 * 2.4 = " << gg << "\n" << "10.0 / 3.0 = " << h << "\n" << "10.3 / 3.3 = " << hh << "\n\n\n"; system("pause"); return 0; } |
Результат вычислений будет следующий:
Как можно заметить, если мы записываем результат в целочисленную переменную (типы int, long int…), то дробная часть отбрасывается, если таковая была при вычислении. С одной стороны выглядит очень тупо, но это только поначалу, в дальнейшем это Вам очень понравится и эту особенность будете искать везде.
Приоритет операций
В программировании, как и в математике, есть такое понятие «приоритет операций».
Что такое «приоритет операций» и зачем нам смертным она понадобилась?
Данное понятие к нам пришло из математики. Математика — это наука, которая любит порядок и организованность. Какие-то действия должны выполняться чуть раньше, какие-то чуть позже.
Круглые скобки имеют наивысший приоритет — первыми выполняются действия в скобках, потом выполняются действия умножения и деления, а уже после действия сложения и вычитания.
Систематизируем это добро:
1 2 3 4 5 |
Цифра слева обозначает приоритет 1) () //круглые скобки, действия в выражении в первую очередь выполняются в них 2) * и / //операции умножения и деления 3) + и - //операции сложения и вычитания |
В качестве примера применения математических операций и окончательного понимания приоритетности операций — заставим компьютер посчитать результат уравнения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> int main() { setlocale(LC_ALL, "Russian"); //подключение русского языка //создаём переменные для уравнения int a = 10; int b = 35; float c = 27.7; float d = 36.6; float e = 10.2; float result = (a - b)*c + (d / e); //считаем результат уравнения и кладём его в переменную типа float //сначала действия в скобках, затем умножение, а после сложение правого и левого вычислений std::cout << "Результат: " << result << std::endl; system("pause"); return 0; } |
Краткая форма записи математических операций
В языке программирования C++ можно вести краткую запись математических выражений, такая форма значительно увеличивает скорость написания кода.
Например, нам нужно наращивать определённый счётчик, то есть к старому значению прибавлять новое и этот результат записывать в переменную, где лежало старое значение.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> int main() { setlocale(LC_ALL, "Russian"); //подключаем русский язык int count0 = 0; //первый счётчик int count1 = 0; //второй счётчик std::cout << "Старый count0 = " << count0 << "\n"; //выводим первоначальное значение первого счётчика std::cout << "Старый count1 = " << count1 << "\n"; //выводим первоначальное значение второго счётчика count0 = count0 + 1; //обычная форма записи сложения count1 += 1; //краткая форма записи сложения std::cout << "\nНовый count0 = " << count0 << "\n"; //выводим изменённое значение первого счётчика std::cout << "Новый count1 = " << count1 << "\n\n"; //выводим изменённое значение второго счётчика system("pause"); //чтобы программа завершалась только после нажатия return 0; } |
Кратко записывать можно сложение, вычитание, умножение, деление.
1 2 3 4 5 6 7 |
float a = 4.7; //переменная со значением float c; //переменная в которую записываем результат c += a; //сложение с -= a; //вычитание с *= a; //умножение с /= a; //деление |
Таким образом мы познакомились с самыми важными операциями языка C++ и программирования в целом 🙂