Travail à Faire:
Pour tester les fonctions suivantes, appelez-les dans la fonction main
de votre programme:
min2
qui reçoit deux arguments de type float
et retourne le plus petit d'entre eux. Le type de retour devra donc être float
.min3
qui prend trois arguments de type int
et retourne le plus petit d'entre eux. Comment utiliser la fonction min2
du point précédent pour écrire le corps de min3
en une ligne ?arrondi
qui prend un argument de type float
et retourne l'argument arrondi à deux décimales.traduction
qui prend en argument un entier entre 0 et 6 et l'affiche à l'écran en toutes lettres (zero, un, ..., six). Quelles sont les différences entre cette fonction et les précédentes ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
float min2(float a, float b) { if (a < b) return a; else return b; } Pour calculer le minimum de 3 nombres, on peut, par exemple, calculer d'abord le minimum des 2 premiers, et ensuite calculer le minimum de ce résultat et du dernier nombre. Comme on a déjà écrit une fonction retournant le minimum de 2 nombres au point précédent, on peut donc la réutiliser. int min3(int a, int b, int c) { return int(min2(min2(a, b), c)); } Pour arrondir un nombre à 2 décimales, il suffit de le multiplier par 100, le convertir en int, le reconvertir en float et le diviser par 100, comme nous l'avions vu à la série 2. Lorsqu'on divise 2 nombres, si l'un d'entre eux est un float, le compilateur effectuera une division réelle. Dans le corrigé, on écrit la constante 100 100.0 afin que le compilateur la considère comme une constante float, ce qui nous évite de faire la conversion explicite. float arrondi(float a) { return int(a * 100) / 100.0; } Il n'y pas d'autre manière que de fournir un texte particulier pour chaque nombre. La fonction peut aussi s'écrire avec des ifs. void traduction(int n) { switch (n) { case 0: cout << "zero"; break; case 1: cout << "un"; break; case 2: cout << "deux"; break; case 3: cout << "trois"; break; case 4: cout << "quatre"; break; case 5: cout << "cinq"; break; case 6: cout << "six"; break; } } |