C++ Цифры

Обычно, когда нам нужно использовать числа, мы используем примитивные типы данных, такие как int, short, long, float и double и т. д. Мы уже обсуждали возможные значения и диапазоны этих типов данных для чисел в главе «Типы данных C++».

Определение чисел в C++

Мы уже определяли числа в различных примерах в предыдущих главах. Ниже приведён комплексный пример определения различных типов чисел в C++:

Пример

#include <iostream> using namespace std; int main () { // Определение числа short s; int i; long l; float f; double d; // Присваивание числа s = 10; i = 1000; l = 1000000; f = 230.47; d = 30949.374; // Вывод числа cout << "short s :" << s << endl; cout << "int i :" << i << endl; cout << "long l :" << l << endl; cout << "float f :" << f << endl; cout << "double d :" << d << endl; return 0; }

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

short  s :10
int    i :1000
long   l :1000000
float  f :230.47
double d :30949.4

Математические операции в C++

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

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

Чтобы использовать эти функции, вам нужно подключить заголовочный файл математических функций<cmath>。

Порядковый номерФункция и описание
1double cos(double);
Эта функция возвращает косинус угла в радианах (тип double).
2double sin(double);
Эта функция возвращает синус угла в радианах (тип double).
3double tan(double);
Эта функция возвращает тангенс угла в радианах (тип double).
4double log(double);
Эта функция возвращает натуральный логарифм аргумента.
5double pow(double, double);
Если предположить, что первый аргумент — x, а второй аргумент — y, эта функция возвращает x, возведённый в степень y.
6double hypot(double, double);
Эта функция возвращает квадратный корень из суммы квадратов двух аргументов; то есть, если аргументы — это два катета прямоугольного треугольника, функция возвращает длину гипотенузы.
7double sqrt(double);
Эта функция возвращает квадратный корень из аргумента.
8int abs(int);
Эта функция возвращает абсолютное значение целого числа.
9double fabs(double);
Эта функция возвращает абсолютное значение любого числа с плавающей запятой.
10double floor(double);
Эта функция возвращает наибольшее целое число, меньшее или равное переданному аргументу.

Ниже приведён простой пример математических операций:

Пример

#include <iostream> #include <cmath> using namespace std; int main () { // Определение числа short s = 10; int i = -1000; long l = 100000; float f = 230.47; double d = 200.374; // Математические операции cout << "sin(d) :" << sin(d) << endl; cout << "abs(i) :" << abs(i) << endl; cout << "floor(d) :" << floor(d) << endl; cout << "sqrt(f) :" << sqrt(f) << endl; cout << "pow( d, 2) :" << pow(d, 2) << endl; return 0; }

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

sin(d) :-0.634939
abs(i)  :1000
floor(d) :200
sqrt(f) :15.1812
pow( d, 2 ) :40149.7

Случайные числа в C++

Во многих случаях необходимо генерировать случайные числа. Для генератора случайных чисел есть две связанные функции. Одна —rand(), эта функция возвращает только псевдослучайное число. Перед генерацией случайного числа необходимо вызватьsrand()функцию.

Ниже приведён простой пример генерации случайных чисел. В примере используется функцияtime()для получения количества секунд системного времени, а случайные числа генерируются вызовом функции rand():

Пример

#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main () { int i,j; // Установить начальное значение srand( (unsigned)time( NULL ) ); /*Сгенерировать 10 случайных чисел*/ for( i = 0; i < 10; i++ ) { // Генерировать сами случайные числа j= rand(); cout <<"Случайные числа:" << j << endl; } return 0; }

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

随机数: 1748144778
随机数: 630873888
随机数: 2134540646
随机数: 219404170
随机数: 902129458
随机数: 920445370
随机数: 1319072661
随机数: 257938873
随机数: 1256201101
随机数: 580322989

Математические константы C++

В C++ математические константы (такие как π, e, золотое сечение и т. д.) являются неотъемлемой частью многих алгоритмов и приложений. Хотя более ранние версии C++ не предоставляли эти константы напрямую, начиная с C++20 стандартная библиотека ввела несколько часто используемых математических констант и предоставила более эффективный и унифицированный способ доступа к ним.

Для получения дополнительной информации см.:Стандартная библиотека C++<numbers>。

π

  • Константы:std::numbers::pi
  • Тип:std::float32_t(32-битное число с плавающей запятой),std::float64_t(64-битное число с плавающей запятой)

Пример

#include <cmath>
#include <iostream>

int main() {
    std::cout << "pi: " << std::numbers::pi << std::endl;
}

Основание натурального логарифма e (число Эйлера)

  • Константы:std::numbers::e
  • Тип:std::float32_t、std::float64_t
std::cout << "e: " << std::numbers::e << std::endl;

Золотое сечение φ (золотая пропорция)

  • Константы:std::numbers::phi
  • Тип:std::float32_t、std::float64_t
std::cout << "phi: " << std::numbers::phi << std::endl;

Пример

#include <iostream>
#include <cmath>
#include <numbers>

int main() {
    std::cout << "pi: " << std::numbers::pi << std::endl;
    std::cout << "e: " << std::numbers::e << std::endl;
    std::cout << "phi: " << std::numbers::phi << std::endl;

    return 0;
}

Результат вывода:

pi: 3.14159
e: 2.71828
phi: 1.61803
Другие расширения