C++ Números

Normalmente, cuando necesitamos usar números, utilizamos los tipos de datos primitivos, como int, short, long, float y double, etc. Los posibles valores y rangos numéricos de estos tipos de datos para números ya los hemos discutido en el capítulo de Tipos de datos de C++.

C++ Definir números

Ya hemos definido números en varios ejemplos de capítulos anteriores. A continuación se muestra un ejemplo completo de cómo definir varios tipos de números en C++:

Ejemplo

#include <iostream> using namespace std; int main () { // Definición de números short s; int i; long l; float f; double d; // Asignación de números s = 10; i = 1000; l = 1000000; f = 230.47; d = 30949.374; // Salida de números 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; }

Cuando el código anterior se compila y se ejecuta, produce el siguiente resultado:

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

C++ Operaciones matemáticas

En C++, además de poder crear varias funciones, también se incluyen varias funciones útiles para que usted las use. Estas funciones están escritas en las bibliotecas estándar de C y C++, y se denominanintegradasfunciones. Puede hacer referencia a estas funciones en su programa.

C++ incorpora una gran variedad de funciones matemáticas integradas que pueden operar sobre varios números. La siguiente tabla enumera algunas funciones matemáticas integradas útiles en C++.

Para utilizar estas funciones, necesita incluir el archivo de cabecera matemático<cmath>。

N.ºFunción y descripción
1double cos(double);
Esta función devuelve el coseno de un ángulo en radianes (tipo double).
2double sin(double);
Esta función devuelve el seno de un ángulo en radianes (tipo double).
3double tan(double);
Esta función devuelve la tangente de un ángulo en radianes (tipo double).
4double log(double);
Esta función devuelve el logaritmo natural del parámetro.
5double pow(double, double);
Suponiendo que el primer parámetro es x y el segundo es y, esta función devuelve x elevado a la potencia y.
6double hypot(double, double);
Esta función devuelve la raíz cuadrada de la suma de los cuadrados de dos parámetros; es decir, si los parámetros son los dos catetos de un triángulo rectángulo, la función devuelve la longitud de la hipotenusa.
7double sqrt(double);
Esta función devuelve la raíz cuadrada del parámetro.
8int abs(int);
Esta función devuelve el valor absoluto de un entero.
9double fabs(double);
Esta función devuelve el valor absoluto de cualquier número de punto flotante.
10double floor(double);
Esta función devuelve el mayor entero menor o igual que el argumento pasado.

A continuación se muestra un ejemplo sencillo sobre operaciones matemáticas:

Ejemplo

#include <iostream> #include <cmath> using namespace std; int main () { // Definición de números short s = 10; int i = -1000; long l = 100000; float f = 230.47; double d = 200.374; // Operaciones matemáticas 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; }

Cuando el código anterior se compila y se ejecuta, produce el siguiente resultado:

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

C++ Números aleatorios

En muchos casos, es necesario generar números aleatorios. Con respecto al generador de números aleatorios, hay dos funciones relacionadas. Una esrand(), esta función solo devuelve un número pseudoaleatorio. Antes de generar números aleatorios, primero debe llamar asrand()función.

A continuación se muestra un ejemplo sencillo de generación de números aleatorios. En el ejemplo se utilizatime()la función para obtener los segundos de la hora del sistema, y mediante la llamada a la función rand() se generan números aleatorios:

Ejemplo

#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main () { int i,j; // Establecer la semilla srand( (unsigned)time( NULL ) ); /*Generar 10 números aleatorios*/ for( i = 0; i < 10; i++ ) { // Generar los números aleatorios reales j= rand(); cout <<"Números aleatorios:" << j << endl; } return 0; }

Cuando el código anterior se compila y se ejecuta, produce el siguiente resultado:

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

C++ Constantes matemáticas

En C++, las constantes matemáticas (como π, e, la proporción áurea, etc.) son una parte indispensable de muchos algoritmos y aplicaciones. Aunque las primeras versiones de C++ no proporcionaban directamente estas constantes, a partir de C++20, la biblioteca estándar introdujo varias constantes matemáticas de uso común y proporcionó una forma más eficiente y unificada de acceder a ellas.

Para más información, consulte:Biblioteca estándar de C++<numbers>。

π

  • Constante:std::numbers::pi
  • Tipo:std::float32_t(flotante de 32 bits),std::float64_t(flotante de 64 bits)

Ejemplo

#include <cmath>
#include <iostream>

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

La base del logaritmo natural e (Número de Euler)

  • Constante:std::numbers::e
  • Tipo:std::float32_t、std::float64_t
std::cout << "e: " << std::numbers::e << std::endl;

La proporción áurea φ (Golden Ratio)

  • Constante:std::numbers::phi
  • Tipo:std::float32_t、std::float64_t
std::cout << "phi: " << std::numbers::phi << std::endl;

Ejemplo

#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;
}

El resultado de salida es:

pi: 3.14159
e: 2.71828
phi: 1.61803
Otras extensiones