Calcular el Coseno Inverso (arccos) en C

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a calcular la función coseno inverso (arccos) en C. El laboratorio cubre dos pasos principales: leer un valor de entrada válido entre -1 y 1, y luego usar la función acos() de la biblioteca matemática de C para calcular el arccos de la entrada. Las instrucciones paso a paso proporcionan una guía completa sobre la validación de la entrada y el cálculo del arccos, asegurándote de tener una comprensión sólida de esta operación trigonométrica en la programación C.

Leer un valor entre -1 y 1

En este paso, aprenderás a leer un valor de entrada válido para calcular la función coseno inverso (arccos) en C. La función arccos requiere valores de entrada entre -1 y 1.

Primero, crea un nuevo archivo C para demostrar la validación de la entrada:

cd ~/project
nano arccos_input.c

Ahora, agrega el siguiente código al archivo:

#include <stdio.h>
#include <math.h>

int main() {
    double input;

    printf("Ingrese un valor entre -1 y 1 para el cálculo de arccos: ");
    scanf("%lf", &input);

    // Validación de la entrada
    if (input < -1 || input > 1) {
        printf("Error: La entrada debe estar entre -1 y 1\n");
        return 1;
    }

    printf("Entrada válida: %f\n", input);
    return 0;
}

Compila y ejecuta el programa:

gcc arccos_input.c -o arccos_input -lm

Ejemplos de salida:

Entrada válida:

Ingrese un valor entre -1 y 1 para el cálculo de arccos: 0.5
Entrada válida: 0.500000

Entrada inválida:

Ingrese un valor entre -1 y 1 para el cálculo de arccos: 2
Error: La entrada debe estar entre -1 y 1

Este código demuestra:

  • El uso de scanf() para leer un número de punto flotante de doble precisión.
  • La validación de la entrada para asegurar que esté dentro del rango válido para arccos.
  • La presentación de mensajes de error amigables para entradas inválidas.

Usar la función acos()

En este paso, aprenderás a usar la función acos() de la biblioteca matemática de C para calcular el coseno inverso (arccos) de un valor de entrada dado.

Continúa trabajando en el mismo directorio del proyecto y modifica el programa anterior:

cd ~/project
nano arccos_calculation.c

Agrega el siguiente código para implementar el cálculo de arccos:

#include <stdio.h>
#include <math.h>

int main() {
    double input;

    printf("Ingrese un valor entre -1 y 1 para el cálculo de arccos: ");
    scanf("%lf", &input);

    // Validación de la entrada
    if (input < -1 || input > 1) {
        printf("Error: La entrada debe estar entre -1 y 1\n");
        return 1;
    }

    // Calcular arccos
    double angle_radians = acos(input);

    printf("Valor de entrada: %f\n", input);
    printf("Arccos (en radianes): %f\n", angle_radians);

    return 0;
}

Compila el programa:

gcc arccos_calculation.c -o arccos_calculation -lm

Ejemplos de salida:

Ingrese un valor entre -1 y 1 para el cálculo de arccos: 0.5
Valor de entrada: 0.500000
Arccos (en radianes): 1.047198
Ingrese un valor entre -1 y 1 para el cálculo de arccos: -0.5
Valor de entrada: -0.500000
Arccos (en radianes): 2.094395

Puntos clave sobre acos():

  • Parte de la biblioteca <math.h>.
  • Recibe un valor entre -1 y 1.
  • Devuelve el ángulo en radianes.
  • Requiere la bandera -lm durante la compilación para enlazar la biblioteca matemática.

Imprimir el ángulo en radianes

En este paso, aprenderás cómo convertir e imprimir el ángulo arccos en diferentes formatos, incluyendo radianes, grados y una representación más legible.

Continúa trabajando en el mismo directorio del proyecto:

cd ~/project
nano arccos_angle_print.c

Agrega el siguiente código para demostrar la impresión del ángulo:

#include <stdio.h>
#include <math.h>

#define PI 3.14159265358979323846

int main() {
    double input;

    printf("Ingrese un valor entre -1 y 1 para el cálculo de arccos: ");
    scanf("%lf", &input);

    // Validación de la entrada
    if (input < -1 || input > 1) {
        printf("Error: La entrada debe estar entre -1 y 1\n");
        return 1;
    }

    // Calcular arccos
    double angle_radians = acos(input);

    // Convertir radianes a grados
    double angle_degrees = angle_radians * (180.0 / PI);

    // Imprimir el ángulo en diferentes formatos
    printf("Valor de entrada: %f\n", input);
    printf("Ángulo en radianes: %f\n", angle_radians);
    printf("Ángulo en grados: %f\n", angle_degrees);

    // Imprimir una representación descriptiva
    printf("Descripción del ángulo: %.2f radianes (%.2f grados)\n",
           angle_radians, angle_degrees);

    return 0;
}

Compila el programa:

gcc arccos_angle_print.c -o arccos_angle_print -lm

Ejemplos de salida:

Ingrese un valor entre -1 y 1 para el cálculo de arccos: 0.5
Valor de entrada: 0.500000
Ángulo en radianes: 1.047198
Ángulo en grados: 60.000000
Descripción del ángulo: 1.05 radianes (60.00 grados)
Ingrese un valor entre -1 y 1 para el cálculo de arccos: -0.5
Valor de entrada: -0.500000
Ángulo en radianes: 2.094395
Ángulo en grados: 120.000000
Descripción del ángulo: 2.09 radianes (120.00 grados)

Puntos clave:

  • Se utilizó la constante PI para la conversión de grados.
  • Se convirtieron radianes a grados usando angle_radians * (180.0 / PI).
  • Se demostraron diferentes opciones de formato para la representación del ángulo.
  • Se utilizó %.2f para la precisión de dos decimales.

Resumen

En este laboratorio, aprendiste a leer un valor de entrada válido entre -1 y 1 para calcular la función coseno inverso (arccos) en C. También aprendiste a usar la función acos() de la biblioteca matemática de C para realizar el cálculo de arccos e imprimir el ángulo en radianes.

Los puntos clave de este laboratorio son la validación de la entrada para asegurar que la entrada esté dentro del rango válido, y el uso de la función acos() para calcular el arccos del valor dado.