🕒
3 h maximum

 


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.

tester et debugger votre code