Réaliser un programme structuré en fonctions qui résout une équation du second degré et traite les cas particuliers.
On souhaite automatiser la résolution de l'équation :
Le programme devra distinguer les cas mathématiques classiques (degré 2, degré 1, cas impossible).
- fonctions ;
- conditions (
if,else if,else) ; - types numériques (
double) ; - entrées/sorties standard (
cin,cout).
- variables et expressions en C++ ;
- structures conditionnelles ;
- compilation en ligne de commande.
Écrire une fonction de résolution et un programme principal permettant de saisir a, b, c, puis d'afficher le type de solution et les valeurs calculées.
Traiter explicitement :
a != 0etdelta > 0;a != 0etdelta = 0;a != 0etdelta < 0;a = 0etb != 0;a = 0etb = 0.
Implémenter une fonction de résolution (fichier source dédié) et un programme de test (main).
Ajouter une tolérance epsilon pour les comparaisons de nombres réels (tests de a et delta).
Tester les jeux de données imposés et vérifier la cohérence des sorties.
- Compilateur GNU C++ ;
- Système d'exploitation Linux, Mac OS X ou Ms-Windows ;
- Standard recommandé : C++11 ou supérieur.
Exemple 1 :
- Entrée :
a=1 b=0 c=-1; - Sortie attendue :
x1 = 1etx2 = -1.
Exemple 2 :
- Entrée :
a=1 b=2 c=1; - Sortie attendue : racine double
x = -1.
Exemple 3 :
- Entrée :
a=0 b=2 c=-4; - Sortie attendue : équation du premier degré,
x = 2.
g++ -std=c++11 -Wall -Wextra -o test_equ2 test_equ2.cxx equ2.cxxequ2.h;equ2.cxx;test_equ2.cxx;README.md(commande de compilation + jeux de tests exécutés).
- Retourner les résultats dans une structure dédiée plutôt que d'afficher directement dans la fonction de calcul ;
- Ajouter un mode de test automatisé avec plusieurs cas prédéfinis.
- Exactitude des résultats ;
- Robustesse sur les cas limites ;
- Qualité du code et de l'organisation des fichiers ;
- Qualité des tests et du README.