В С++ определены в заголовочном файле <cmath> функции выполняющие некоторые часто используемые математические задачи. Например, нахождение корня, возведение в степень, sin(), cos() и многие другие. В таблице 1 показаны основные математические функций, прототипы которых содержатся в заголовочном файле <cmath>.
| Функция | Описание | Пример |
|---|---|---|
| abs( a ) | модуль или абсолютное значение от а | abs(-3.0)= 3.0 abs(5.0)= 5.0 |
| sqrt(a) | корень квадратный из а, причём а не отрицательно | sqrt(9.0)=3.0 |
| pow(a, b) | возведение а в степень b | pow(2,3)=8 |
| ceil( a ) | округление а до наименьшего целого, но не меньше чем а | ceil(2.3)=3.0 ceil(-2.3)=-2.0 |
| floor(a) | округление а до наибольшего целого, но не больше чем а | floor(12.4)=12 floor(-2.9)=-3 |
| fmod(a, b) | вычисление остатка от a/b | fmod(4.4, 7.5) = 4.4 fmod( 7.5, 4.4) = 3.1 |
| exp(a) | вычисление экспоненты еа | exp(0)=1 |
| sin(a) | a задаётся в радианах | |
| cos(a) | a задаётся в радианах | |
| log(a) | натуральный логарифм a(основанием является экспонента) | log(1.0)=0.0 |
| log10(a) | десятичный логарифм а | Log10(10)=1 |
| asin(a) | арксинус a, где -1.0 < а < 1.0 | asin(1)=1.5708 |
Необходимо запомнить то, что операнды данных функций всегда должны быть вещественными, то есть a и b числа с плавающей точкой. Это связано с тем, что существует несколько экземпляров перегруженных функций, соответствующих списку аргументов. Тему перегруженные функции рассмотрим немного позже, а пока надо запомнить, что a и b числа с плавающей точкой. Разработаем программу, которая будет использовать математические функции.
// math_func.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char* argv[])
{
cout << "log10(10) = " << log10(10.0) << endl; // логарифм десятичный
cout << "log10(1) = " << log10(1.0) << endl;
cout << "log(2.718281) = " << log(2.718281) << endl; // натуральный логарифм(по основанию экспоненты) exp = 2.718281
cout << "sqrt(9) = " << sqrt(9.0) << endl; // корень квадратный
cout << "pow(2,3) = " << pow(2.0,3.0) << endl; // два в кубе
cout << "abs(0) = " << abs(0.0) << endl; // модуль от нуля
cout << "abs(-5) = " << abs(-5.0) << endl;
cout << "ceil(3.14) = " << ceil(3.14) << endl; // округление 3.14 до наименьшего целого, но не меньше чем 3.14
cout << "ceil(-2.4) = " << ceil(-2.4) << endl; // округление -2.4 до наименьшего целого, но не меньше чем -2.4
cout << "floor(3.14) = " << floor(3.14) << endl; // округление 3.14 до наибольшего целого, но не больше чем 3.14
cout << "floor(-2.4) = " << floor(-2.4) << endl; // округление -2.4 до наибольшего целого, но не больше чем -2.4
cout << "fmod(2.4/2.0) = " << fmod(2.4,2.0) << endl; // остаток от деления 2.4/2
system("pause");
return 0;
}
// код Code::Blocks
// код Dev-C++
// math_func.cpp: определяет точку входа для консольного приложения.
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char* argv[])
{
cout << "log10(10) = " << log10(10.0) << endl; // логарифм десятичный
cout << "log10(1) = " << log10(1.0) << endl;
cout << "log(2.718281) = " << log(2.718281) << endl; // натуральный логарифм(по основанию экспоненты) exp = 2.718281
cout << "sqrt(9) = " << sqrt(9.0) << endl; // корень квадратный
cout << "pow(2,3) = " << pow(2.0,3.0) << endl; // два в кубе
cout << "abs(0) = " << abs(0.0) << endl; // модуль от нуля
cout << "abs(-5) = " << abs(-5.0) << endl;
cout << "ceil(3.14) = " << ceil(3.14) << endl; // округление 3.14 до наименьшего целого, но не меньше чем 3.14
cout << "ceil(-2.4) = " << ceil(-2.4) << endl; // округление -2.4 до наименьшего целого, но не меньше чем -2.4
cout << "floor(3.14) = " << floor(3.14) << endl; // округление 3.14 до наибольшего целого, но не больше чем 3.14
cout << "floor(-2.4) = " << floor(-2.4) << endl; // округление -2.4 до наибольшего целого, но не больше чем -2.4
cout << "fmod(2.4/2.0) = " << fmod(2.4,2.0) << endl; // остаток от деления 2.4/2
return 0;
}
Итак, чтобы воспользоваться данными функциями необходимо подключить заголовочный файл <cmath> как в строке 5, после чего можно использовать любую из функций, прототипы которых находятся в этом заголовочном файле. Результат работы программы (см. Рисунок 1).
log10(10) = 1 log10(1) = 0 log(2.718281) = 1 sqrt(9) = 3 pow(2,3) = 8 abs(0) = 0 abs(-5) = 5 ceil(3.14) = 4 ceil(-2.4) = -2 floor(3.14) = 3 floor(-2.4) = -3 fmod(2.4/2.0) = 0.4
Рисунок 1 — Математические функции в С++
Чтобы увидеть полный перечень функций в данном заголовочном файле, просто откройте его. Сделать это можно либо через поиск, либо через обозреватель решений, если программируете в MVS (см. Рисунок 2). В «Обозревателе решений» открываем вложенный каталог «Внешние зависимости«, в нём находим файл cmath. Открыв его, можно увидеть полный список математических функций.

Рисунок 2 — Математические функции в С++
Открыть заголовочный файл можно, нажав правой кнопкой мыши по его имени, как показано на рисунке 3. В появившемся окне выбираем пункт Открыть документ <cmath>.

Рисунок 3 — Математические функции в С++
Комментарии
CharlesNah
Многие из нас мечтают о покупке роскошного спального гарнитура для своей Гармония и роскошь окутают ваш дом благодаря спальне Роза. СБОРКА в день доставки. АКЦИЯ ! ДОСТАВКА, ПОДЪЕМ гр. лифт — БЕСПЛАТНО
[b]Перейти на сайт —>[/b] http://bigwork.info/