Exercice : Introduction#
La fonction suivante renvoie un entier positif donné par l’utilisateur :
int lit_positif() {
int resultat;
do {
cout << "Saisissez un entier positif : ";
cin >> resultat;
} while (resultat < 0);
return resultat;
}
Dans le fichier
lit_positif.cpp
fourni, définissez une variante de la fonctionlit_positif
ci-dessus pour en faire une procédure avec deux résultats : l’entier positif lu et le nombre d’essais de l’utilisateur.BEGIN SOLUTION
void lit_positif(int &i, int &c) { c = 0; do { cout << "Saisissez un entier positif : "; cin >> i; c++; } while (i < 0); }
END SOLUTION
Complétez le programme principal
main
pour qu’il utilise la procédure précédente puis affiche l’entier lu et le nombre d’erreurs. Attention, bien respecter l’énoncé : c’est lemain
qui doit faire les affichages des résultats, pas la procédure !BEGIN SOLUTION
int main() { int i; int c; lit_positif(i, c); cout << "L'entier vaut " << i << " après " << c << " essai(s)" << endl; return 0; }
END SOLUTION
Compilez et exécutez le programme, et mettez le au point jusqu’à ce qu’il soit correct.
Notes aux enseignants
Ne pas hésiter à marteler qu’une procédure a void
comme type de
retour. De plus, beaucoup d’étudiants ne sont pas très logiques dans
la réalisation de leur procédure. En particulier, certains étudiants
font l’initilisation de la variable du nombre d’erreur dans le
programme principal au lieu de la faire dans la procédure.
Un certain nombre d’étudiants avancent dans le TP sans se rendre compte de leurs erreurs. Ne pas hésiter à passer vérifier l’exercice 1 de tous vos étudiants, même ceux qui avancent vite.
Attention
Dans toute la suite du TP, veillez comme ci-dessus à compiler et exécuter vos programmes au fur et à mesure des étapes pour vous assurer qu’ils sont au point.