Genie logiciel igl234
Thème :
Junior
1 vues ·2/19 leçons

Passage d’arguments et Sous-Procédures

I. Passage d’arguments

Reprenons l’exemple précédent. Puisque avant chaque question, on doit écrire un message, autant que cette écriture du message figure directement dans la fonction appelée. Cela implique deux choses :

  1. Lorsqu’on appelle la fonction, on doit lui préciser quel message elle doit afficher avant de lire la réponse.
  2. La fonction doit être prête à recevoir ce message, et être capable de le récupérer.

En langage algorithmique, ce message devient un argument de la fonction.

Fonction RepOuiNon (Msg : char) : char
  Ecrire (Msg);
  Truc ← "";
  TantQue (Truc <> "Oui") et (Truc <> "Non")
    Ecrire ("Tapez Oui ou Non");
    Lire Truc;
  FinTantQue
  Renvoyer Truc;
Fin Fonction

Dans la déclaration, la variable Msg signale qu’un argument doit lui être envoyé à chaque appel. Les appels se simplifient :

Rep1 ← RepOuiNon("Etes-vous marié ?");
Rep2 ← RepOuiNon("Avez-vous des enfants ?");

On peut passer autant d’arguments qu’on veut. Par exemple, une fonction calculant une moyenne sur un tableau a besoin d’au moins deux arguments (le tableau et sa taille).

II. Sous-Procédures

Il peut arriver d’avoir à réaliser des tâches répétitives qui n’ont pas pour rôle de générer une valeur particulière (ex: effacer l’écran ou saisir plusieurs valeurs dans un tableau). Une fonction ne peut renvoyer qu’une seule valeur à la fois, elle ne peut donc pas renvoyer un tableau entier.

Pour cela on utilise des sous-procédures. La fonction n’est qu’un cas particulier de la sous-procédure (celui où doit être renvoyée une valeur unique).

Structure

Procédure Bidule(...)
...
Fin Procédure

L’appel devient une instruction autonome :

Appeler Bidule(...)

Paramètres de transmission

Les valeurs qui circulent depuis la procédure appelante vers la sous-procédure se nomment des paramètres en entrée. Les valeurs retournées s’appellent des paramètres en sortie. On parlera de paramètres transmis :

  • par valeur (correspondant à un paramètre en entrée)
  • par référence (correspondant à un paramètre en sortie)

Une sous-procédure avec des paramètres par référence peut modifier des variables (ou des tableaux) de la procédure appelante.

Procédure SaisieTab(T() en numérique par référence, N en entier par valeur)
  Pour i ← 0 à N-1
    Ecrire ("Saisie de la valeur n° ", i + 1);
    Lire T(i);
Fin Procédure

Appels :

Tableau Truc(5), Machin(12) en Entier
...
Appeler SaisieTab (Truc, 5)
Appeler SaisieTab (Machin, 12)

III. Travaux dirigés

Objectifs : Appliquer la démarche de programmation modulaire pour construire des algorithmes structurés en procédures et fonctions.

  • Savoir le mode de passage de paramètre d’une procédure et une fonction.
  • Apprendre et distinguer l’appel d’une procédure et d’une fonction.
  1. Exercice 1 : Ecrire une procédure puissance qui calcule c = a^b = a × a × ... × a (b fois) ; a et b étant des entiers positifs. Tester.
  2. Exercice 2 : Ecrire une procédure permut qui permet d’échanger les valeurs de 2 entiers a et b. Tester.
  3. Exercice 3 : Ecrire une fonction minimum qui retourne le minimum de 2 entiers a et b. Tester.
  4. Exercice 4 : On appelle bigramme une suite de deux lettres. Ecrire une procédure qui calcule le nombre d’occurrences d’un bigramme dans une chaîne de caractères. Peut-on la transformer en fonction ?
  5. Exercice 5 : Ecrire une fonction Triangle qui permet de vérifier si les 3 nombres a, b et c peuvent être les mesures des côtés d’un triangle rectangle.
  6. Exercice 6 : Ecrire une procédure ou fonction permettant de saisir deux nombres puis qui affiche la valeur absolue de leur différence.
  7. Exercice 7 : Ecrire une fonction qui récupère un réel x puis affiche la valeur d’une fonction mathématique donnée.
  8. Exercice 8 (Suite) : Développer une fonction qui calcule la suite numérique f(n + 1) = f(n) + 7.
  9. Exercice 8 (Max) : Développer une fonction avec trois paramètres de type entier qui retourne le plus grand.
  10. Exercice 9 : Développer une procédure ou fonction calculant une fonction à intervalles.
  11. Exercice 10 : Développer une procédure qui résout une équation du premier degré.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur Passage d'arguments et Sous-Procédures. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.