Erreur de programmation en langage C !!! :s

Fermé
helpme - 7 mars 2009 à 23:04
 Nomdidiou !! - 8 mars 2009 à 00:38
Bonjour,
Voila; j'éssaye d'éxecuter le programme suivant qui mets en oeuvre le méthode de dicothomie, mais à ce qu'il parait, il ya des erreurs quelque part, et je réussi pas à les trouver, donc je voudrais que quelqu'un puisse m'aider, merci d'avance !!

#include<conio.h>
#include<stdio.h>
#incude<math.h>
{
float f(floatx)
float r;
r=x*x*x-7*x*x+x-7;
return r;
}
main()
{
float a,b,n,eps,m;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&eps);
do
{
m=a+b/2;
if(f(a)*f(m)<0)
else b=m;
if(f(m)=0)
TR=1;
else a=m;
getch()
}

1 réponse

Nomdidiou !!
8 mars 2009 à 00:15
Re,

On t'avais pourtant donné des pistes :

Quelques remarques :

1- Ça déjà ça compilera.
2- Je pense que l'algorithme de recherche dichotomique pour chercher P(x) = 0 c'est plutôt ça je pense ^^.


#include<conio.h>
#include<stdio.h>
#incude<math.h>


float f(float x)
{
float r;
r = (x*x*x)- (7*x*x) + x - 7;
return r;
}

main()
{
float a,b,n,eps,m;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&eps);
do
{
m=a+b/2;
if (f(a) - f(m) < 0)
{
b=m;
}
else
{
a=m;
}
if (f(m)==0)
{
TR=1;
}
} while (TR != 1);

printf ("Alors !! --> P(m) = 0 pour la valeur m = %f", m);
getch()
}
0
Nomdidiou !!
8 mars 2009 à 00:38
Re,

Je me souvenais plus exactement de l'algorithme.

Il est ici votre algorithme : https://fr.wikipedia.org/wiki/M%C3%A9thode_de_dichotomie

b : c'est la partie supérieure.
a : c'est la partie inférieure.
m : c'est la valeur approchée telle que P(m) tende vers 0.
eps : la précision.

Donc, avec de petites corrections, ça devient :

#include<conio.h>
#include<stdio.h>
#incude<math.h>

// Fonction de calcul polynôme
float f(float x)
{
float r;
r = (x*x*x)- (7*x*x) + x - 7;
return r;
}

main()
{
float a,b,eps,m;
// On entre les valeurs
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&eps);

// La boucle dichotomique (voir algo.)
do
{
m=a+b/2;
if (f(a) * f(m) > 0)
{
a=m;
}
else
{
b=m;
}
if ((f(b) - f(a) <= eps)
{
TR=1;
}
} while (TR != 1);

printf ("Alors !! --> P(m) = 0 pour la valeur m = %f avec une précision de %f", m, eps);
getch()
}
0