Exercice : Introduction

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;
}
  1. Dans le fichier lit_positif.cpp fourni, définissez une variante de la fonction lit_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

  2. 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 le main 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

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