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

определенный интеграл на указанном пользователем промежутке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу, реализующую алгоритмы выполнения арифметических операций http://www.cyberforum.ru/cpp-beginners/thread1055025.html
Составить программу, реализующую алгоритмы выполнения арифметических операций (+,-,*,div,mod), операции сравнения (<, <=,>,>=,=,<>), и печати для чисел, которые могут привешать максимально допустимое целое число. Вычислите факториал такого числа N, чтобы N! <=〖10〗^100, a(N+1)! >〖10〗^100, Очень требуется помощь в написании данной программы, сам практически нечего не понимаю, просто выдали...
C++ Растяжение компонентов При растяжении формы, компоненты как были так и лежат. Как сделать чтоб пропорционально растягивались, взависимости от растяжение формы. Компилятор: BCB 2010 http://www.cyberforum.ru/cpp-beginners/thread1055017.html
C++ Перевод с Паскаль на С++
Помогите перевести с паскаля на C++ этот код: var s:string; i,c:integer; begin readln(s); c:=0; for i:=1 to length(s)-2 do if (s='a') and (s='b') and (s='c') then inc(c);
C++ Число символов строке не являющихся ни буквами, ни цифрами
На этой не деле, в срочном порядке нам дали несколько заданий в их числе: определить в строке число символов не являющихся ни буквами, ни цифрами. Как это понимать и выполнять?
C++ дополнительный счетчик не считает http://www.cyberforum.ru/cpp-beginners/thread1054978.html
проблема такая, в коде for(int w = 0; w<cline; w++){ int writv = 0; if(w==writv){ sprintf(&obufer,"%s",txn.c_str()); }else{ sprintf(&obufer,"%d %f %f %f %f %f %f %f %f %d %d %f",prtable.dum, prtable.x, prtable.y, prtable.z, prtable.nx, prtable.ny, prtable.nz, prtable.u, prtable.v, prtable.dumm, prtable.idbone, prtable.weight);}
C++ Получить массив, расположив в его начале элементы массива A, а затем — элементы массива B Помогите решить такую вот задачку (Даны массивы A и B. Получить массив C, расположив в его начале элементы массива A, а затем — элементы массива B.) подробнее

Показать сообщение отдельно
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.12.2013, 08:42
Ну скажем первая функция, первый метод, я бы решил так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    float r = 0;
    float a, b;
    float step;
    cout << "Vvedite a, b:" << endl;
    cin >> a >> b;
    cout << "Vvedite shag:" << endl;
    cin >> step;
    for (float i = a; i <= b; i+=step)         
        r += (cos(i)/(1+i))*float(step);      //Stalo byt' dlina otrezkov (a-b)/n i est' shag
    cout << r << endl; 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 1 час 4 минуты
Вот с использованием функции:
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
#include <cstdlib>
#include <iostream>
#include <cmath>
 
using namespace std;
 
float func1(float a, float b, float st)
{
    float r = 0;
    for (float i = a; i <= b; i+=st)         
        r += (cos(i)/(1+i))*st;      //Stalo byt' dlina otrezkov (a-b)/n i est' shag
    return r;
}
 
int main(int argc, char *argv[])
{
    float a, b;
    float step;
    cout << "Vvedite a, b:" << endl;
    cin >> a >> b;
    cout << "Vvedite shag:" << endl;
    cin >> step;
 
    cout << func1(a, b, step) << endl; 
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 1 час 7 минут
Вот полностью. Не могу гарантировать на 100% правильность left, right, trapeze, хотя в онлайн калькуляторах интегралов примерно такие же ответы.
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 <cstdlib>
#include <iostream>
#include <cmath>
 
using namespace std;
 
float func1(float x)
{
    return cos(x)/(1+x);
}
 
float func2(float x)
{
    return pow((x-sin(x)), 3);
}
 
float func3(float x)
{
    return pow(1-x, 1/3);
}
 
float func4(float x)
{
    return log(sin(x));
}
 
float left(float a, float b, float st, float (*pf)(float))
{
    float r = 0;
    for (float i = a; i <= b-st; i+=st)         
        r += pf(i)*st;      //Stalo byt' dlina otrezkov (a-b)/n i est' shag
    return r;
}
 
float right(float a, float b, float st, float (*pf)(float))
{
    float r = 0;
    for (float i = a+st; i <= b; i+=st)         
        r += pf(i)*st;      //Stalo byt' dlina otrezkov (a-b)/n i est' shag
    return r;
}
 
float trapeze(float a, float b, float st, float (*pf)(float))
{
    float r = 0;
    for (float i = a; i <= b; i+=st)         
        r += 0.5 * st * (pf(i)+pf(i+st));      //Stalo byt' dlina otrezkov (a-b)/n i est' shag
    return r;
}
 
int main(int argc, char *argv[])
{
    float a, b;
    int formula, method;
    float step;
    float (*pf)(float); 
    cout << "Vvedite a, b:" << endl;
    cin >> a >> b;
    cout << "Vvedite shag:" << endl;
    cin >> step;
    cout << "Kakuyu formulu(1-4)?" << endl;
    cin >> formula;
    cout << "Kakoy metod(1-3)?" << endl;
    cin >> method;
    
    switch(formula)
    {
        case 1: pf = func1;break;
        case 2: pf = func2;break;
        case 3: pf = func3;break;
        case 4: pf = func4;break;
        default: {pf = func1; cout << "Vveden neverniy nomer functsii. Vybrana pervaya.";} break;
    }
    
    cout << "Otvet = ";
    switch(method)
    {
        case 1: cout << left(a, b, step, pf) << endl; ;break;
        case 2: cout << right(a, b, step, pf) << endl; ;break;
        case 3: cout << trapeze(a, b, step, pf) << endl; ;break;
        default: {cout << "Vveden neverniy nomer metoda. Vybran perviy(levyh pryamougol'nikov).\n"; cout << left(a, b, step, pf);} break;
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 11 часов 42 минуты
C++
1
return pow(1-x, 1/3);
надо заменить на
C++
1
return pow(1-x, 1.0/3);
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru