Boucles¶
Notes
N'utilisez pas de navigateur de fichier ! Apprenez à ne vous servir que du terminal.
Compilation (rappels)¶
- Créez un répertoire dans lequel vous placerez tous vos TP de C
- Créez un sous-répertoire dans lequel vous placerez tous vos exercices d'aujourd'hui
- Pour chaque exercice, vous créerez un sous répertoire
- Pour compiler un fichier "exo.c", il faut executer la commande :
gcc -ansi -pedantic -Wall exo.c -o executable
en remplacantexo.c
par votre fichier etexecutable
par le nom du fichier executable que vous voulez creer. Si vous ne mettez pas-o executable
, le fichier produit s'appeleraa.out
Exercice I¶
-
Écrire une fonction qui affiche les nombres de
1
à10
. -
Écrire une fonction qui affiche les nombres compris entre ses deux paramètres
a
etb
de trois en trois. Exemple avec les paramètres(20,10)
:20 19 18 17 16 15 14 13 12 11 10
Faire deux fois l'exercice : avec for
puis avec while
. Bien sur
cela doit aussi fonctionner avec a<b
.
-
Modifier votre fonction pour qu'elle prenne le pas en paramètre. Dans la question précédante, le pas était
3
. Exemple avec(20,10,6)
:20 19 18 17 16 15 14 13 12 11 10
-
Modifier votre
main()
pour qu'il puisse prendre en paramètre les trois valeurs. Si aucun paramètre n'est fourni, les valeurs sont demandées à l'utilisateur avec unscanf()
. Si il n'y en a qu'un, c'est le second paramètre a passer à la fonction, et le premier aura pour valeur par défaut1
et le troisième10
. Enfin si il n'y a que deux paramètres le pas sera demandé à l'utilisateur avec unscanf()
.
Exercice II¶
- Écrire une fonction qui calcule la somme des entiers de
1
à100
. - Modifier la fonction pour qu'elle prenne en paramètre les limites.
- Mofifier votre
main()
pour que les valeurs puissent etre saisies par l'utilisateurs ou passées en paramètre du programme
Exercice III¶
- Écrire une fonction qui prend un entier en paramètre et qui
l'affiche à l'envers. Par exemple, si on l'appelle avec
123456
, la fonction affiche654321
. Pour cela il faudra utiliser la division et le modulo. Rappel :153%10 = 3
et153/10 = 15
- Modifier le
main()
pour que l'entier puisse être saisi par l'utilisateur ou passé en paramètre du programme.
Exercice IV¶
-
Ecrivez une fonction qui prend en paramètre deux caractères, et affiche la suite de caractères qui les séparent dans l'alphabet, en alternant majuscules et minuscules. Le résultat n'est pas sensible à la casse des paramètres. Par exemple
f('a','D');
donne la même chose quef('A','D');
c'est à dire :aBcD
et
f('g','c');
donnegFeDc
Vous êtes encouragés à vous aider de fonctions intermédiaires transformant un caractère quelquonque en minuscule et en majuscule.
-
Modifiez votre
main()
pour que les bornes puissent être saisies comme paramètres du programme et avecscanf()
Fin ?¶
Si vous avez terminé, lisez ce tutoriel sur l'écriture d'un fichier makefile pour l'utilitaire make.
Si ce n'est pas déjà fait, terminer le tp1 (versions itératives des fonctions). Si c'est déjà fait, appelez le chargé de TP, après validation de votre travail, il aura d'autres exercices à vous proposer.