Contrôle Machine n°1

Les seuls documents papier autorisés sont vos notes de cours, de travaux dirigés et de travaux pratiques. Les documents électroniques autorisés sont les documents présents sur les machines de l'IUT et dont vous êtes l'unique auteur (ainsi que les éventuels documents de cours). En dehors de la machine qui vous est attribuée et de votre matériel de composition (crayons, stylos, …), aucun matériel n'est autorisé.

Toutes les réponses devront prendre la forme de fichiers source en langage C (plus les scripts de compilation). Suivez scrupuleusement les instructions de ce sujet, vos réponses doivent correspondre aux exemples d'exécution : soyez rigoureux !

Sauf indication contraire, vous pouvez supposer que les données fournies sur la ligne de commande ou l'entrée standard respectent les restrictions de l'énoncé et ne nécessitent donc pas de contrôle.

Assurez-vous que votre copie de travail est à jour (git pull). Dans le répertoire dédié au module (normalement, ~/DEV/DEV1.1/), créez un nouveau répertoire nommé CM1. Faites-en votre répertoire courant et placez-y tous les fichiers générés durant l'épreuve.

Effacez tous les fichiers temporaires et ne gardez que les fichiers d'extension .c, .h et les éventuels Makefile (attention à ne pas effacer vos fichiers source !). Placez-vous ensuite dans le répertoire immédiatement au dessus de CM1 et archivez votre travail, par exemple par la commande :

bob@box:DEV1.1$ tar czvvf dummy_CM1.tar.gz CM1
Remplacez le mot dummy par votre login. Téléversez l'archive ainsi obtenue à cet endroit.

Attention Vous utiliserez obligatoirement les options -ansi -pedantic lors de la compilation.

  1. Chauve-souris. (2 points) Écrivez dans un fichier nommé exo1.c un programme qui affiche la figure suivante :

      _   ,_,   _
     / `'=) (='` \
    /.-.-.\ /.-.-.\ 
    `      "      `
    

  2. Correspondances. (2 points) Placez dans un fichier nommé exo2.c l'ébauche de programme suivante :

    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void) {
      printf("%d\n", ...);
      printf("%o\n", ...);
      printf("%x\n", ...);
      return EXIT_SUCCESS;
    }

    En remplaçant seulement les points de suspension, terminez le programme pour qu'il affiche dans la console :

    bob@box:CM1$ ./a.out
    31
    31
    31
    

  3. Canettes. (6 points) Une canette de soda est vendue 0,6€ à l'unité, mais un pack de 6 canettes est vendu 3,39€. Écrivez dans un fichier nommé exo3.c un programme qui demande à l'utilisateur quelle somme il est prêt à payer et qui indique comment répartir ses achats pour obtenir le plus grand nombre de canettes au meilleur prix.

    bob@box:CM1$ ./a.out
    Quel est votre budget : 7.5
    2 packs et 1 unité
    

    Faites attention à utiliser le pluriel seulement lorsque c’est nécessaire, et à ne pas afficher une quantité si elle vaut 0.

    bob@box:CM1$ ./a.out
    Quel est votre budget : 2
    3 unités
    

  4. Circulation. (5 points) Écrivez dans un fichier nommé exo4.c un programme qui demande à l'utilisateur de taper une lettre minuscule, puis affiche l'alphabet en commencant par la lettre choisie. Les lettres précédentes seront placées à la fin.

    bob@box:CM1$ ./a.out
    Entrez une minuscule : n
    nopqrstuvwxyzabcdefghijklm
    

    Attention N'employez pas de structure conditionnelle dans votre réponse.

  5. Coïncidences. (5 points) Dans le jeu de Yahtzee, on lance cinq dés à six faces. Écrivez dans un fichier nommé exo5.c un programme qui demande un entier entre 1 et 6 à l'utilisateur 5 fois de suite, puis indique si le résultat est une suite (tous les nombres entre 1 et 5 ou entre 2 et 6, dans n'importe quel ordre).

    bob@box:CM1$ ./a.out
    Jet n°1 : 1
    Jet n°2 : 6
    Jet n°3 : 5
    Jet n°4 : 1
    Jet n°5 : 5
    Ceci n'est pas une suite.
    

retour à la page d'accueil

retour au sommet