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

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

Введение

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

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

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

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

cd ~/project
nano arcsin_input.c

Теперь напишите следующий код для чтения и проверки ввода:

#include <stdio.h>

int main() {
    double input;

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

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

    printf("Получен корректный ввод: %f\n", input);

    return 0;
}

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

gcc arcsin_input.c -o arcsin_input
./arcsin_input

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

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

В этом коде мы:

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

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

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

Сначала измените предыдущую программу, включив функцию asin():

cd ~/project
nano arcsin_calculation.c

Напишите следующий код для вычисления и отображения результата арксинуса:

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

int main() {
    double input;

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

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

    // Вычисление арксинуса с помощью функции asin()
    double result = asin(input);

    printf("Входное значение: %f\n", input);
    printf("Результат арксинуса: %f радиан\n", result);

    return 0;
}

Скомпилируйте программу с математической библиотекой:

gcc arcsin_calculation.c -o arcsin_calculation -lm

Запустите программу и протестируйте с различными входными данными:

./arcsin_calculation

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

Введите значение в диапазоне от -1 до 1 для вычисления арксинуса: 0.5
Входное значение: 0.500000
Результат арксинуса: 0.523599 радиан

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

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

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

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

Измените предыдущую программу, включив преобразование в градусы:

cd ~/project
nano arcsin_angle_conversion.c

Напишите следующий код для отображения углов в радианах и градусах:

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

#define PI 3.14159265358979323846

int main() {
    double input;

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

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

    // Вычисление арксинуса
    double radian_result = asin(input);

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

    // Вывод результатов с форматированием
    printf("Входное значение: %f\n", input);
    printf("Результат арксинуса (радианы): %f\n", radian_result);
    printf("Результат арксинуса (градусы): %f\n", degree_result);

    return 0;
}

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

gcc arcsin_angle_conversion.c -o arcsin_angle_conversion -lm

Запустите программу и протестируйте:

./arcsin_angle_conversion

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

Введите значение в диапазоне от -1 до 1 для вычисления арксинуса: 0.5
Входное значение: 0.500000
Результат арксинуса (радианы): 0.523599
Результат арксинуса (градусы): 30.000000

Ключевые моменты по преобразованию углов:

  • Радианы являются типом результата по умолчанию для функции asin()
  • Преобразование в градусы: умножение на (180/π)
  • Использование #define PI для точного преобразования
  • Форматирование улучшает читаемость результатов

Резюме

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

Ключевые моменты: 1) Проверка диапазона входных данных для обеспечения соответствия диапазону от -1 до 1, и 2) Использование функции asin() для вычисления обратного синуса входного значения.