Correction des exercices
ANNEXE
326
Si l’on suppose que l’instruction retourne peut mentinner, non pas seulement une variable,
mais aussi une expression, on peut se passer de la variable locale TTC en écrivant
directement :
réel fonction prixTTC (réel HT, réel taux)
{ retourne ( 1. + taux) / 100.
}
Exercice 8.3
Nous utilisons une variable booléenne locale nommée voy, dans laquelle nous plaçons la
valeur vrai si le caractère c est une voyelle et la valeur faux dans le cas contraire. Voici ce
que pourrait être notre fonction, accompagnée d’un petit programme l’utilisant :
booléen fonction estVoyelle (caractère c)
{ booléen voy
si c = ’a’ ou c = ’e’ ou c = ’i’ ou c = ’o’ ou c = ’u’ ou c = ’y’
alors voy := vrai
sinon voy := faux
retourne voy
}
caractère car
écrire «donnez un caratère»
lire car
si estVoyelle (car) alors écrire «c’est une voyelle»
sinon écrire «ce n’est pas une voyelle»
Là encore, si l’on suppose que l’instruction retourne peut renvoyer une expression, on peut
fournir dirrectement le résultat sous forme d’une expression de type booléen, en procédant
ainsi :
booléen fonction estVoyelle (caractère c)
{ retourne (c = ’a’ ou c = ’e’ ou c = ’i’ ou c = ’o’ ou c = ’u’ ou c = ’y’)
}
Exercice 8.4
La valeur du premier paramètre aurait été recopiée localement à la fonction ; en revanche, le
second paramètre aurait désigné la variable fournie en second paramètre de l’appel. Dans ces
conditions, on aurait procédé à l’échange de la copie du premier paramètre effectif avec le
second.
En définitif, un appel tel que :
echange (n, p)
conduirait à placer dans p la valeur de n.
Exercice 8.5
L’énoncé ne précise pas si la fonction doit fournir un résultat. S’il s’agissait d’une simple
fonction de recherche de maximum, ce dernier pourrait être fourni en résultat. Mais, ici, il
Précédent

- 349/370

Suivant