Les fonctions
Tu utilises déjà des fonctions toutes prêtes : longueur, hasard, majuscules... Dans ce cours, tu vas apprendre à créer les tiennes.
Une fonction, c'est une petite machine : on lui donne des valeurs (les paramètres), elle fait un calcul et renvoie un résultat.
Créer une fonction
fonction carre(n)
retourne n * n
fin fonction
affiche carre(5) // 25
affiche carre(12) // 144
fonction carre(n) : le nom de la fonction, puis ses paramètres entre parenthèses ;retourne : la valeur renvoyée ;fin fonction : la fin de la définition.
Une fois écrite, la fonction s'utilise partout où on attend une valeur : dans un affiche, un calcul, une condition...
Plusieurs paramètres
fonction aireRectangle(largeur, hauteur)
retourne largeur * hauteur
fin fonction
surface est un nombre
surface vaut aireRectangle(4, 7)
affiche 'Surface : ' + surface + ' m²'
Les valeurs sont données dans l'ordre : 4 va dans largeur, 7 dans hauteur. Le nombre d'arguments doit correspondre exactement à la définition.
Question : Que renvoie aireRectangle(3, 3) + aireRectangle(2, 5) ? — 19. 3 × 3 = 9, puis 2 × 5 = 10 : au total 19.
Une fonction peut décider
retourne arrête la fonction immédiatement. On peut donc en avoir plusieurs, dans des conditions :
fonction mention(note)
si note >= 16 alors
retourne 'Très bien'
fin si
si note >= 14 alors
retourne 'Bien'
fin si
si note >= 10 alors
retourne 'Passable'
fin si
retourne 'Insuffisant'
fin fonction
affiche mention(15) // Bien
affiche mention(8) // Insuffisant
Une fonction peut aussi renvoyer vrai ou faux. C'est très lisible dans un si :
fonction estPair(n)
retourne n mod 2 = 0
fin fonction
pour i de 1 à 6
si estPair(i) alors
affiche i + ' est pair'
fin si
fin pour
Les variables locales
Les variables déclarées dans une fonction n'existent que pendant son exécution : elles sont locales. Déclare toujours dans la fonction les variables dont elle a besoin.
fonction totalTableau(liste)
total est un nombre vaut 0
pour i de 0 à longueur(liste) - 1
total ajoute liste[i]
fin pour
retourne total
fin fonction
ventes est un tableau vaut [120, 80, 45]
affiche 'Ventes de la semaine : ' + totalTableau(ventes) + ' €'
Le nom d'une fonction doit être unique : il ne peut pas reprendre un mot du langage, ni une fonction déjà fournie par CoddyRun (somme, moyenne, longueur...). C'est pour ça qu'on a appelé la nôtre totalTableau.
Renvoyer plusieurs valeurs
Une fonction ne renvoie qu'une valeur. Pour en renvoyer plusieurs, on les range dans un enregistrement :
fonction statistiques(liste)
resultat est un enregistrement
resultat.mini vaut liste[0]
resultat.maxi vaut liste[0]
pour i de 1 à longueur(liste) - 1
si liste[i] < resultat.mini alors
resultat.mini vaut liste[i]
fin si
si liste[i] > resultat.maxi alors
resultat.maxi vaut liste[i]
fin si
fin pour
retourne resultat
fin fonction
notes est un tableau vaut [12, 7, 18, 10]
bilan est un enregistrement
bilan vaut statistiques(notes)
affiche 'Plus petite : ' + bilan.mini + ', plus grande : ' + bilan.maxi
Une fonction peut appeler une autre fonction, et même s'appeler elle-même : c'est la récursivité. Pense alors à prévoir un cas où elle s'arrête !
En résumé
fonction nom(paramètres) ... retourne valeur ... fin fonction.- On l'utilise dans une expression :
x vaut carre(5). retourne renvoie la valeur et termine la fonction.- Déclare les variables de travail dans la fonction : elles sont locales.
- Pour renvoyer plusieurs valeurs, renvoie un enregistrement.