Вещественные числа и библиотека cmath

Тема вещественных чисел серьезная. И если у вас действительно есть желание начать программировать, ее стоит понять. Так как без понимания вещественных чисел в программировании делать нечего.
Что объединяет эти вопросы?
- Высота человека в метрах;
- Точный возраст человека в годах;
- Количество свободной оперативной памяти;
- Результат деления 1 на 3.
Объединяет их то, что ответом будет вещественное число.
Вещественное число – это математический объект, необходимый для измерений точных значений окружающего мира. Иными словами, если мы будем высчитывать высоту человека в метрах, то мы получим, например, 1,72 метра. Вряд ли мы сможем найти большое количество людей, рост которых будет оканчиваться целым числом.
Вещественные числа внутри компьютера записываются через точку.
Как хранятся внутри компьютера?
Число 46.31 будет храниться внутри памяти компьютера вот в таком виде 0.4631e2, где е2 – это степень 10, в которую необходимо возвести число.
Мы плавно подходим к изучению еще одного типа данных.
Вещественный тип данных
Нюанс: У вещественных чисел существует погрешность.
Например, 1 / 3 = 0.333333333(3). Дело в том, что компьютер не может записать число в периоде. Он запишет его с какой-то точностью. На самом деле с той, которую зададим ему мы. И в зависимости от того с какой точностью мы их записываем, в определенный момент результаты у нас могут поехать.
Пример
- Возьмем 10000 чисел (от 1 до 10000);
- Разделим каждое на 10000;
- Умножим каждое на 10000;
- Сравним с исходными.
С точки зрения математики эти два числа должны были бы быть одинаковые, но на деле оказывается, что точность теряется уже на десятитысячных.
В этом и есть подвох при работе с вещественными числами. Нам всегда необходимо помнить, что мы можем в тот или иной момент потерять точность вычислений.
Вывод вещественных чисел на экран
Для того чтобы нам выводить определенное количество знаков после запятой, нам потребуется подключить дополнительную библиотеку iomainp. А в момент вывода данных на экран дописать к cout функцию fixed << setprecision(число знаков после запятой).
Библиотека cmath
Основные функции библиотеки:
- ceil(4.5) = 5 – округление в большую сторону;
- floor(4.5) = 4 – округление в меньшую сторону;
- round(4.5) = 4 – округление по правилам;
- pow(2, 3) = 8 – возведение в степень;
- sqrt(2) = 1.41421 – извлечение квадратного корня;
- sin(2) = 0.909297 – подсчет синуса;
- cos(1) = 0.540302 – подсчет косинуса;
- tan(2) = -2.18504 – подсчет тангенса.
Решение задач
А + В = С
Даны три действительных числа: a, b, c. Проверьте, выполняется ли равенство a+b=c.
Формат входных данных
С клавиатуры вводятся числа a, b, c — действительные, положительные, не превосходят 10 и заданы не более, чем с 7 знаками после точки.
Формат выходных данных
Если равенство выполняется, выведите «YES», если не выполняется, выведите «NO».
Примеры
входные данные
2
3
7
0.2
0.3
0.5
выходные данные
NO
YES
Площадь круга
Вычислите площадь круга по его радиусу по формуле S=3.14⋅r2. Использование более точного значения π не допускается.
Формат входных данных
Вводится одно неотрицательное вещественное число r, которое не превосходит 105, задано с точностью до двух знаков после запятой.
Формат выходных данных
Выведите результат вычисления выражения с точностью до шести знаков после запятой.
Примеры
входные данные
1.00
0.00
выходные данные
3.140000
0.000000