Cours 06 while, conditions booléennes et éléments d’algorithmes

photo By-Nc-Sa par davecobb
, par
Le cours 6 portait sur l’introduction de la boucle while, l’écriture de conditions booléennes et quelques éléments d’algorithmique (quels outils utiliser pour quels problèmes).
Parmi les exemples de boucle while, nous avons :
cherché un diviseur à un nombre pour savoir s’il est premier (voir Test de primalité)
utilisé une boucle while pour interagir avec l’utilisateur (boucle événementielle). Le programme utilisé propose deux nombres pris au hasard à l’utilisateur et lui demande d’en calculer mentalement l’addition. Ce petit jeu de calcul mental continue tant que l’utilisateur le souhaite (grâce à la boucle while). Le code complet est fourni plus bas.
utilisé une boucle while pour programmer une attente active : attendre qu’une certaine condition ayant des paramètres extérieurs au programme (ici l’heure système) devienne vraie.
Calcul mental (boucle évenementielle)
- #include <stdlib.h> /* EXIT_SUCCESS */
- #include <stdio.h> /* printf, scanf */
- #include <time.h> /* time */
- /* declaration de constantes et types utilisateurs */
- #define TRUE 1
- #define FALSE 0
- #define NBMAX 100
- /* declaration de fonctions utilisateurs */
- int main()
- {
- int x; /* nombre au hasard */
- int y; /* autre nombre au hasard */
- int choix; /* choix de l'utilisateur */
- int continuer = TRUE; /* TRUE s'il faut continuer a jouer */
- int essais = 0; /* nombre d'essais */
- int succes = 0; /* nombre de reponses justes */
- int debut; /* debut en temps standard */
- int duree; /* duree en secondes */
- /* initialisation du generateur de nombres pseudo-aleatoires */
- /* bienvenue */
- /* partie */
- while(continuer) /* le joueur veut faire un nouvel essai */
- {
- essais = essais + 1;
- /* tirage de x */
- /* tirage de y */
- /* question */
- if(x + y == choix) /* trouve */
- {
- succes = succes + 1;
- }
- else /* pas trouve */
- {
- }
- /* fin d'essai */
- if (choix == 0)
- {
- continuer = FALSE;
- }
- }
- /* fin */
- /* affichage du score */
- return EXIT_SUCCESS;
- }
- /* Definition des fonctions utilisateurs */
Tic tac boum (attente active)
Les lignes 24 à 51 servent simplement à faire tic tac... pour que le programme soit plus amusant, vous pouvez en omettre l’étude en première lecture.
- #include <stdlib.h> /* EXIT_SUCCESS, rand, srand */
- #include <stdio.h> /* printf, scanf */
- #include <time.h> /* time */
- /* declaration de constantes et types utilisateurs */
- #define TRUE 1
- #define FALSE 0
- #define TIC 1
- #define TAC 2
- /* declaration de fonctions utilisateurs */
- int main()
- {
- int debut; /* debut en temps standard */
- int duree; /* duree en secondes */
- int tictac = TAC;
- while(duree < 10) /* pas encore 10 secondes */
- {
- if (duree % 2 == 0) /* duree paire: faire un tic */
- {
- if (tictac == TAC) /* le precedent tictac est un tac */
- {
- /* faisons tic */
- tictac = TIC;
- }
- }
- else /* duree impaire : faire un tac */
- {
- if (tictac == TIC) /* le precedent tictac est un tic */
- {
- /* faisons tac */
- tictac = TAC;
- }
- }
- } /* fin des 10 secondes */
- return EXIT_SUCCESS;
- }
- /* Definition des fonctions utilisateurs */