Vous êtes sur la page 1sur 2

IUT Dijon AP4

Département Informatique Programmation C++

Notions à acquérir lors de ces 2 premiers TDs  :


 Saisie, compilation, édition de liens, debug (points d’arrêt, visu de la valeur des variables
avec déplacement de la souris) d’un programme sous Builder en mode console
 Notion de projet et d’unités (autant que de modules)
 Vérification sur le disque des fichiers présents pour un projet (avant et après
compilation + édition de liens)
 Indentation des programmes pour une meilleure lisibilité
 Lecture et écriture d’un programme avec une seule fonction (main)
 Composition d’une fonction : entête puis bloc composé de déclarations et d’instructions
 Déclaration de variables
 Instructions : séquence, alternative, répétitive.

Un exercice d’application noté vous sera proposé à la fin du 2 ème TD pour contrôler vos
connaissances. Il portera sur les notions précédentes.

Exercice 1 (mise en bouche)


Voici un programme qui calcule les racines d'une équation du second degré (on ne demande pas la
valeur des racines si le discriminant est strictement négatif). Les trois coefficients réels sont saisis au
clavier par l'utilisateur. Pour la racine carrée, on utilise la fonction sqrt de "cmath" de prototype :
double sqrt(double).
#include <iostream>
#include <cmath>

using namespace std;

int main(int argc, char* argv[])


{
Float A, B, C ;
cout << "Saisir les 3 coefficients : ";
cin >> A >> B >> C ;
if (A==0) // Equation de degré 1
if (B==0)
if (C==0)
cout << endl << "Tout x est solution." << endl ;
else
cout << endl << "Aucune solution." << endl;
else
cout << endl << "L'unique solution est " << -C/B << "." << endl;
else // Equation de degre 2
{
float Delta;
Delta=B*B-(4*A*C);
if (Delta<0)
cout << endl << "Aucune solution reelle." << endl;
else if (Delta==0)
cout << endl << "L'unique solution est " << -B/(2*A) << "." << endl;
else // Delta>0
{
float RacDelta ;
RacDelta=(float)sqrt((double)Delta);
cout << endl << "La premiere solution est " << (-B+RacDelta)/(2*A) << ", la
seconde est " << (-B-RacDelta)/(2*A) << "." << endl ;

Semaines 9 et 10 1 TDs 01-02


IUT Dijon AP4
Département Informatique Programmation C++
}
}
fflush(stdin) ;
cin.get() ;
return 0;
}

On vous demande de comprendre ce programme, de le saisir sous Builder (version console),


d’effectuer la compilation et l’édition de liens, puis de l’exécuter.
La manip est la suivante :
 lancer Builder
 menu Fichier -> Tout fermer
 menu Fichier -> Nouveau -> Autre (choisir Expert Console avec options C++ et appli console)
 menu Fichier -> Enregistrer le projet sous (donner le nom du fichier source, puis celui du
fichier projet)
 saisie du programme avec enregistrement régulier du fichier source
 compilation et édition de liens
 exécution.

Exercice 1bis
Reprendre le même exercice en séparant la partie traitement de la partie affichage.

Exercice 2 (séquence d’instructions)


Ecrire un programme qui demande l’age à l’utilisateur et qui affiche son année de naissance.

Exercice 3 (alternative)
Rédiger un programme qui saisit un entier, puis qui affiche si cet entier est pair ou impair.

Exercice 4 (répétitive)
Ecrire un programme permettant de calculer la dévaluation d'un capital sur un nombre d'années donné.
L'affichage devra donner le capital restant après chaque année. La méthode de dévaluation dégressive
proportionnelle sera utilisée. Elle est la suivante : un facteur de dépréciation variable est calculé par
une fraction dont le dénominateur est la somme des entiers de 1 à n (si n est le nombre d'années). Le
numérateur vaut n la première année, n-1 la deuxième, ... La valeur de dépréciation annuelle est
obtenue en multipliant ce facteur par la valeur de référence.
Exemple : Pour un capital de 8000 € amorti sur 10 ans, voici le résultat.
1+2+3+...+10=55
 1ère année : dépréciation de (10/55)*8000=1454.55 €
 2ème année : dépréciation de (9/55)*8000=1309.09 €
 ...

Remarque : ce programme devra permettre de calculer plusieurs dévaluations tant que l'utilisateur le
souhaite.

Semaines 9 et 10 2 TDs 01-02

Vous aimerez peut-être aussi