Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Задача на C++

По дате
По рейтингу
Аватар пользователя
Просветленный
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
 #include <iostream> 
#include <cmath> 
#include <iomanip> 
 
// Первая функция f(x) 
double f1(double x) { 
    return 2 * log(x) - 1 / log(x); 
} 
 
// Вторая функция f(x) 
double f2(double x) { 
    return 1 / (cbrt(x) + sqrt(x)); 
} 
 
// Метод прямоугольников для вычисления интеграла 
double integrate(double (*func)(double), double a, double b, double epsilon) { 
    double result = 0.0; 
    int n = 1; 
    double step = (b - a) / n; 
    double newResult = 0.0; 
     
    do { 
        result = newResult; 
        newResult = 0.0; 
        step = (b - a) / n; 
        for (int i = 0; i < n; ++i) { 
            newResult += func(a + i * step + step / 2) * step; 
        } 
        n *= 2; 
    } while (fabs(newResult - result) > epsilon); 
     
    return newResult; 
} 
 
// Функция для вычисления длины кривой 
double curveLength(double (*func)(double), double a, double b, double epsilon) { 
    double length = 0.0; 
    int n = 1; 
    double step = (b - a) / n; 
    double newLength = 0.0; 
     
    do { 
        length = newLength; 
        newLength = 0.0; 
        step = (b - a) / n; 
        for (int i = 0; i < n; ++i) { 
            double x1 = a + i * step; 
            double x2 = x1 + step; 
            double y1 = func(x1); 
            double y2 = func(x2); 
            newLength += sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2)); 
        } 
        n *= 2; 
    } while (fabs(newLength - length) > epsilon); 
     
    return newLength; 
} 
 
int main() { 
    double a, b, epsilon; 
     
    std::cout << "Введите значения a, b и точность epsilon: "; 
    std::cin >> a >> b >> epsilon; 
     
    // Вычисление интеграла для первой функции 
    double integral1 = integrate(f1, a, b, epsilon); 
    std::cout << "Значение интеграла первой функции: " << std::setprecision(10) << integral1 << std::endl; 
     
    // Вычисление длины кривой для первой функции 
    double length1 = curveLength(f1, a, b, epsilon); 
    std::cout << "Длина кривой первой функции: " << std::setprecision(10) << length1 << std::endl; 
 
    // Вычисление интеграла для второй функции 
    double integral2 = integrate(f2, a, b, epsilon); 
    std::cout << "Значение интеграла второй функции: " << std::setprecision(10) << integral2 << std::endl; 
     
    // Вычисление длины кривой для второй функции 
    double length2 = curveLength(f2, a, b, epsilon); 
    std::cout << "Длина кривой второй функции: " << std::setprecision(10) << length2 << std::endl; 
     
    return 0; 
}  

Задача заключается в написании программы на языке C++, которая выполняет следующие вычисления:

Результат

Аватар пользователя
Знаток

Такая херня. Это в универе задают? Дичь, которая даже не понадобится.

Аватар пользователя
Профи

Print(hello world)