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

Убрать массивы. Приближённое вычисление - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать блок схему, или расшифровать формулы в математическом виде http://www.cyberforum.ru/cpp-beginners/thread1203977.html
помогите написать блок схему, или расшифровать формулы в математический ввиде, не как не могу разобратся #include <iostream> using namespace std; int main() { int N; cin >> N;
C++ Елка В чем ошибка??? Помогите!!! #include <iostream> using namespace std; int main() { int h, d=2; cout << "\nEnter length of triangle's side: "; cin >> h; cout << endl; http://www.cyberforum.ru/cpp-beginners/thread1203948.html
Ни я ни компилятор не видим ошибки C++
Здравствуйте. Я новичок и если у кого есть минута времени, объясните: Есть такой простой код #include <iostream> #include <math.h> #include <iomanip> using namespace std;
Вывести на экран 10 первых простых чисел C++
Вывести на экран 10 первых простых чисел. Числа хранить в массиве. Проверку, является ли число простым, оформить в виде функции.
C++ По заданному X рекурсивно вычислить X^2 http://www.cyberforum.ru/cpp-beginners/thread1203927.html
Написать программу, высчитывающую X^2. Х задается пользователем. Использовать рекурсию.
C++ матан всем доброго времени суток! у меня такая проблема! я не могу понять как два коллинеарных вектора линейно независимы? подробнее

Показать сообщение отдельно
Aecttann
 Аватар для Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 279
09.06.2014, 21:56     Убрать массивы. Приближённое вычисление
Вот исходник с массивами:

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
long double f(long double);
 
using namespace std;
 
int main()
{setlocale(LC_ALL,"RUS");
    long int i,N,k=10000000,kn=0;
    long double a,b,t,z,c,x[3001],summ=0.0;
    a=2.0;
    b=3.0;
    N=3000;
    t=(b-a)/N,
    x[0]=a;
    x[3000]=b;
 
for(i=1;i<N;i++)
{
    x[i]=x[i-1]+t;
}
 
for(i=0;i<N-1;i++)
 
    summ=summ+(f(x[i])*t);
cout<<"Способ 1 ="<<summ<<endl;
summ=0.0;
 
for(i=1;i<N;i++)
    summ=summ+(f(x[i])*t);
cout<<"Способ 2 ="<<summ<<endl;
summ=0.0;
 
for(i=0;i<N-1;i++)
    summ=summ+(((f(x[i])+f(x[i+1]))/2.0)*t);
cout<<"Способ 3 = "<<summ<<endl;
    summ=0.0;
 
for(i=0;i<N-1;i++)
    summ=summ+(((f(x[i])+4*f((x[i]+x[i+1])/2)+f(x[i+1]))/6.0)*t);
cout<<"Способ 4 = "<<summ<<endl;
    summ=0.0;
    long double summ1=0,summ2=0,summ3=0;
 
    for(i=0;i<N;i++)
    {
        if((i==0)||(i==N-1))
            summ1=summ1+f(x[i]);
        else if(i%3==0)
            summ3=summ3+f(x[i]);
        else
            summ2=summ2+f(x[i]);
    }
 
    summ=((3*(b-a))/(8*N))*(summ1+3*summ2+2*summ3);
cout<<"Способ 5 = "<<summ<<endl;
 
    kn=0;
 
    srand(time(0));
    double H=10.0;
    for(i=0;i<k;i++)
    {
        z=((rand()%10000)/10000.0)+a;
        c=((rand()%10000)/10000.0)*H;
 
        if(f(z)>=c)
            kn++;
    }
    summ=0.0;
    summ=(kn*1.0/k*1.0)*H;
cout<<"Способ 6 = "<<summ<<endl;
return 0;
}
long double f(long double x)
{
    return (10/pow((pow(x,2)-1),0.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
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
long double f(long double);
 
using namespace std;
 
int main()
{setlocale(LC_ALL,"RUS");
    long int i,N,k=10000000,kn=0;
    long double a,b,t,z,c,x=3001,summ=0.0;
    a=2.0;
    b=3.0;
    N=3000;
    t=(b-a)/N;
    x=b;
 
for(i=1;i<N;i++)
{
    x=x+t;
}
 
for(i=0;i<N-1;i++)
 
    summ=summ+(f(x)*t);
cout<<"Способ 1 ="<<summ<<endl;
summ=0.0;
 
for(i=1;i<N;i++)
    summ=summ+(f(x)*t);
cout<<"Способ 2 ="<<summ<<endl;
summ=0.0;
 
for(i=0;i<N-1;i++)
    summ=summ+(((f(x)+f(x))/2.0)*t);
cout<<"Способ 3 = "<<summ<<endl;
    summ=0.0;
 
for(i=0;i<N-1;i++)
    summ=summ+(((f(x)+4*f((x+x)/2)+f(x))/6.0)*t);
cout<<"Способ 4 = "<<summ<<endl;
    summ=0.0;
    long double summ1=0,summ2=0,summ3=0;
 
    for(i=0;i<N;i++)
    {
        if((i==0)||(i==N-1))
            summ1=summ1+f(x);
        else if(i%3==0)
            summ3=summ3+f(x);
        else
            summ2=summ2+f(x);
    }
 
    summ=((3*(b-a))/(8*N))*(summ1+3*summ2+2*summ3);
cout<<"Способ 5 = "<<summ<<endl;
 
    kn=0;
 
    srand(time(0));
    double H=10.0;
    for(i=0;i<k;i++)
    {
        z=((rand()%10000)/10000.0)+a;
        c=((rand()%10000)/10000.0)*H;
 
        if(f(z)>=c)
            kn++;
    }
    summ=0.0;
    summ=(kn*1.0/k*1.0)*H;
cout<<"Способ 6 = "<<summ<<endl;
return 0;
}
long double f(long double x)
{
    return (10/pow((pow(x,2)-1),0.5));
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru