begin process at 2012 05 27 19:04:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > RESOLUTION POLYNOME

RESOLUTION POLYNOME


 Description

Résoux un system d'inconnu du second degrès (polynome sous la forme ax²+bx+c=0)
je vien de le faire en 10 minutes car j'en avait besoin, ce code n'a aucune prétention et est d'un niveau plus que basic

Source

  • /////////////////////////////////////////////
  • /*
  • Resolution de polynome (equation second degres) fait par SfyLer en C++
  • admin@cxczone.com
  • Compilateur: Visual C++, gcc/devC++
  • /////////////////////////////////////////////*/
  • #include <math.h>
  • #include <stdlib.h>
  • #include <iostream.h>
  • //// déclarations fonctions
  • void Bienvenue();
  • int sortiee();
  • //espaces de stockages des variables
  • namespace var {
  • float a;
  • float b;
  • float c;
  • float result;
  • int sortie = 0;
  • int classteste;
  • }
  • //class résolution
  • class resolution {
  • public:
  • float verif(float a, float b, float c); //Vérifie si il y as une solution
  • float calculer();//si oui alors on les calcules
  • private:
  • float Ca;
  • float Cb;
  • float Cc;
  • };
  • resolution polynome;
  • //main
  • int main(void) {
  • Bienvenue();
  • using var::a;
  • using var::b;
  • using var::c;
  • using var::sortie;
  • using var::classteste;
  • //execution du programme
  • do {
  • cout << "\na: ";
  • cin >> a;
  • cout << "\nb: ";
  • cin >> b;
  • cout << "\nc: ";
  • cin >> c;
  • polynome.verif(a,b,c);
  • sortiee();
  • //apres quitter !
  • }while(sortie != 1);
  • return 0;
  • }
  • //sortie du prog
  • int sortiee() {
  • cout << "\nVoulez vous quitter ? (o/n): ";
  • char confirm;
  • cin >> confirm;
  • using var::sortie;
  • if(confirm == 'o' ){ cout << "\nA bientot ! \n"; sortie = 1;}
  • else { Bienvenue(); }
  • return 0;
  • }
  • //msg bienvenue
  • void Bienvenue() {
  • system("cls"); // clear au lieu de cls pour système unix
  • cout << "\n\n\t\tResolution polynome par SfyLer (C++)\n";
  • cout << "\n\n\tResolution d'equation du second degres du type ax²+bx+c=0\n";
  • }
  • //définition fonctions de la class resolution:
  • float resolution::verif(float a, float b, float c){
  • Ca = a;
  • Cb = b;
  • Cc = c;
  • cout << "\nCalcul de Beta : ";
  • using var::result;
  • using var::classteste;
  • result = b * b - 4 * a*c;
  • cout << result;
  • if(result == 0) {
  • cout << "\nUne solution !\n";
  • classteste = 1;
  • polynome.calculer();
  • }
  • else if(result > 0) {
  • cout << "\nDeux solutions !\n";
  • classteste = 2;
  • polynome.calculer();
  • }
  • else if(result < 0) {
  • cout << "\nPas de solution !\n";
  • classteste = 0;
  • }
  • return 0;
  • }
  • //Fonction calculé
  • float resolution::calculer(){
  • using var::classteste;
  • double racine;
  • racine = var::result;
  • //sqrt(racine) pour calculer la racine
  • double resultatfinal1 = 0;
  • double resultatfinal2 = 0;
  • double FAC = 0;
  • if(classteste == 2) { //vérifie le nb de solution
  • cout << "\nSolution 1, x1 = "; // (-b-RACINEdelta)/(2a)
  • resultatfinal1 = (-Cb - sqrt(racine))/(2*Ca);
  • cout << resultatfinal1;
  • cout << "\nSolution 2, x2 = ";
  • resultatfinal2 = (-Cb + sqrt(racine))/(2*Ca);
  • cout << resultatfinal2;
  • if(Ca > 0 ) {
  • cout << "\nForme de la courbe: Positive, Neguative, Positive"; }
  • if(Ca < 0 ) {
  • cout << "\nForme de la courbe: Neguative, Positive, Neguative"; }
  • }
  • cout << "\nFactorisation: ";
  • cout << Ca << "(X-(" << resultatfinal1 << "))(X-(" << resultatfinal2 << "))";
  • if(classteste == 1) {
  • cout << "\nSolution , x = "; // (-b)/(2a)
  • resultatfinal1 = (-Cb)/(2*Ca);
  • cout << resultatfinal1;
  • if(Ca > 0 ) {
  • cout << "\nForme de la courbe: Decroissant puis Croissant"; }
  • if(Ca < 0 ) {
  • cout << "\nForme de la courbe: Croissant puis Decroissant"; }
  • }
  • return 0;
  • }
/////////////////////////////////////////////
/*
Resolution de polynome (equation second degres) fait par SfyLer en C++
admin@cxczone.com
Compilateur: Visual C++, gcc/devC++
/////////////////////////////////////////////*/
#include <math.h>
#include <stdlib.h>
#include <iostream.h>


//// déclarations fonctions 
void Bienvenue();
int sortiee();

//espaces de stockages des variables
namespace var {
float a;
float b;
float c;
float result;
int sortie = 0;
int classteste;
}

//class résolution
class resolution {
public:
	float verif(float a, float b, float c); //Vérifie si il y as une solution
  	float calculer();//si oui alors on les calcules
private:
	float Ca;
	float Cb;
	float Cc;

};
resolution polynome;

//main
int main(void) {
Bienvenue();
using var::a;
using var::b;
using var::c;
using var::sortie;
using var::classteste;
//execution du programme

do {
cout << "\na: ";
cin >> a;
cout << "\nb: ";
cin >> b;
cout << "\nc: ";
cin >> c;

polynome.verif(a,b,c);

sortiee();

//apres quitter !
}while(sortie != 1);
	return 0;
}


//sortie du prog
int sortiee() {
	cout << "\nVoulez vous quitter ? (o/n): ";
	char confirm;
	cin >> confirm;
	using var::sortie;
	if(confirm == 'o' ){ cout << "\nA bientot ! \n"; sortie = 1;}
	else { Bienvenue(); }

	return 0;
}

//msg bienvenue
void Bienvenue() { 
	system("cls"); // clear au lieu de cls pour système unix
	cout << "\n\n\t\tResolution polynome par SfyLer (C++)\n";
	cout << "\n\n\tResolution d'equation du second degres du type ax²+bx+c=0\n";
}

//définition fonctions de la class resolution:

float resolution::verif(float a, float b, float c){
	Ca = a;
 Cb = b;
	Cc = c;
cout << "\nCalcul de Beta : ";
using var::result;
using var::classteste;
result = b * b - 4 * a*c;
cout << result;
if(result == 0) {
	cout << "\nUne solution !\n";
	classteste = 1;
	polynome.calculer();

}
else if(result > 0) { 
	cout << "\nDeux solutions !\n";
	classteste = 2;
	polynome.calculer();

}
else if(result < 0) { 
	cout << "\nPas de solution !\n";
	classteste = 0;

}
return 0;
}

//Fonction calculé
float resolution::calculer(){
	using var::classteste;

	double racine;
	racine = var::result;
	//sqrt(racine) pour calculer la racine
	double resultatfinal1 = 0;
	double resultatfinal2 = 0;
		double FAC = 0;
	if(classteste == 2) { //vérifie le nb de solution
	cout << "\nSolution 1, x1 = "; // (-b-RACINEdelta)/(2a)
	
	resultatfinal1 = (-Cb - sqrt(racine))/(2*Ca);
	cout << resultatfinal1;

	cout << "\nSolution 2, x2 = ";
	resultatfinal2 = (-Cb + sqrt(racine))/(2*Ca);
	cout << resultatfinal2;
	if(Ca > 0 ) { 
		cout << "\nForme de la courbe: Positive, Neguative, Positive"; }
	if(Ca < 0 ) { 
		cout << "\nForme de la courbe: Neguative, Positive, Neguative"; }

	}
	cout << "\nFactorisation: ";
	cout << Ca << "(X-(" << resultatfinal1 << "))(X-(" << resultatfinal2 << "))";

	if(classteste == 1) {
	cout << "\nSolution , x = "; // (-b)/(2a)
	
	resultatfinal1 = (-Cb)/(2*Ca);
	cout << resultatfinal1;
		if(Ca > 0 ) { 
		cout << "\nForme de la courbe: Decroissant puis Croissant"; }
	if(Ca < 0 ) { 
		cout << "\nForme de la courbe: Croissant puis Decroissant"; }
	}



	return 0;
}



 Sources du même auteur

CHANGER HEURE UNIX
Source avec Zip BOT IRC WINDOWS/LINUX [GCC]
SERVEUR POUR CLIENT TELNET [G++]

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de ilaza le 21/11/2003 12:37:19

oui il est pas mal ton algo
peux tu resoudre l'eqution suivant:  aX3+bx²+cx+d=0
car j'en ai besoin, merci

Commentaire de Kirua le 21/11/2003 17:04:15

a, b, c
res1 = (-b + sqrt(b*b-4*a*c)) / 2*a;
res2 = (-b - sqrt(b*b-4*a*c)) / 2*a;

c t plus court lol
à la rigueur si tu veux juste les réels tu fais une if:

double r = b*b - 4*a*c;
if(r &gt; 0) //deux solutions
if(r == 0) sol unique: -b/2*a;
if(r &lt; 0) pas de solution réelle

pour le second degré ça suffit amplement.

Commentaire de SfyLer le 21/11/2003 18:21:03

wé kirua mais jvoulai prog objet pour les réutiliser kan jaurais appri a faire les equation troisieme degres (attend encore un peu ilaza :p)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,671 sec (3)

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