Форум программистов, компьютерный форум CyberForum.ru

Подскажите как заменить функцию возведения в степень в 38 строке - C++

Восстановить пароль Регистрация
 
PelekhVolodymyr
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 2
03.12.2013, 20:08     Подскажите как заменить функцию возведения в степень в 38 строке #1
Задано функцию. Написать программу для нахождения определенного интеграла с точностью Е = 10-3 для заданных границ [a, b] с помощью трех методов: 1) прямоугольников 2) трапеций 3) Симпсона. Выбор метода интегрирования реализовать через указатель на функцию.
f = (2x-1), a = 0, b = 4.5;

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream> 
#include <conio.h> 
#include <math.h>
#include <iomanip>
#include <string.h>
 
using namespace std;
double f(double);
double rect(double, double, int);
double trap(double, double, int);
double simp(double, double, int);
 
int main(void)
{
    int x;
    double(*integ)(double, double, int);
    char c;
    char* str;
    cout << "Enter x: ";
    cin >> x;
    cout << "\nEnter the first letter of the method(Rect., Trap., Simps.) or 'e' for exit: ";
    cin >> c;
    while (tolower(c) != 'e')
    {
        if (tolower(c) == 's') { integ = simp; cout << "Simpson's method: " << integ(0, 4.5, x) << endl; }
        else if (tolower(c) == 't') { integ = trap; cout << "Trapezie method: " << integ(0, 4.5, x) << endl; }
        else if (tolower(c) == 'r') { integ = rect; cout << "Rectangle method: " << integ(0, 4.5, x) << endl; }
        else cout << "Incorrectly letter!" << endl;
        cout << "\nEnter the first letter of the method or 'e' for exit: ";
        cin >> c;
    }
    return 0;
}
 
double f(double x)
{
    double k;
    k = pow((2 * x - 1), 1/3);//здесь здесь здесь
    return k;
}
 
double rect(double a, double b, int n)
{
    double h = (b - a) / n;
    double x = a + h, xp = a;
    double s = 0;
    for (int i = 1; i <= n; i++)
    {
        s += f((xp + x) / 2)*(x - xp);
        xp = x;
        x += h;
    }
    return s;
}
 
double trap(double a, double b, int n)
{
    double h = (b - a) / n;
    double x = a, s = 0;
    for (int i = 2; i <= n; i++)
    {
        x += h;
        s += f(x);
    }
    s += ((f(a) + f(b)) / 2);
    s *= h;
    return s;
}
 
double simp(double a, double b, int n)
{
 
    double h = (b - a) / n;
    double s = (f(a) + f(b)) * 0.5;
    for (int i = 1; i <= n - 1; i++)
    {
        double xk = a + h * i; //xk
        double xk1 = a + h * (i - 1); //Xk-1
        s += f(xk) + 2 * f((xk1 + xk) / 2);
    }
    double   x = a + h * n; //xk
    double x1 = a + h * (n - 1); //Xk-1
    s += 2 * f((x1 + x) / 2);
 
    return s * h / 3.0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 20:08     Подскажите как заменить функцию возведения в степень в 38 строке
Посмотрите здесь:

C++ программа возведения в степень
Функция возведения в степень C++
Написать функцию возведения в степень C++
Как работает алгоритм возведения числа a в степень n ? C++
C++ Возведения в степень
C++ Написать функцию возведения в степень
C++ Подскажите, пожалуйста, люди добрые, как заменить первый пункт меню на функцию. Заранее спасибо
Перегрузить функцию возведения в степень C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
03.12.2013, 20:41     Подскажите как заменить функцию возведения в степень в 38 строке #2
C++
1
k = pow(2.0 * x - 1.0, 1.0/3.0);//здесь здесь здесь
1/3 равно нулю
а 1.0/3=0.3333333333333333
PelekhVolodymyr
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 2
03.12.2013, 20:53  [ТС]     Подскажите как заменить функцию возведения в степень в 38 строке #3
тогда к = -1.#IND
Yandex
Объявления
03.12.2013, 20:53     Подскажите как заменить функцию возведения в степень в 38 строке
Ответ Создать тему
Опции темы

Текущее время: 10:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru