Составить программу нахождения функции y для различных значений аргумента x - C (СИ)
Формулировка задачи:
Составить программу нахождения функции y для различных значений аргумента x. аргументы вводить с клавиатуры. Вывести на печать значения аргумента, функции и промежуточных переменных.
Предусмотреть в программе обход алгебраических операций, которые могут при определенных значениях аргумента x и других переменных иметь неопределенный результат
Решение задачи: «Составить программу нахождения функции y для различных значений аргумента x»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
int main()
{
double K = 0.01;
double L = 3.0;
double x, y;
setlocale(LC_ALL, "");
setlocale(LC_NUMERIC, "C");
printf("x = ");
scanf("%lf", &x);
double base = 7.002*sqrt(K) - 1 + 0.1*(exp(x)+exp(-x));
if (base < 0) {
puts("Извелечние корня из отрицательного числа");
return 1;
}
double a = pow(base, 1./5);
double b = log10(L*cos((M_PI*x)/5) + cos((3*x)/5)*L);
printf("a=%lf, b=%lf\n", a, b);
if ( (a*a + b*b) > 0.1 )
y = atan(5*a*a + 7*b*b);
else
y = asin(5*a*a + 7*b*b);
printf("y = %lf\n", y);
system("pause");
return 0;
}
Объяснение кода листинга программы
- Установка начальных значений переменных:
- K = 0.01;
- L = 3.0;
- x, y;
- Установка локали для чисел:
- setlocale(LC_ALL, ``);
- setlocale(LC_NUMERIC,
C);
- Ввод значения переменной x с клавиатуры:
- printf(
x =); - scanf(
%lf, &x);
- printf(
- Вычисление значения переменной base:
- base = 7.002sqrt(K) - 1 + 0.1(exp(x)+exp(-x));
- Проверка на некорректное значение base:
- if (base < 0) {
- puts(
Извелечние корня из отрицательного числа); - return 1; }
- puts(
- if (base < 0) {
- Вычисление значения переменной a:
- a = pow(base, 1./5);
- Вычисление значения переменной b:
- b = log10(Lcos((M_PIx)/5) + cos((3x)/5)L);
- Вывод значений переменных a и b:
- printf(
a=%lf, b=%lf\n, a, b);
- printf(
- Проверка значения a и b:
- if ( (aa + bb) > 0.1 )
- y = atan(5aa + 7bb);
- else
- y = asin(5aa + 7bb);
- if ( (aa + bb) > 0.1 )
- Вывод значения переменной y:
- printf(
y = %lf\n, y);
- printf(
- Ожидание нажатия клавиши:
- system(
pause);
- system(
- Завершение программы:
- return 0;