begin process at 2012 05 28 19:03:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Sa compile mais sa léve une erreur?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sa compile mais sa léve une erreur?

jeudi 9 mars 2006 à 22:04:04 | Sa compile mais sa léve une erreur?

hitcher

J'ai déjà mis un poste la dessus sauf que dans cette version j'ai retiré tous les pointeurs et les CLASS, enfin tous les trucs lié à la pile qui pouvez, à mon sens causer sa, et bien non même erreur quand il doit me renvoyer le resultat de la fonction RI. Et pourtant cela compile sans problême. Perso je manque d'expérience sur ce genre de problême.
#include "iostream.h"
#include "math.h"

#define Tol 0.000000001
#define R 0.6180339 //golden section
#define C (1-R)
#define N 100 //max iter
#define Pi 3.14159


double RI(double a, double b, double alpha,double beta,double theta,double x,double eta);
double TR(double n, double a, double b,  double alpha,double beta,double theta,double x,double eta);
double ff(double i,  double alpha,double beta,double theta,double x,double eta);
double Ink(double R1,double R2,int k);
double Gsearch(double a, double b, double c, double alpha,double beta,double theta,double x,double eta);

double F(double x, double alpha, double beta);

int main()
{
cout << endl
<<F(1, 1.4, 0.5);
cout << endl;


return 0;
}

double F(double x, double alpha, double beta)
{
double eta, theta, c1, r1, r2, gg;
double MF;

theta=-beta*tan(Pi*alpha*0.5);

if(alpha==1){eta=Pi/2;}
else{eta=(1/alpha)*atan(-theta);}

if(alpha<1){c1=(1/Pi)*(Pi/2-eta);}
else{c1=1;}

if(alpha!=1 && x>theta)
{
gg=Gsearch(-eta,Pi/2,(Pi/2-eta)/2,alpha,beta,theta,x,eta);

r1=RI(-eta,gg,alpha,beta,theta,x,eta);
r2=RI(gg,Pi/2,alpha,beta,theta,x,eta);

MF=c1+(1/Pi)*fabs(1-alpha)/(1-alpha)*(r1+r2);
}

if(alpha!=1 && x==theta)
{
MF=(1/Pi)*(Pi/2-eta);
}

if(alpha!=1 && x<theta)
{
MF=1-F(-x,alpha,-beta);
}

if(alpha==1)
{
MF=999;
}

return MF;
}

double Gsearch(double a, double b, double c, double alpha,double beta,double theta,double x,double eta)
{
double f1, f2, x0, x1, x2, x3;
int n;

n=0;
x0=a;
x3=c;

if( fabs(c-b)>fabs(b-a) )
{
x1=b;
x2 = b + C * (c - b);
}
else
{
x2 = b;
x1 = b - C * (b - a);
}

f1 = ff(x1,alpha,beta,theta,x,eta);
f2 = ff(x2,alpha,beta,theta,x,eta);
while( fabs(x3-x0) > Tol*(fabs(x1)+fabs(x2)) || n == N)
{
if(f2 < f1)
{
x0 = x1;
x1 = x2;
x2 = R * x1 + C * x3;
f1 = f2;
f2 = ff(x2,alpha,beta,theta,x,eta);
}
else
{
x3 = x2;
x2 = x1;
x1 = R * x2 + C * x0;
f2 = f1;
f1 = ff(x1,alpha,beta,theta,x,eta);
}
n++;
}

if(f1 < f2){return x1;}
else{return x2;}
}

double RI(double a, double b, double alpha,double beta,double theta,double x,double eta)
{
const int MaxIter = 10;
double temp1;
double Mresult[MaxIter][MaxIter];
int n, k, i, m;

m = 0;

for(k=0;k<=MaxIter;k++)
{
n = static_cast<int>(pow(2,k));
if(n==1) {Mresult[m][0] = TR(n,a,b,alpha,beta,theta,x,eta);}
else    {Mresult[m][0] = TR(n,a,b,alpha,beta,theta,x,eta);}

for(i=1;i<=k;i++)
{Mresult[m][i] = Ink(Mresult[m][i-1], Mresult[m - 1][i-1], i);}

temp1= fabs(Mresult[m-1][m-1] - Mresult[m][m]);

if(temp1<Tol && m>=2){k = 10;}
temp1= Mresult[m][m];
m++;
}
return temp1;
}


double TR(double n, double a, double b, double alpha,double beta,double theta,double x,double eta)
{
double i, temp, H;
temp=0;
H = (b - a) / n;

for(i=a; i<=b; i+=H)
{
if(i==a || i==b )
{temp +=ff(i, alpha,beta,theta,x,eta) / 2;}
else
{temp +=ff(i, alpha,beta,theta,x,eta);}
}

return temp * H;
}

double Ink(double R1,double R2,int k)
{
return (pow(4,k) * R1 - R2) / (pow(4,k) - 1);
}

double ff(double i,  double alpha,double beta,double theta,double x,double eta)
{
double tt;
if(i!=eta)
{
tt=pow(cos(alpha * eta),1/(alpha-1));
tt*=pow(cos(i)/sin(alpha * (eta + i)),alpha/(alpha-1));
tt*=cos(alpha * eta + (alpha - 1) * i) / cos(i);
tt*=pow(x-theta, alpha/(alpha-1));
}
return -exp(-tt);
}

#undef Tol
#undef R
#undef C
#undef N
#undef Pi
vendredi 10 mars 2006 à 18:30:56 | Re : Sa compile mais sa léve une erreur?

magic_Nono

Membre Club
pourrais tu donner l'erreur que ça génère stp... sans ça difficile de t'aider (sans prendre le tps de tester etc)...

___________________________________________________________
Magicalement
Nono
vendredi 10 mars 2006 à 23:12:21 | Re : Sa compile mais sa léve une erreur?

SAKingdom

Membre Club
Ouais, dit nous ce que dit ton compilateur.

Les plus grands esprits trouvent toujours une solution
samedi 11 mars 2006 à 00:30:28 | Re : Sa compile mais sa léve une erreur?

SAKingdom

Membre Club
A tu essailler de tracer ton programme avec un debuggeur?

___________________________________________
Les plus grands esprits trouvent toujours une solution

samedi 11 mars 2006 à 10:11:54 | Re : Sa compile mais sa léve une erreur?

hitcher

alors le programme compile sans problême. Quand j'execute le programme une fênetre windows m'explique qu'il y a eu un problême et que TestIS.exe (le nom du projet) doit s'arréter.
La fenêtre MSDOS reste elle ouverte (?). Mais rien ne s'affiche.
En mode déboguage, l'erreur a lieu à cette ligne
r1=RI(-eta,gg,alpha,beta,theta,x,eta);
Pour être plus précis on peut "rentrer" dans la fonction RI mais au return,  j'ai un message disant erreur access violation. Je pensait que cela est du au pointeur ou au class mais cette versiion  présente le même bug.


Cette discussion est classée dans : alpha, double, beta, eta, theta


Répondre à ce message

Sujets en rapport avec ce message

algorithme d'un cercle avec opengl [ par jfk20004 ] quelqu'un peut il me donner le code d'un algo d'un tracé de cercleutilisant opengl. Par exx=r*cos(alpha)+cos(beta);y=r*sin(alpha)+cos(beta);j'imagine matrice [ par rif59 ] bonjour; je suis debutant en C++,en fait j'ai un probleme avec ce programme:void produit_vect_mat(double b arbre alpha-beta [ par tarrache ] bonsoir tout le monde,pour programer un jeu de dame, demandé comme projet dans mon ecole,je serais très reconnaissant pour celui ou celle qui me fourn Fonction bizarre [ par albert232 ] Bonjour , En Visual Basic la Fonction est : Function Facteur_de_Ralentissement(A As Integer) As Double Facteur_de_Ralentissement = ((A - 1) / (A Problème d'association de fichiers [ par splash68 ] Bonjour, Je recherche un moyen efficace d'intercepter ou de détecter le double-clique sur un fichier sous Windows en C++. Par exemple lorsque l'on do les double... [ par avalonclass ] Bonjour a vous, j'ai écris un ptit programme de rien du tout mais celui ci me renvoie des valeurs completement bidon quand je l'utilise... qlq'un saur Projet en C++ [ par Hugo Dam ] Bonjour, Il se trouve que j'ai un projet en C++ et je suis complètement bloqué. Au moment de la compilation j'ai énormément d'erreur. Voici le sujet ; Impossible de créer un objet [ par daviddubois ] Bonjour tout le monde,Je débute en C++.Je suis occupé à créer un programme qui va me permettre de calculer le rayon d'un triangle, la superficie d'un creer une matrice [ par rif59 ] bonjour, on fait j veu creer une matrice de n ligne et de 5 colonnes; j'ai fé un  programme mais ça marche pas, quelcun peut me dire comment faire, ça Probleme entre float et double [ par darkwhite ] Salut a tous, j'ai un probleme bizarre. J'ai fait un programme avec des fonctions et des variables float. Tout marche impecable. Cependant j'ai voulu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales