Skip to content

Latest commit

 

History

History
105 lines (67 loc) · 2.5 KB

File metadata and controls

105 lines (67 loc) · 2.5 KB

TP C++ n°1

Résolution d'une équation du second degré

Objectif

Réaliser un programme structuré en fonctions qui résout une équation du second degré et traite les cas particuliers.

Mise en contexte

On souhaite automatiser la résolution de l'équation :

$a x^2 + b x + c = 0$

Le programme devra distinguer les cas mathématiques classiques (degré 2, degré 1, cas impossible).

Notions C++

  • fonctions ;
  • conditions (if, else if, else) ;
  • types numériques (double) ;
  • entrées/sorties standard (cin, cout).

Pré-requis

  • variables et expressions en C++ ;
  • structures conditionnelles ;
  • compilation en ligne de commande.

Travail demandé

É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.

1. Analyse des cas

Traiter explicitement :

  • a != 0 et delta > 0 ;
  • a != 0 et delta = 0 ;
  • a != 0 et delta < 0 ;
  • a = 0 et b != 0 ;
  • a = 0 et b = 0.

2. Implémentation

Implémenter une fonction de résolution (fichier source dédié) et un programme de test (main).

3. Robustesse

Ajouter une tolérance epsilon pour les comparaisons de nombres réels (tests de a et delta).

4. Validation

Tester les jeux de données imposés et vérifier la cohérence des sorties.

Contraintes techniques

  • Compilateur GNU C++ ;
  • Système d'exploitation Linux, Mac OS X ou Ms-Windows ;
  • Standard recommandé : C++11 ou supérieur.

Exemples d'entrée/sortie

Exemple 1 :

  • Entrée : a=1 b=0 c=-1 ;
  • Sortie attendue : x1 = 1 et x2 = -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.

Compilation

g++ -std=c++11 -Wall -Wextra -o test_equ2 test_equ2.cxx equ2.cxx

Livrables

  • equ2.h ;
  • equ2.cxx ;
  • test_equ2.cxx ;
  • README.md (commande de compilation + jeux de tests exécutés).

Extensions possibles (bonus)

  • 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.

Critères d'évaluation

  • Exactitude des résultats ;
  • Robustesse sur les cas limites ;
  • Qualité du code et de l'organisation des fichiers ;
  • Qualité des tests et du README.