Rado A. Rakotonarivo

ATER (Attaché Temporaire d'Enseignement et de Recherche), IRIF, Université de Paris, France

raktn at irif.fr

« Retour

Vous trouverez les énoncés des TD sur le moodle du cours ici.

TD 3 : variables impératives, structure de contrôle if et l'itération for

Expressions

Il s'agir ici de regarder la priorité des opérations à effectuer. De manière générale, s'il n'y a pas d'ambiguïté, les parenthèses peuvent être enlevées.

On fait la remarque suivante par rapport à la division / qui est ici une division entière : si x et y sont tous les deux des entiers, alors la division x/y est une division entière ou division euclidienne (plus de détails ici). Le résultat admis est le quotient euclidien. Du coup ici, si x = 3 et y = 5, le résultat de la division x/y vaut 0.

À vous de jouer.

Execution conditionnelle d'instructions : if

En programmation impérative, les instructions sont executées ligne par ligne et les unes à la suite des autres. On peut cependant conditionner l'execution d'une certaine instruction ou d'un certain bloc d'instructions (en C, les blocs d'instructions sont tout simplement une suite d'instructions délimitée par des accolades { }). C'est-à-dire que si une certaine condition est vérifiée, on choisira d'executer un bloc plutôt qu'un autre. La structure de contrôle if permet de faire cela.

Voyons cela de plus près avec notre exercice.

Algorithme                               En C
----------                               ----
debut:                                   int main() {
  age = 19                                  int age = 19;
  si (age >= 18) alors:                     if (age >= 18) {
    afficher "vous êtes majeur"               printf("vous êtes majeur\n");
  sinon:                                    } else {
    afficher "vous êtes mineur"               printf("vous êtes mineur\n");
  fin si                                    }
:fin                                        return EXIT_SUCCESS;
                                          }

Itération : l'instrucion for

On voudrait maintenant pouvoir répéter un bloc d'instructions, ou en d'autres termes répéter un certain nombre de fois les mêmes instruction. Pour cela, on utilise des boucles. Par exemple pour afficher 5 fois le mot "Bonjour", on mettra l'instruction printf("Bonjour\n"); à l'intérieur d'une boucle for.

Une itération correspond à une execution, d'un bloc d'instruction dans une boucle : si l'on veut répéter 5 fois, on aura 5 itérations.

Voyons alors comment utiliser la boucle for avec tout ce que l'on a appris. Le principe du l'exercice du TD est exactement le même ;).

12  // debut du programme...
13  int i; // On déclare notre variable de boucle
14  for (i = 0; i < 5; i++) {
15    printf("Bonjour\n");
16  }
17  printf("A la fin de la boucle i vaut %d\n", i);
18  // suite du programme...

Ainsi, on est maintenant capable d'expliquer chaque argument de la boucle for.

Trace du programme
lignes | i | Affichage (sortie écran)
-------------------------------------
13     | ? |
14     | 0 |
15     |   | Bonjour
16     | 1 |
15     |   | Bonjour
16     | 2 |
15     |   | Bonjour
16     | 3 |
15     |   | Bonjour
16     | 4 |
15     |   | Bonjour
16     | 5 |
17     |   | A la fin de la boucle i vaut 5

Quand i vaudra 5, la condition d'arret i < 5 n'est plus vérifiée du coup on sort alors de notre boucle, et la valeur de i à la sortie est donc 5.

Pour le reste ce sera à vous de jouer :).