Показать сообщение отдельно
Старый 05.06.2012, 01:26   #1 (permalink)
Вирус
Новичок
 
Регистрация: 05.06.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Создание программы на языке С++

Тема: Решение дифференциальных уравнений 1 порядка методом Эйлера.Создала программу на языке с++, она работает, но очень криво. Исправить не получается, выдает ошибки. А исправить нужно следующее:
1) Сообщить о том, какие именно уравнения 1 порядка решает данная программа, т.е. задать вид уравнения ( их несколько видов ).
2) Задать начальное условие для для х.
3) После ввода коэффициентов программа вылетает и результата не выдает, точнее выдает множество результатов для каждого значения х из интервала [a;b].
Код программы:

// реш_диф_уров.cpp: определяет точку входа для консольного приложения.

//



#include "stdafx.h"





int _tmain(int argc, _TCHAR* argv[])

{

return 0;

}





#include<iostream>

using namespace std;

void func(double& Xi, double& Yi,double kx, double ky, double h);

int main()



{

double h,Xi,Yi,Xkon,kx,ky;

int n;

cout<<"\t"<<"\t"<<"******************************* *****************n";

cout<<"\t"<<"\t"<<"* * "<<"\n";

cout<<"\t"<<"\t"<<"* Reshenie difurov 1 poryadka methodom Eulera *"<<"\n";

cout<<"\t"<<"\t"<<"******************************* ******************" ;

cout<<endl;

cout<<"Vvedite nachaloe znachenie intervala [a,b]=";

cin>>Xi;

cout<<"Vvedite konechoe znachenie intervala [a,b]=";

cin>>Xkon;

cout<<"Vvedite chislo shagov=";

cin>>n;

h=(Xkon- Xi)/n;

cout<<endl;

cout<<"Vvedite nachalnoe uslovie y=";

cin>>Yi;

cout<<"Vvedite koefitsient pri x=";

cin>>kx;

cout<<"Vvedite koefitsient pri y=";

cin>>ky;

cout<<"|Interval|Chislo shagov|Shag prirasheniya|Nacalnoe Y|Uravnenie vida:| "<<"\n";

cout<<"|--------|-------------|-----------------|----------|---------------|"<<"\n";

cout<<"|"<<"["<<Xi<<","<<Xkon<<"]" <<" |"<<n<<" |"<<h<<" |"<<Yi<<" |"<<"y'="<<kx<<"x"<<"+"<<ky<<"y"<<" |"<<"\n";

cout<<endl;

cout<<endl;



for (int i=1;i<=n;i++)

{

func(Xi,Yi,kx,ky,h);

cout<<"\n";

}



return 0;

}

void func(double& Xi, double& Yi, double kx, double ky, double h)

{

double f1,Yprom,a,Xprom;



f1=(kx*Xi)+(ky*Yi);

Yprom=Yi+f1*(h/2);

Xprom=Xi+h/2;

a=kx*Xprom-Yprom;

Yi=Yi+a*h;

cout<<"\t"<<"\t"<<"Interval x="<<Xi<<"\t"<<" Resultat y="<<Yi;

Xi=Xi+h;

}

Буду очень благодарна, если поможете)

Замечание:
Уважаемая Вирус, клонирование (дублирование) тем, оно же кросспостинг, у нас запрещено, а при повторном применении - наказуемо. Не надо так делать.
Дубликат удален.
Модератор.
Вирус вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070