Boucles


Cliquez ici pour retirer la feuille de style si vous souhaitez imprimer ce document (ou en cas de problème d'affichage).
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" et 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 majuscule et minuscule. 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é à 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 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, il aura d'autres exercices à vous proposer.