C++

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

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

Что объединяет эти вопросы?

  1. Высота человека в метрах;
  2. Точный возраст человека в годах;
  3. Количество свободной оперативной памяти;
  4. Результат деления 1 на 3.

Объединяет их то, что ответом будет вещественное число.

Вещественное число – это математический объект, необходимый для измерений точных значений окружающего мира. Иными словами, если мы будем высчитывать высоту человека в метрах, то мы получим, например, 1,72 метра. Вряд ли мы сможем найти большое количество людей, рост которых будет оканчиваться целым числом.

Вещественные числа внутри компьютера записываются через точку.

Как хранятся внутри компьютера?

Хранение в компьютере вещественных чисел

Число 46.31 будет храниться внутри памяти компьютера вот в таком виде 0.4631e2, где е2 – это степень 10, в которую необходимо возвести число.

Мы плавно подходим к изучению еще одного типа данных.

Вещественный тип данных

Вещественный тип данных

Нюанс: У вещественных чисел существует погрешность.

Например, 1 / 3 = 0.333333333(3). Дело в том, что компьютер не может записать число в периоде. Он запишет его с какой-то точностью. На самом деле с той, которую зададим ему мы. И в зависимости от того с какой точностью мы их записываем, в определенный момент результаты у нас могут поехать.

Пример

  1. Возьмем 10000 чисел (от 1 до 10000);
  2. Разделим каждое на 10000;
  3. Умножим каждое на 10000;
  4. Сравним с исходными.

Пример на уроке

Результат примера на уроке

С точки зрения математики эти два числа должны были бы быть одинаковые, но на деле оказывается, что точность теряется уже на десятитысячных.

В этом и есть подвох при работе с вещественными числами. Нам всегда необходимо помнить, что мы можем в тот или иной момент потерять точность вычислений.

Вывод вещественных чисел на экран

Для того чтобы нам выводить определенное количество знаков после запятой, нам потребуется подключить дополнительную библиотеку iomainp. А в момент вывода данных на экран дописать к cout функцию fixed << setprecision(число знаков после запятой). Вывод вещественных чисел на экран

Библиотека cmath

Основные функции библиотеки:

  1. ceil(4.5) = 5 – округление в большую сторону;
  2. floor(4.5) = 4 – округление в меньшую сторону;
  3. round(4.5) = 4 – округление по правилам;
  4. pow(2, 3) = 8 – возведение в степень;
  5. sqrt(2) = 1.41421 – извлечение квадратного корня;
  6. sin(2) = 0.909297 – подсчет синуса;
  7. cos(1) = 0.540302 – подсчет косинуса;
  8. 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

Решение задачи Площадь круга

Tags

Related Articles

Leave a Reply

Back to top button
Close