Objectifs

  • Invoquer une fonction, une procédure.
  • Récupérer le résultat d'une fonction.
  • Écrire seul une procédure de test.

Exercices

Les corrigés de ces exercices ne sont pas fournis. Par contre, des indications sont données vous permettant de vérifier que votre programme est correct.

D'autre part, en cas de difficulté, vous pouvez contacter vos enseignants.

Exercice 1 : Appel de procédure
  • Copiez chez vous le programme suivant : mission1.adb.
  • En ne complétant que les deux zones indiquées dans le programme, faites en sorte qu'il affiche la valeur de la variable X en invoquant la procédure Afficher. Voir page 30 du manuel pour afficher, et page 18 pour invoquer une procédure.
Questions de compréhension
  • Peut-on afficher la valeur de l'argument Arg dans le corps du programme ?
  • Comment afficher la valeur de X² - 12X ? (sans modifier X, ni la procédure Afficher)
Exercice 2 : Appel de fonction
  • Copiez chez vous le programme suivant : mission2.adb. Commencez par corriger l'erreur contenue dans ce programme.
  • Pour l'instant, la fonction Calcul renvoie toujours 0. Complétez le corps du programme pour afficher la valeur renvoyée par la fonction, quelle qu'elle soit. (Page 30 du manuel pour afficher.) Pour tester, vérifiez que votre programme affiche 0. Si vous changez le 0 affecté à la variable Resultat dans la fonction Calcul, en le remplaçant par 99, votre programme doit bien afficher 99.
  • Maintenant, ajoutez à la fonction Calcul un argument nommé Prix. La fonction Calcul doit renvoyer 0 si l'argument Prix est négatif, et 2 * Prix si le prix est positif. Voici le schéma de la fonction Calcul avec argument : Function Calcul
  • Dans le corps du programme, afficher la valeur renvoyée par la fonction en passant en argument la valeur de la variable Y.
  • Essayez votre programme avec différentes valeurs de Y, par exemple -5 (le programme affiche alors 0) et 10 (le programme affiche alors 20).
  • Si tout marche bien, ajoutez maintenant une deuxième fonction Somme qui reçoit deux arguments entiers U et V. Function SommeLa fonction Somme renvoie la somme U1 + V1, où U1 est le résultat de la fonction Calcul lorsque l'argument est U, et V1 est le résultat de la fonction Calcul lorsque l'argument est V. Votre fonction Somme doit donc invoquer deux fois la fonction Calcul. Voici un schéma algorithmique de la fonction Somme : Schéma algorithmique de la fonction Somme
  • Dans le corps du programme, afficher la valeur de Somme pour divers couples d'arguments, par exemple -10 et 5 (le programme affiche 10), -4 et -2 (le programme affiche 0), 8 et 2 (le programme affiche 20).
  • Enfin, effectuer le test suivant : afficher la valeur de Somme lorsque les arguments sont eux-mêmes des appels à la fonction Calcul, cf schéma ci-dessous. Essayer de prévoir à l'avance ce qui va être affiché.Schéma algorithmique de la fonction
Exercice 3 : Procédure de test ou comment récupérer le résultat d'une fonction
  • Copiez chez vous le programme suivant : mission3.adb
  • Avant de l'exécuter, réflechissez à ce qu'il devrait afficher.
  • Compilez-le, exécutez-le et regardez ce qu'il affiche.
  • Corriger la procédure de test pour qu'elle affiche la valeur de la fonction Affine à laquelle on passe les arguments VA, VB, et VX.
  • Si vous avez bien travaillé, votre programme devrait afficher 149.
  • Vérifiez que la fonction Affine apparaît une fois et une seule dans votre procédure de test.
Questions de compréhension
  • Dans le programme initial, avant que vous ne l'ayez modifié, quel était le lien entre la variable Resultat de la fonction Affine et la variable Resultat de la procédure de test ?
  • Si on renomme la variable Resultat de la procédure de test avec un autre nom, doit-on renommer la variable Resultat de la fonction ?
  • Comment le compilateur fait-il pour savoir que VA correspond à l'argument A, VB à l'argument B et VX à l'argument X ?

Acteur utilisé

Bilan

Vous savez immédiatement :
  • invoquer une procédure en lui passant des arguments.
  • invoquer une fonction avec arguments, et récupérer son résultat.
  • écrire la procédure de test d'une fonction donnée.