Skip to content

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 remplacant exo.c par votre fichier et executable par le nom du fichier executable que vous voulez creer. Si vous ne mettez pas -o executable, le fichier produit s'appelera a.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 et b 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 un scanf(). 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éfaut 1 et le troisième 10. Enfin si il n'y a que deux paramètres le pas sera demandé à l'utilisateur avec un scanf().

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 affiche 654321. Pour cela il faudra utiliser la division et le modulo. Rappel : 153%10 = 3 et 153/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 que f('A','D'); c'est à dire :

    aBcD
    

    et f('g','c'); donne

    gFeDc
    

    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 avec scanf()

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.