Вычисление обратного косинуса (arccos) в C

CBeginner
Практиковаться сейчас

Введение

В этом лабораторном практикуме вы научитесь вычислять обратную косинусную функцию (arccos) в языке C. Практикум охватывает два основных этапа: чтение допустимого входного значения в диапазоне от -1 до 1 и использование функции acos() из математической библиотеки C для вычисления arccos входного значения. Пошаговые инструкции предоставляют исчерпывающее руководство по валидации входных данных и вычислению arccos, обеспечивая прочное понимание этой тригонометрической операции в программировании на языке C.

Чтение значения от -1 до 1

На этом шаге вы узнаете, как читать корректное входное значение для вычисления обратной косинусной (arccos) функции в C. Функция arccos требует входных значений в диапазоне от -1 до 1.

Сначала создайте новый файл C для демонстрации проверки ввода:

cd ~/project
nano arccos_input.c

Теперь добавьте следующий код в файл:

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

int main() {
    double input;

    printf("Введите значение от -1 до 1 для вычисления arccos: ");
    scanf("%lf", &input);

    // Проверка ввода
    if (input < -1 || input > 1) {
        printf("Ошибка: Входное значение должно быть в диапазоне от -1 до 1\n");
        return 1;
    }

    printf("Корректный ввод: %f\n", input);
    return 0;
}

Компилируйте и запустите программу:

gcc arccos_input.c -o arccos_input -lm

Примеры вывода:

Корректный ввод:

Введите значение от -1 до 1 для вычисления arccos: 0.5
Корректный ввод: 0.500000

Некорректный ввод:

Введите значение от -1 до 1 для вычисления arccos: 2
Ошибка: Входное значение должно быть в диапазоне от -1 до 1

Этот код демонстрирует:

  • Использование scanf() для чтения числа с плавающей запятой двойной точности
  • Проверку ввода, чтобы убедиться, что он находится в допустимом диапазоне для arccos
  • Предоставление понятных сообщений об ошибках для некорректных вводов

Использование функции acos()

На этом шаге вы узнаете, как использовать функцию acos() из математической библиотеки C для вычисления обратного косинуса (arccos) заданного входного значения.

Продолжайте работу в той же директории проекта и измените предыдущую программу:

cd ~/project
nano arccos_calculation.c

Добавьте следующий код для реализации вычисления arccos:

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

int main() {
    double input;

    printf("Введите значение от -1 до 1 для вычисления arccos: ");
    scanf("%lf", &input);

    // Проверка ввода
    if (input < -1 || input > 1) {
        printf("Ошибка: Входное значение должно быть в диапазоне от -1 до 1\n");
        return 1;
    }

    // Вычисление arccos
    double angle_radians = acos(input);

    printf("Введённое значение: %f\n", input);
    printf("Arccos (в радианах): %f\n", angle_radians);

    return 0;
}

Компилируйте программу:

gcc arccos_calculation.c -o arccos_calculation -lm

Примеры вывода:

Введите значение от -1 до 1 для вычисления arccos: 0.5
Введённое значение: 0.500000
Arccos (в радианах): 1.047198
Введите значение от -1 до 1 для вычисления arccos: -0.5
Введённое значение: -0.500000
Arccos (в радианах): 2.094395

Ключевые моменты о функции acos():

  • Часть библиотеки <math.h>
  • Принимает значение от -1 до 1
  • Возвращает угол в радианах
  • Требует флага -lm при компиляции для линковки математической библиотеки

Вывод Угла в Радианах

В этом шаге вы научитесь преобразовывать и выводить угол arccos в различных форматах, включая радианы, градусы и более удобочитаемое представление.

Продолжайте работу в той же директории проекта:

cd ~/project
nano arccos_angle_print.c

Добавьте следующий код для демонстрации вывода угла:

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

#define PI 3.14159265358979323846

int main() {
    double input;

    printf("Введите значение от -1 до 1 для вычисления arccos: ");
    scanf("%lf", &input);

    // Проверка ввода
    if (input < -1 || input > 1) {
        printf("Ошибка: Входное значение должно быть в диапазоне от -1 до 1\n");
        return 1;
    }

    // Вычисление arccos
    double angle_radians = acos(input);

    // Преобразование радиан в градусы
    double angle_degrees = angle_radians * (180.0 / PI);

    // Вывод угла в различных форматах
    printf("Введённое значение: %f\n", input);
    printf("Угол в радианах: %f\n", angle_radians);
    printf("Угол в градусах: %f\n", angle_degrees);

    // Вывод описательного представления
    printf("Описание угла: %.2f радиан (%.2f градусов)\n",
           angle_radians, angle_degrees);

    return 0;
}

Компилируйте программу:

gcc arccos_angle_print.c -o arccos_angle_print -lm

Примеры вывода:

Введите значение от -1 до 1 для вычисления arccos: 0.5
Введённое значение: 0.500000
Угол в радианах: 1.047198
Угол в градусах: 60.000000
Описание угла: 1.05 радиан (60.00 градусов)
Введите значение от -1 до 1 для вычисления arccos: -0.5
Введённое значение: -0.500000
Угол в радианах: 2.094395
Угол в градусах: 120.000000
Описание угла: 2.09 радиан (120.00 градусов)

Ключевые моменты:

  • Используется константа PI для преобразования в градусы
  • Преобразование радиан в градусы с помощью angle_radians * (180.0 / PI)
  • Демонстрация различных вариантов форматирования представления угла
  • Используется %.2f для точности до двух десятичных знаков

Резюме

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

Ключевыми моментами этого практикума являются проверка входных данных для обеспечения того, что они находятся в допустимом диапазоне, и использование функции acos() для вычисления arccos заданного значения.