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

интерполяция по формуле в стирлинга - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритм действий http://www.cyberforum.ru/cpp-beginners/thread253088.html
Вот есть формула такая. Значит,я так понимаю: сначала вычисляется рекурсивной функцией факториал, другая функция будет возводить в степень. Потом уже полученное значение икса используем для вычисления синуса этого значения? Только бы еще записать...да,да учебник мне в помощь,ясное дело.
C++ Определить массу водорода, находящийся под давлением в баллоне Определить массу водорода, находящийся под давлением в баллоне. Добавлено через 1 минуту Подскажите пожалуйста, какой формулой пользоваться? http://www.cyberforum.ru/cpp-beginners/thread253071.html
Совсем нуб просит совета C++
Здравствуйте. Меня зовут Алексей, мне 16 лет (я школота), и в будущем я хотел бы связать свою жизнь с программированием/web-дизайном. Сейчас я потихоньку изучаю HTML, параллельно хочу понемногу изучать программирование. Я вообще абсолютный новичок в этом деле, поэтому не знаю ни какой язык мне нужен и т.п. Посоветуйте, пожалуйста, с чего начать (есть ли какой учебник для людей уровня...
Карточные игры C++
Всем привет! Я не так давно начал программировать, и постоянно возникают проблемы с написанием более сложных программ. В общем надо написать семестралку, тема - карточные игры. то есть написать какую нибудь карточную игру на с++. Выбрал игру, которая очень распространена в Казахстане, называется белка. Проблемы возникли с самого начала( 1)Надо создать колоду из 32 карт, от 7 до туза. т.е...
C++ Проверка вводимых значений http://www.cyberforum.ru/cpp-beginners/thread253058.html
есть динам. массив, который вручную заполняется for (int i=0;i<n;i++) { cout<<"Введите "<<i+1<<" значение Urab (5...60 B) : "; cin>>urab; if(urab<5 && urab>60)//проверка значений { cout<<"Ошибка!\n Диапазон значений 5-60 В. Повторите попытку\n для текущего конденсатора"<<endl; cin>>urab; }
C++ Как подключить в MSVS2010 хедр файлы Всем доброго времени суток! Я устанавливаю библиотеку Qt. установил ее, установил Add-in в вижуал студию. Появилась на панели меню Qt, но #include <QtGui> подчеркивает красным. Говорит что не может ее найти. Скажите как указать путь к эти хедр файлам. Облазил Tools->Options, не удалось нати :( подробнее

Показать сообщение отдельно
FromKremlin
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 9

интерполяция по формуле в стирлинга - C++

07.03.2011, 20:42. Просмотров 2917. Ответов 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
# include <iostream.h>
# include <math.h>
# include <conio.h>
# include <stdlib.h>
const n=10;
double x[n+1] = {0.2930, 0.4690, 0.6450, 0.8210, 0.9970, 1.1730, 1.3490, 1.5250, 1.7010, 1.8770, 2.0530};
double y[n+1] = {-0.2540, -0.0630, 0.0150, 0.0130, -0.0360, -0.1010,        -0.1470, -0.1420, -0.0540, 0.1500, 0.5060};
 double delt(int, int);
 double Stirl(int, double);
void main()
{
  int i,j,d ; double mn,b,q;
    cout<<"Enter argyment(b)\n";
    cin>>b;
     cout<<"\n\n***Programma vi4islyet zna4enie v to4ke  x = "<<b<<" *** ";
     mn=10000;
     for (j=1;j<=n;j++)
     {
        if (fabs(x[j]-b)<mn)
        { mn=fabs(x[j]-b);
    d=j;
        }
     }
     if ((d>(n-4)/2) & (d<=(n+4)/2) & (mn/(x[2]=x[1])<0.25))
     {  q=fabs(b-x[d])/(x[1]-x[0]);
         cout<<"\n Ras4et po formyle stirlinga "
        <<"\n rezyltat: "<<Stirl(d,q);
     }
     else  cout<<"Formyly stirlinga primenit' nel'zy";
  getch();
}
double delt(int m, int k)
{
 double d;
 if (m==1) { d=y[k+1]-y[k]; }
 else { d=delt(m-1,k+1)-delt(m-1,k); }
 return d;
};
 double Stirl(int d, double q)
{
 double S,Q=1,p1=1, p2=1; int t,i;
 if (d>(n-d)) {t=n-d;} else {t=d;}
 S=y[d];
 for (i=1;i<=t;i++)
 {
  p1=p2*(2*i-1); p2=p1*2*i;
  S=S+(q*Q/p1)*(delt(2*i-1,t-i)+delt(2*i-1,t-i+1))/2;
  S=S+((q*q)*Q/p2)*delt(2*i,t-i);
  Q=Q*(q*q-i*i);
 }
 return S;
}
Добавлено через 18 часов 37 минут
ап (5 символов)

Добавлено через 7 часов 53 минуты
вот прога которая у меня получилась, но она выдает совсем не то что нужно =\, скажите где здесь ошибка ?
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
# include <iostream.h>
# include <math.h>
# include <conio.h>
# include <stdlib.h>
double delt(double *,int, int);
double Stirl(double *,int, double);
int n,i ;
void main()
{double *x = new double[n];
double *y = new double[n];
double z;
{cout<<"Enter n(Koli4estvo yzlov interpol9cii)\n";
cin>>n;
 cout<<"Enter mas Y\n";
for(i=0;i<=n;i++)
{cout<<"y["<<i<<"]=";
cin>>y[i]; }
cout<<"Enter mas X\n";
for(i=0;i<=n;i++)
{cout<<"x["<<i<<"]=";
cin>>x[i]; }
cout<<"Enter z(to4ka v kotoroi nyjno vi4islit'zna4enie fynkcii)\n";
cin>>z;
int j,d ; double mn,b,q;
b=z;
mn=10000;
for (j=1;j<=n;j++)
{if (fabs(x[j]-b)<mn)
{ mn=fabs(x[j]-b);
d=j;}}
if ((d>(n-4)/2) & (d<=(n+4)/2) & (mn/(x[2]=x[1])<0.25))
{q=fabs(b-x[d])/(x[1]-x[0]);
cout<<"\n Ras4et vedets9 po formyle stirlinga"<<"\n Rezyltat: "<<Stirl(y,d,q);
getch(); }
            else  cout<<"Formyly stirlinga primenit' nel'zy";
}}
 double delt(double *y, int m, int k)
{
 double d;
 if (m==1) { d=y[k+1]-y[k]; }
 else { d=delt(y,m-1,k+1)-delt(y,m-1,k); }
 return d;
}
 double Stirl(double *y,int d, double q)
{
 double S,Q=1,p1=1, p2=1; int t,i;
 if (d>(n-d)) {t=n-d;} else {t=d;}
 S=y[d];
 for (i=1;i<=t;i++)
 {
  p1=p2*(2*i-1); p2=p1*2*i;
  S=S+(q*Q/p1)*(delt(y,2*i-1,t-i)+delt(y,2*i-1,t-i+1))/2;
  S=S+((q*q)*Q/p2)*delt(y,2*i,t-i);
  Q=Q*(q*q-i*i);
 }
 return S;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru