Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PelekhVolodymyr
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 2
#1

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

03.12.2013, 20:08. Просмотров 402. Ответов 2
Метки нет (Все метки)

Задано функцию. Написать программу для нахождения определенного интеграла с точностью Е = 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 20:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите как заменить функцию возведения в степень в 38 строке (C++):

Перегрузить функцию возведения в степень - C++
Перегрузить функцию stepen(), в которой число x будет возводиться в степень у: а) x – целое, у – дробное; б) x – целое, у – целое; в)...

Написать функцию возведения в степень - C++
Написать функцию, которая вычисляет значение а^b. Числа а и b могут быть любыми дробными положительными числами.

Написать функцию возведения в степень - C++
Написать программу, которая выводит на печать значения 1^1, 2^2, 3^3, 4^4, 5^5 Степени чисел должны вычисляться в отдельной функции....

Написать функцию возведения числа в степень - C++
нужна функция возведения в степень чтобы возвращала результат.... int involution(int a,int b) { cout&lt;&lt;pow(2,3); return ??? ...

Написать функцию возведения в целую степень - C++
Написать функцию возведения в целую степень без POW

Реализовать рекурсивную функцию возведения заданного числа в степень n - C++
Напишите рекурсивную функцию int power(int a, int n) которая считает a^n. (a степень n) примеры для проверки 1)220 0 1 ...

2
zss
Модератор
Эксперт С++
6530 / 6092 / 2007
Регистрация: 18.12.2011
Сообщений: 15,843
Завершенные тесты: 1
03.12.2013, 20:41 #2
C++
1
k = pow(2.0 * x - 1.0, 1.0/3.0);//здесь здесь здесь
1/3 равно нулю
а 1.0/3=0.3333333333333333
1
PelekhVolodymyr
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 2
03.12.2013, 20:53  [ТС] #3
тогда к = -1.#IND
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 20:53
Привет! Вот еще темы с ответами:

Вычислить сумму степеней, используя рекурсивную функцию возведения в степень - C++
Водится любое целое число b и вещественные a, c. Вычислить z=ab + cb, используя рекурсивную функцию xn xn = 1, если n = 0 xn...

Как работает алгоритм возведения числа a в степень n ? - C++
Добрый день! Собственно, вопрос не по коду, а по алгоритму Почему после выполнения этой программы в res содержится значение an ? Как оно...

Возведения в степень - C++
Народ нужна помощь так как только, сегодня утром начал учить С++ сразу же возникли вопросы Например у меня есть последовательность чисел...

Функция возведения в степень - C++
Добрый день. Ребята, помогите решить проблему. Написал функцию для вычисления действительных корней кубического уравнения. возникает...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru