yassinefugi
Messages postés8Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention16 octobre 2011
-
15 mai 2009 à 13:47
yassinefugi
Messages postés8Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention16 octobre 2011
-
16 mai 2009 à 00:06
Bonjour tous le monde;
j'essaye de faire un programme mathématique en langage C++ qui sert à
résoudre les équations différentielles , mais j'ai rencontré une erreur
à la fin de programme que je n'arrive pas à la comprendre :
Le programme est le suivant:
#include
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<excpt.h>
double f(double x,double y)
{return y-(x*x)+1;}
void rk2(double a, double b,double h, double y0, double rk2out[])
{
int N=(int)abs((b-a)/h);
double y=y0;
double x=a;
double k1;
for(int i=0;i<=N;i++)
{rk2out[i]=y;
k1=h*f(x,y);
y=y+h*f(x+(h/2.0),y+(k1/2.0));
x=x+h;
}
}
int main()
{
double a=0.0;
double b=3.0;
double h=0.05;
double y0=0.5;
int N =(int)abs((b-a)/h);
double rk2out[N];
rk2(a,b,h,y0,rk2out);
return 0;}
sur la ligne gras et en rouge l'erreur est :
" constant expression required in function main() "
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 15 mai 2009 à 13:59
Salut
On ne peux pas définir un tableau statique avec une dimension variable.
Il faut donc utiliser l'allocation dynamique:
double *rk2out=new double[N];
Et ne pas oublier de supprimer la mémoire quand tu n'en a plus besoin:
delete []rk2out;
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr