Résolution de trinômes : calcul de delta - console dos

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 721 fois - Téléchargée 28 fois

Contenu du snippet

Juste pour calculer la valeur DELTA de trinômes et obtenir le nombre de solutions. Cette source sans prétention s'adresse aux débutants comme moi qui cherchent des codes basiques et compréhensibles pour s'entraîner.

Source / Exemple :


// Trinome Calculator par Tesla777

#include <iostream.h> // Header de "cout"
#include <stdlib.h>   // Header de "system"
bool FinBoucle();     // Prototype dernière fonction

float CalculDelta(float aa, float bb, float cc)

{ 
	float Delta = ( bb*bb ) - (4*aa*cc); // Calcul de Delta
		return Delta; // Valeur retourné = Delta
}

int main(void)

{ 
	cout << "************************" << '\n' << '\a';
    cout << "*  TRINOME CALCULATOR  *" << '\n';
	cout << "************************" << '\n' << '\n';

    float a,b,c;     // Declaration des variables a, b, c
	cout << " Valeur de a = ";
	cin >> a;
	cout << '\n' << " Valeur de b = ";
	cin >> b;
	cout << '\n' << " Valeur de c = ";
	cin >> c;    // Demande des variables + initialisations

	float Resultat;
	Resultat = CalculDelta(a,b,c);
	cout << " Le resultat de " << a << "x^2 + " << b << "x + " << c << " est :" << '\n' << '\n';
	cout << "DELTA = " << Resultat << '\n' << '\a' << '\a' << '\n';  // Calcul et affichage résultat
    if (Resultat < 0 )
	cout << "Pas de racines" << '\n';
    if (Resultat == 0)
	cout << "Admet une racine double" << '\n';
    if (Resultat > 0)
		cout << "possede deux racines" << '\n'; // AFFICHAGE DU Nbre RACINES
	if (FinBoucle() == true) // Lance et teste la fonction suivante
	{
        system("cls");  // Efface l'écran avant de recommencer le programme
		main();	  
	}
	else
        return 0;
	return 0;
}
	
bool FinBoucle()  // Voulez vous relancez ?
	
{
	char fin;
	while(1)
	{
	   cout << '\n' << '\n' << "Relancer ? ( o / n ) : ";
	

       	cin >> fin;
	     switch(fin)
		 {
	     case 'o' :
	     case 'O' : return true;
	     case 27  : 
	     case 'n' :
	     case 'N' : return false;
		 }
	}
		main();    // Relance ou non le programme 
}

Conclusion :


Les commentaires sont les bienvenus s'il permettent de faire remarquer des erreurs ou simplifications possibles. Les critiques infondées ne mes permettant pas de progresser ( Ayant commencé le c/c++ il y a seulement quelques jours ), gardez les de préférence ! Merci à tous ! ;-D

PS : Ce code s'adresse à des débutants ( comme moi ) qui veulent des sources simples pour s'habituer au programmes c++. Si ça peux faire évoluer du monde, pourquoi pas !

A voir également

Ajouter un commentaire Commentaires
Messages postés
8
Date d'inscription
dimanche 26 octobre 2003
Statut
Membre
Dernière intervention
30 octobre 2003

Merci de votre aide ! Je mettrai le code à jour pour les racines. Je vais essayer déjà tout ça ! ;-D
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

racine carree de x : sqrt(x);

d'ou rac1 = ( - b - sqrt(Resultat))/(2*a);
rac2 = (-b + sqrt(Resutat)) / (2*a);

NB : qd Resultat <0, il n'y a pas de racine DANS L'ESPACE DES REELS !
si tu considere l'espace des nombres complexes ( la où i^2 = -1, i etant "l'operateur" imaginaire), tu obtiens les racines suivantes :
rac1/2 = (-b +/- i * sqrt(delta)) / 2a

Version prog, il faut evidemment utiliser une structure ou une classe pour representer un tel nombre ...
Messages postés
8
Date d'inscription
dimanche 26 octobre 2003
Statut
Membre
Dernière intervention
30 octobre 2003

Merci de ton commentaire bouba. J'ai quelques raisons pour expliquer cela :

1) Je n'affiche pas la valeur des racines car... je ne sais pas comment m'y prendre pour utiliser la racine carrée d'un nombre... C'est aussi bête que ça, et je dois dire que le peu de temps auquel je me suis consacré pour trouver la réponse n'a pas été très fructueux... Si on peux m'aider sur ce point, ça serai avec plaisir !!!

2) Dans le calcul de DELTA, en effet les parenthèses sont inutiles, mais je préfère les laisser, rien que pour ça soit plus clair... Je fais toujours ça sur les copies de math, alors pourquoi pas là !

3) Pour le "void", c'est vrai ça fait pas c++, mais bon... Si c'est que ça ! Je dirai que je le met souvent pour bien comprendre qu'il n'y a pas d'argument attendu, mais c'est inutile...

Enfin voilà ce que je peux dire sur ce p'tit prog de rien du tout. Si on peux m'aider pour les racines carrées, c'est cool! Merci pour les remarques !

PS : Si quelqu'un connais aussi le moyen d'afficher le "²" dans la console DOS ( en ASCII donc ), ça serai bien ! Merci à tous !
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Salut, juste quelque remarques, pourquoi tu affiches pas la valeur des racines ???
Autre chose, les parenthèses sont inutiles dans le calcul de delta car * est prioritaire sur -.
Voilà, c'est a pe près tout, eu si le void dans le main(void) c'est du C et pas du C++, ca c'est pour le Style. Alé, bonne Prog.
Bouba

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.