Exercice langage C: Fonctions simples
Rédigé par GC Team, Publié le 17 Mars 2012, Mise à jour le Samedi, 17 Décembre 2022 21:00Travail à Faire:
Pour tester les fonctions suivantes, appelez-les dans la fonction main
de votre programme:
- Ecrivez une fonction
min2
qui reçoit deux arguments de typefloat
et retourne le plus petit d'entre eux. Le type de retour devra donc êtrefloat
. - Ecrivez une fonction
min3
qui prend trois arguments de typeint
et retourne le plus petit d'entre eux. Comment utiliser la fonctionmin2
du point précédent pour écrire le corps demin3
en une ligne ? - Ecrivez une fonction
arrondi
qui prend un argument de typefloat
et retourne l'argument arrondi à deux décimales. - Ecrivez une fonction
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 ?
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;
}
}