Занятие 3: Библиотечные функции из заголовочного файла cmath

Заголовочный файл cmath содержит ряд популярных математических функций. Вот их неполный список:

Имя функции Описание
abs Возвращает абсолютную величину (модуль) целого числа
acos арккосинус
asin арксинус
atan арктангенс
ceil округление до ближайшего большего целого числа
cos косинус
cosh гиперболический косинус
exp вычисление экспоненты
fabs абсолютная величина (для чисел с плавающей точкой)
floor округление до ближайшего меньшего целого числа
fmod вычисление остатка от деления нацело для чисел с плавающей точкой
log натуральный логарифм
log10 логарифм по основанию 10
pow(x,y) результат возведения x в степень y, xy
sin синус
sinh гиперболический синус
sqrt квадратный корень
tan тангенс
tanh гиперболический тангенс

Для использования всех перечисленных функций необходимо подключить заголовочный файл cmath в начале программы:

#include <cmath>

Большинство перечисленных функций имеют единственный аргумент (если в таблице явно не указано иное). Все тригонометрические функции работают с углами в радианах.

По мере обновления стандарта C++ заголовчные файлы стандартной библиотеки пополняются новые функциями. Например, в стандарте C++99 добавились функции cbrt (для вычисления кубического корня), функция trunc (для округления числа до целого в сторону нуля) и некоторые другие.

Пример программы, вычисляющей квадратный корень числа, введённого пользователем с клавиатуры:

#include <iostream>
#include <cmath>
using namespace std;
int main(void) {
	double n;
	cout << "Vvedite chislo: ";
	cin >> n;
	if(n>=0) {
		cout << "Kvadratniy koren chisla " << n << " raven " << sqrt(n) << endl;
	} else {
		cout << "Nelzya vychislyat kvadratniy koren iz otritsatelnogo" << endl;
	}		
}

Также в C++ доступны две константы: число «пи» и число «е» (основание экспоненциальной функции или число Неппера). Их можно получить с помощью констант M_PI и M_E.

Пример программы, вычисляющий синус числа, введённого пользователем с клавиатуры:

#include <iostream>
#include <cmath>
using namespace std;
int main(void) {
	double n;
	cout << "Vvedite ugol v gradusah: ";
	cin >> n;
	double rad = (M_PI * n) / 180;
	cout << "Sinus ugla raven " << sin(rad) << endl;
}

Задачи

  1. Создать программу, вычисляющую расстояние между двумя точками на плоскости, координаты которых указывает пользователь.
    Пример оформления программы:
    Укажите абсциссу первой точки: 0
    Укажите ординату первой точки: 0
    Укажите абсциссу второй точки: 1
    Укажите ординату второй точки: 2.3
    Расстояние между точками: 2,50798724079689
  2. Создать программу, которая будет вычислять, сколько указанный пользователем в секундах временной интервал, содержит полных часов и минут.
    Пример оформления программы:
    Укажите временной интервал в секундах: 7269
    В этом интервале содержится: 2 ч 1 мин
  3. Создать программу, выводящую на экран три числа, введённых пользователем, в виде неубывающей последовательности.
    Пример оформления программы:
    Введите первое число: 3.5
    Введите второе число: -2
    Введите третье число: 0
    Неубывающая последовательность: -2 0 3.5
  4. Создать программу, которая вычислит и выведет периметр и площадь прямоугольного треугольника по длинам двух катетов, указанных пользователем.
    Пример оформления программы:
    Введите длину первого катета: 3
    Введите длину второго катета: 4
    Площадь прямоугольного треугольника: 6
    Периметр прямоугольного треугольника: 12

    Другой пример:

    Введите длину первого катета: -2
    Введите длину второго катета: 0
    Катет должен быть положительным числом.
  5. Создать программу, вычисляющую площадь произвольного треугольника по длинам трёх сторон, указанных пользователем с клавиатуры. Перед вычислением проверить, может ли существовать треугольник с указанными сторонами. Теория: http://ru.wikipedia.org/wiki/Треугольник
    Пример оформления программы:
    Введите длину первой стороны: 2
    Введите длину второй стороны: 3
    Введите длину третьей стороны: 5
    Треугольник с указанными сторонами существовать не может

    Другой пример:

    Введите длину первой стороны: 5
    Введите длину второй стороны: 4
    Введите длину третьей стороны: 2
    Площадь треугольника: 3.7997
  6. Создать программу, которая будет находить вещественные корни квадратного уравнения ax²+bx+c=0, по введённым пользователем с клавиатуры коэффициентам a, b и c. Теория: http://ru.wikipedia.org/wiki/Квадратное_уравнение
    Пример оформления программы:
    Введите коэффициент при квадрате x: 2
    Введите коэффициент при x: 3
    Введите свободный член: 1
    Ваше уравнение имеет два корня: -0.5 и -1

    Другой пример:

    Введите коэффициент при квадрате x: 1
    Введите коэффициент при x: -3
    Введите свободный член: 4
    Ваше уравнение не имеет корней
  7. Пользователь указывает коэффициенты для общего уравнения прямой Ax+By+C=0. Создать программу, которая рассчитает под каким углом в градусах прямая пересечёт координатную ось абсцисс. Для решения задачи потребуется функция atan(x). Она для указанного вещественного значения тангенса x возвращает соответствующий ему угол в радианах. Теория: http://ru.wikipedia.org/wiki/Прямая