probleme de dichotomie sur visual C++ - C - Programmation
Marsh Posté le 22-10-2007 à 20:38:11
Beaucoup d'erreurs.
Je me permets tout d'abord de poster une version indentée de ton code, dans les balises du forum qui-vont-bien
Code :
|
Ensuite, si ton compilateur est convenablement configuré, tu devrais obtenir au moins ceci :
Compiling: C:\Program Files\CodeBlocks\seb\test.c |
Essaie déjà de corriger ces erreurs-ci, il s'agit de syntaxe, et les messages sont assez explicites.
Ensuite tu pourras voir ce que donne ton programme
Marsh Posté le 22-10-2007 à 21:05:55
merci excuse moi pour le message précedent mais comment faire pour configurer correctement mon compilateur?
Marsh Posté le 22-10-2007 à 21:18:37
http://mapage.noos.fr/emdel/codage.htm#cfg_compilo
Marsh Posté le 23-10-2007 à 23:43:21
Bizarre que Joel F n'ait pas encore dit que ce n'est pas du c++
Marsh Posté le 24-10-2007 à 06:48:16
C'est pas du C++ mais du C (le topic a ensuite été déplacé dans la bonne catégorie).
Marsh Posté le 24-10-2007 à 12:09:32
J'avoue que je n'ai pas tout compris dans ton histoire de borne sup et inf (j'ai pas cherché bcp c'est vrai).
Par contre ceci est toujours valable: pas de ; après un while
while (borne_sup - borne_inf>=PRECISION) ;
Cela veut dire:
tant que borne_sup - borne_inf>=PRECISION, ne rien faire.
Donc si la condition est vraie tu obtiens une jolie boucle infinie.
Marsh Posté le 22-10-2007 à 20:00:54
Bonjour,
j'ai un problème je dois écrire la résolution d'un système d'équation du second degré et je dois utilisé la dichotomie, je ne suis pas très expérimentée en langage C donc j'aurais vraiment besoin d'aide, j'ai les variables x1,x2 qui doivent etre relles ainsi que delta mais je dois aussi définir une variable PRECISION valant 0,005 et tant que (borne_sup - borne_inf>=PRECISION), r2= (borne_sup + borne_inf)/2 et en comparant r3(donc sensé être la carré de r2)à delta, je dois modifier la borne adéquate? Moi, j'ai écrit ce programme déjà, je ne sais même pas si c'est juste et en plus, il me met comme erreur:
C:\Program Files\Microsoft Visual Studio\MyProjects\stephanieentrainement\entrainement\steph.c(69) : error C2059: syntax error : 'return'
pouvez vous m'aidez svp, je dois rendre ce devoir demain, si quelqu'un pouvait m'aider à voir si je ne fais pas fausse route et ou sont mes erreurs voilà bien deux jours que j'essaie de trouver la réponse au problème et ou sont mes erreurs mais je ne trouve pas
.Merci d'avance de vos aides.
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <float.h>
# include <string.h>
# define PRECISION 0.005
float main ()
{
float a,b,c,delta,u,borne_inf,borne_sup,r3,r2;
double x1,x2;
borne_inf = 0;
borne_sup = FLT_MAX;
printf("resolution d'un systeme d'equation du second degre\n" );
printf("ax^2+ bx + c = 0\n" );
printf("saisie du coefficient a\n" );
scanf("%f", &a);
printf("saisie du coefficient b\n" );
scanf("%f", & b);
printf("saisie du coefficient c\n" );
scanf("%f", &c);
printf("%.2f est le discriminant de cette equation\n", delta);
delta = (b*b) - (4*a*c);
if (delta<0)
{
printf("pas de solution reelle possible\n" );
}
if (delta==0)
{
printf("une seule solution reelle possible, u\n" );
u=(-b)/(2*a);
printf("%.2d\n", u);
}
do
{
while (borne_sup - borne_inf>=PRECISION);
{
r2=(borne_sup + borne_inf)/2;
r3 = r2*r2;
if (r3<delta)
{
borne_sup = (float)r2;
}
else
{
borne_inf = (float)r2;
}
}
if (delta > 0)
{
printf("deux solutions reelles possibles,x1 et x2\n" );
x1=(float)((-b - (r2))/(2*a));
x2=(float)((-b + (r2))/(2*a));
printf("%.2f\n", x1);
printf("%.2f\n", x2);
}
}
return 0;
}
---------------
ce qui fait monter le serpent à l'arbre, c'est l'orgueil