Forum Clubic

Petit problème

bonjour

Je développe un programme pour résoudre une équation du secon degré ( ax²+bx+c=0). Ainsi j développé le code suivant:

// trinome.cpp : définit le point d'entrée pour l'application console.
//

#include "stdafx.h"
#include <iostream>
#include <math.h>


using namespace std;

int main()
{	double a,b,c=0;
	cout<<"a?"<<endl;
	cin>>a;
	cout<<"b?"<<endl;
	cin>>b;
	cout<<"c?"<<endl;
	cin>>c;
	double d=0;
	d=pow(b,2)-4*(a*c);
	cout<<"Le discriminant vaut "<<d<<endl;

	if (d<0.0)
	{	cout<<"Il n'existe pas de solutions"<<endl;
	}

	else if (d==0.0)
	{
		double x=0;
		x=-b/(2*a);
		cout<<"Il existe 1 solution: x= "<<x<<endl;
	}
	 else(d>0);
	{	double x,y=0;
		x=(-b-sqrt(d))/(2*a);
		y=(-b+sqrt(d))/(2*a);
		cout<<"Il existe 2 solutions: x= "<<x<<" et y= "<<y<<endl;
	}
	system("PAUSE");
	return 0;
}

Seulement, j’ai un problème d’affichage; en effet, lorsque que calcule pour a=5.0,b=2.0 et c=5.0, il trouve bien la solution, mais il affiche en même temps qu’il n’existe pas de solution et à la ligne d’en dessous, il manque qu’il existe de solution. Alors commment fair epour résoudre ce problème ?

En fin,j’ai une dernière question: Je souhaite utiliser un autre affichage que la console, en fait je voudrai qu’il s’affiche dans une fenetre, mais avec quel logicel je peux faire ( SDl ou Qt) où bien un logiciel ?

En vous remerciant par avance

Tibérium
Edité le 26/06/2008 à 14:34

Essaye en virant le “;” : else(d>0);

Car à cause de ça le dernier bloc est toujours effectué :slight_smile:

D’ailleurs ça compile else(d>0); ? Ca ne devrait pas plutôt être else if ? (J’ai fait très peu de C)

Quand je fais cette procédure, le compilateur me dit :“error C2143: erreur de syntaxe : absence de ‘;’ avant ‘{’”.

j’ai essayé en créant une série de if pour chaque condition, mais le même problème apparait.

Une idée ?

Et pour l’affichage fenetre, SDL ou Qt ??

Tibérium

NB: J’ai oublié de dire que je compile avec Visual C++ 2008 Edition Express.
Edité le 26/06/2008 à 16:56

Normal :slight_smile: c’était vire le (d>0); qu’il fallait lire :slight_smile:

par contre, méfie toi, car tu utilises des flottants, et il n’est pas dis que d == 0.0 soit tout le temps vrai: tu peux avoir des écarts de calcul qui font que tu ai un nombre positif ou négatif. T’y peux rien ceci dit.

Je te remercie Sans-Nom pour avoir répondu à mon problème et désolé si j’ai fait une erreur de lecture.

Est-ce que avec Qt ou SDL, je peux afficher le programme sous la forme d 'une fenetre ?
En vous remerciant par avance

Tibérium
Edité le 27/06/2008 à 10:56