Prérequis:
- utilisation de gcc et gdb (il faut régulièrement)
- Monia base algorithme , organigrammes et Pseudo Langage
- les structures de contrôle
- librairie string.h , pour la fonction strcmp
But:
- apprendre à coder , utiliser la puissance d’une machine, qui ne se lasse pas de répéter !
- Réfléchir pour créer des codes structurés
Répertoire du travail:
~/Works/TP3_C
Partie 1 – Conditions if/else & switch
Exercice 1 : Devine le chiffre magique (avec if)
répertoire : nbmagic , code : nbmagic.c
le code nbmagic_if.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int secret, essai;
srand(time(NULL)); /* Initialisation du générateur aléatoire */
secret = rand() % 10 + 1; /* entre 1 et 10 */
printf("Devine le chiffre magique (entre 1 et 10) : ");
scanf("%d", &essai);
if (essai == secret) {
printf("Bravo ! Tu as deviné !\n");
} else if (essai < secret) {
printf(" Trop petit ! Le bon chiffre était %d.\n", secret);
} else {
printf(" Trop grand ! Le bon chiffre était %d.\n", secret);
}
return EXIT_SUCCESS;
}
tester et debugger
Avec Monia réaliser l’organigramme
fichiers à produire : nbmagic.xmo , nbmagic.pl
Exercice 2 : Mini-menu interactif (avec switch)
répertoire: menu , code:menu.c
le code menu.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int choix;
printf("Menu du jeu :\n");
printf("1. Jouer\n2. Règles\n3. Quitter\n");
printf("Fais ton choix : ");
scanf("%d", &choix);
switch (choix) {
case 1:
printf("Tu commences une partie !\n");
break;
case 2:
printf("Les règles : devine le nombre magique !\n");
break;
case 3:
printf("À bientôt !\n");
break;
default:
printf("Choix invalide !\n");
}
return EXIT_SUCCESS;
}
tester et debugger
Avec Monia réaliser l’organigramme
fichiers à produire : menu.xmo , menu.pl
Partie 2 – Boucles while, for, do...while
Exercice 3 : Boucle while — Compteur
répertoire: compteur , code : compteur.c
le code compteur.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int cpt = 1;
while (cpt <= 5) {
printf(" %d... Je compte jusqu'à 5 !\n", cpt);
cpt++;
}
return EXIT_SUCCESS;
}
tester et debugger
Avec Monia réaliser l’organigramme
fichiers à produire : compteur.xmo , compteur.pl
Exercice 4 : for – Table de multiplication
répertoire; tdm , code tdm.c
le code tdm.c (table de multiplication)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int cpt;
printf("Tape un nombre pour voir sa table de multiplication : ");
scanf("%d", &n);
for (cpt = 1; cpt <= 10; cpt++)
{
printf(" %d x %d = %d\n", n, cpt, n * cpt);
}
return EXIT_SUCCESS;
}
tester et debugger
Avec Monia réaliser l’organigramme
fichiers à produire : tdm.xmo , tdm.pl
Exercice 5 : do...while – Mini-quizz jusqu’à la bonne réponse
répertoire:quiz, code: quiz.c
le code quiz.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int reponse;
do {
printf("Combien font 3 + 4 ? ");
scanf("%d", &reponse);
} while (reponse != 7);
printf("Bravo ! Bonne réponse !\n");
return EXIT_SUCCESS;
}
tester et debugger
Avec Monia réaliser l’organigramme
fichiers à produire : quiz.xmo , quiz.pl
Partie 3 – break, continue, goto (en bonus)
Exercice 6 : break – Trouve le bon mot de passe
répertoire:mdp , code: mdp.c
Le code mdp.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char mot[20];
while (1) {
printf("Entre le mot de passe magique : ");
scanf("%s", mot);
if (strcmp(mot, "openSesame") == 0)
{
printf("Accès autorisé !\n");
break;
}
else
{
printf("Mot de passe incorrect.\n");
}
}
return EXIT_SUCCESS;
}
tester et debugger
Avec Monia réaliser l’organigramme
fichiers à produire : mdp.xmo , mdp.pl
proposer un code mdpg.c et ses fichiers monia.
Exemple avec un goto et une étiquette (etiquette)
#include <stdlib.h>
#include <stdio.h>
int main()
{
printf("Bonjour le monde !\n");
goto etiquette;
printf("Au revoir monde cruel\n");
etiquette:
printf("la vie est belle\n");
return EXIT_SUCCESS;
}
qui au lieu d’utiliser une boucle infinie while (1) va utiliser un goto et une étiquette.
