Les procédures
Une procédure ressemble à une fonction, avec une différence importante : elle ne renvoie pas de valeur. Elle fait quelque chose : afficher, dessiner, modifier un tableau...
Créer et appeler une procédure
procédure saluer(prenom)
affiche 'Bonjour ' + prenom + ' !'
affiche 'Bienvenue dans CoddyRun.'
fin procédure
appelle saluer('Léa')
appelle saluer('Tom')
On définit la procédure entre procédure et fin procédure, puis on la lance avec le mot-clé appelle.
Une procédure s'appelle toujours avec appelle. Et elle ne contient jamais retourne : c'est réservé aux fonctions.
Fonction ou procédure ?
- Tu as besoin d'un résultat pour continuer (un calcul, une réponse vrai/faux) : écris une fonction.
- Tu veux faire une action (afficher un menu, dessiner, ranger des données) : écris une procédure.
fonction prixTTC(prixHT)
retourne prixHT * 1.2
fin fonction
procédure afficherTicket(article, prixHT)
affiche '--- Ticket ---'
affiche article + ' : ' + prixTTC(prixHT) + ' € TTC'
affiche '--------------'
fin procédure
appelle afficherTicket('Cahier', 5)
Ici, la procédure utilise la fonction : chacune a son rôle.
Question : Comment lance-t-on la procédure afficherMenu() ? — appelle afficherMenu(). Une procédure se lance toujours avec appelle.
Une procédure qui modifie un tableau
Quand on donne un tableau à une procédure, elle travaille sur ce tableau-là, pas sur une copie. Elle peut donc le remplir :
procédure ajouterMultiples(liste, n, combien)
pour i de 1 à combien
liste ajoute n * i
fin pour
fin procédure
multiples est un tableau
appelle ajouterMultiples(multiples, 5, 4)
affiche joindre(multiples, ', ') // 5, 10, 15, 20
Découper un programme
Les procédures servent surtout à organiser un programme. Au lieu d'un long bloc, on écrit des morceaux avec un nom clair :
procédure afficherTitre(texteTitre)
affiche '=============================='
affiche ' ' + majuscules(texteTitre)
affiche '=============================='
fin procédure
procédure afficherRegles()
affiche '1. Devine le nombre secret.'
affiche '2. Tu as 7 essais.'
fin procédure
appelle afficherTitre('Le nombre mystère')
appelle afficherRegles()
Le programme principal se lit alors comme une table des matières. C'est ce qu'on appelle la décomposition : un gros problème devient plusieurs petits problèmes simples.
En résumé
procédure nom(paramètres) ... fin procédure regroupe des instructions.- On la lance avec
appelle nom(...). - Pas de
retourne dans une procédure. - Un tableau donné à une procédure peut être modifié par elle.
- Les procédures découpent un programme en morceaux lisibles.