Curso de C++ desde cero

Matemáticas con C++

Capítulo 19: Funciones matemáticas

La parte básica del curso está llegando a su fin. Vendrán muchos temas nuevos en la parte de dificultad media del curso. Por el momento, ya casi has aprendido las bases para empezar con C++.

En este capítulo vas a ver algunas de las muchas funciones matemáticas que hay en C++. Estas nos van a facilitar ciertas tareas. No voy a profundizar en todo lo que tiene por el momento, ya que hay bastante cosa, pero si te voy a enseñar algunas funciones básicas.

Calcular potencias en C++

En C++ disponemos de la función pow() con la cual podemos calcular potencias de forma muy fácil.

cout << pow(2,10);

El cálculo equivale a 2 elevado a 10.

1024

Sin utilizar esta función, podríamos hacer de una forma menos óptima:

cout << 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2;
1024

Estos resultados y los siguientes, los voy escribiendo directamente en un cout para mostrarlos en la consola. Sin embargo, puedes almacenarlos también en variables.

Obtener la raíz cuadrada de un número con C++

Para obtener la raíz cuadrada de un número, lo podemos hacer utilizando la función sqrt().

cout << sqrt(81);
9

Obtener el número mayor de dos valores en C++

Con la función max() podemos encontrar el número mayor comparando dos números. Esto es útil para muchas cosas que irás utilizando a medida que aprendas más. Por el momento, te dejo un pequeño ejemplo de como puedes utilizar max().

// Declaración de variables
int numero1;
int numero2;

// Entrada de datos
cout << "Introduce un número." << endl;
cin >> numero1;

cout << "Introduce otro número." << endl;
cin >> numero2;

if (numero1 > numero2 || numero1 < numero2) {
	cout << "El numero mayor es: " << max(numero1, numero2);
} else {
	cout << "Los dos números son iguales.";
}

En la primera prueba, le doy a numero1 un valor mayor:

Introduce un número.
5700
Introduce otro número.
5200
El numero mayor es: 5700

En la segunda prueba, le doy a numero2 un valor mayor:

Introduce un número.
700
Introduce otro número.
1000
El numero mayor es: 1000

En la tercera prueba, le doy el mismo valor a las dos variables:

Introduce un número.
100
Introduce otro número.
100
Los dos números son iguales.

Ya sé que esto no es algo increíble, pero por el momento con lo poco que llevamos de curso, ya puedes hacer un programa que distinga los números mayores o que sepa incluso si son iguales.

En el if se evalúa si numero1 es mayor que numero2 o || si numero 1 es menor que numero2. Esta condición, en resumen dice "todos los números excepto si son iguales". Finalmente, el else contempla la condición false, que es lo mismo que decir "si los números son iguales".

Si los números no son iguales, se imprime el mensaje con la función max() que siempre devuelve el valor del número mayor. Con esta lógica, nuestro programa es un poco más listo.

Obtener el número menor de dos valores en C++

Para obtener el número menor, haremos lo mismo pero utilizando la función min().

// Declaración de variables
int numero1;
int numero2;

// Entrada de datos
cout << "Introduce un número." << endl;
cin >> numero1;

cout << "Introduce otro número." << endl;
cin >> numero2;

if (numero1 > numero2 || numero1 < numero2) {
	cout << "El numero menor es: " << min(numero1, numero2);
} else {
	cout << "Los dos números son iguales.";
}

Redondear números decimales en C++ al entero más cercano

Podemos redondear números decimales al entero más cercano gracias a la función round(). Te he preparado un mini programa que te pide un número float (admite decimales) y te devuelve el redondeo hecho al entero más cercano.

// Declaración de variables
float numero;

// Entrada de datos
cout << "Introduce un número y te lo redondeo." << endl;
cin >> numero;

float redondeo = round(numero);

cout << "El redondeo de " << numero << " es: " << redondeo;

Si el decimal es igual o pasa del 0.5 se redondea al siguiente entero, en este caso a 11.

Introduce un número y te lo redondeo.
10.67
El redondeo de 10.67 es: 11

En cambio, si el decimal es menor a 0.5, se redondea al mismo número, en este caso 10.

El redondeo de 10.4 es: 10

Redondear números al alza en C++

Hay ocasiones en que ciertos cálculos requerirán siempre un entero y que este se redondee al alza para no perder nunca decimales. En estos casos tenemos la función ceil().

// Declaración de variables
float numero;

// Entrada de datos
cout << "Introduce un número y te lo redondeo al alza." << endl;
cin >> numero;

float redondeo = ceil(numero);

cout << "El redondeo de " << numero << " es: " << redondeo;

Pese a que para hacer el redondeo, está más cerca el 10 que el 11, se redondea siempre ganando. Con round() perderíamos ese valor de 0.13.

Introduce un número y te lo redondeo al alza.
10.13
El redondeo de 10.13 es: 11

Redondear números a la baja en C++

También disponemos de una función específica para redondear números a la baja en C++. Se trata de floor().

// Declaración de variables
float numero;

// Entrada de datos
cout << "Introduce un número y te lo redondeo a la baja." << endl;
cin >> numero;

float redondeo = floor(numero);

cout << "El redondeo de " << numero << " es: " << redondeo;
Introduce un número y te lo redondeo a la baja.
10.89
El redondeo de 10.89 es: 10

Comentarios

Si te quedan dudas sobre el temario, sobre C++, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.