Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Философия программирования на C++ Выпуск 5. Арифметика.


Всем привет, это очередной выпуск для начинающих программистов на C++!

Сегодня мы поговорим о математических операциях.

Мы научились выводить на экран текст, числа, снова текст - но это только самое начало. Язык C++ предоставляет огромные возможности (особенно с выходом нового стандарта - да-да, в прошлом году в августе язык C++ переродился и стал еще более мощным и гибким, чем раньше). Изучать их все - дело непростое, но мы не боимся трудностей. Будем идти мелкими шагами к своей заветной цели - познать все тонкости этого языка.

Кстати, кому-то может показаться, что изучение этого языка никому не нужно. Но сейчас он используется практически во всех областях, особенно где важна скорость работы программ. Да и самый главный аргумент - перейти с языка C++ на любой другой гораздо проще, чем наоборот.

А теперь перейдем к теме выпуска. Язык C++ был написан так, чтобы его было удобно использовать. Поэтому все арифметические операции здесь вполне очевидны для всех, кто знаком с математикой. Поэтому я просто приведу программу и дам пару комментариев. Вы и так все поймете интуитивно.


#include <iostream>
using namespace std;

int main() {
    cout << "1 + 2 = " << 1 + 2 << endl;  // Сложение
    cout << "1 - 2 = " << 1 - 2 << endl;  // Вычитание
    cout << "1 * 2 = " << 1 * 2 << endl;  // Умножение
    cout << "1 / 2 = " << 1 / 2 << endl;  // Целочисленное деление
    cout << "1.0 / 2.0 = " << 1.0 / 2.0 << endl;  // Вещественное деление
    cout << "1 + 2 * 3 = " << 1 + 2 * 3 << endl;  // Приоритет умножения
    cout << "1 + 5 / 2 * 3 - 4 = " << 1 + 5 / 2 * 3 - 4 << endl;
    cout << "1 + 2.5 * (10.0 - 5.0 / 2) = " << 1 + 2.5 * (10.0 - 5.0 / 2) << endl;  // Скобки
}

Думаю вы все понимаете, что здесь происходит. Все по обычным правилам математики. По самим операциям думаю все понятно (умножение и деление имеют больший приоритет, а скобочки - еще больший). Рассмотрим только отдельно операцию деление. Но сначала пару слов о вещественных числах (числа с десятичной точкой).

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

Почему может быть? Потому что на самом деле вещественные числа можно записать аж несколькими разными способами (в нескольких форматах). Вот примеры:

#include <iostream>
using namespace std;
int main() {
    cout << "Real numbers:" << endl;
    cout << 1.0 << endl;  // Обычное вещественное число
    cout << 1. << endl;  // То же самое, вещественную часть писать необязательно
    cout << 1 << endl;  // Целое число (не вещественное!)
    cout << 0.1 << endl;  // Целая часть равна нулю
    cout << .1 << endl;  // То же самое - целая часть равна нулю
    cout << 1e-1 << endl;  // Еще одна форма записи - это 0.1
    cout << 1e10 << endl;  // А это 10 в 10-й степени
    cout << 3.76e-5 << endl;  // Вот что это за число: 0.0000376
}

Буква "e" означает в буквальном смысле "умножить на 10 в степени" - и дальше число обозначающее степень (только целое).

Вернемся к делению. Для компилятора есть разница между целыми и вещественными числами. Когда мы делим целое число на целое число, мы получаем в результат целое число - это целая часть от деления (деление без учета остатка). Поэтому если мы напишем что-то вроде "5/2*2", то в результате получим 4, а не 5 (сначала 5 поделится на 2 нацело, а потом результат умножится на 2).

Итак, надеюсь в этом выпуске все было не сильно сложно. Мы узнали, что C++ знает язык математики, что заметно облегчает его понимание. На этом все, всем удачи, новый выпуск будет в ближайшие дни! 


В избранное