Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TP]Calculator

pour : débutant/moyen

    22 novembre 2007 à 18:47:40

    Bonsoir à tous.

    Je me présente, je suis War - Yor et je suis passionné de programmation (particulièrement le C) et également dingue de mathématique (je sais, je sais...).

    J'ai eu comme idée il y a peu de proposer au débutant comme aux personnes ayant un niveau moyen un TP pour les aider dans leur apprentissage, et j'ai trouvé comme idée un "Calculator" mais attention un "Calcultor" qui serait capable de modifier un valeur de départ entrée pas l'utilisateur, c'est à dire que l'utilisateur pourrait multiplier, diviser, additionner et soustraire cette valeur pour donner une nouvelle valeur qui pourra alors être modifiée et ainsi de suite.

    Voila alors je prose maintenant de vous présentez se que vous allez devoir réaliser et peut-être vous guidez un peu ;)


    Présentation du TP et du Calculator



    Image utilisateurJe vais, ici, vous présentez le TP, se que j'attends de vous mais aussi le cahier des charges du "Calculator" (se qu'il devra faire...).

    Dans un premier temps :

    Pour commencer il faut que vous sachiez que la réalisation du "Calculator" va vous demandez certaines connaissances pour une réalisation basique et d'autres pour réaliser programme encore plus optimisé et performant.
    Les compétences nécessaires sont listées ci-dessous :

    Citation : Compétences pour une réalisation basique


    - Variables (type de variables etc...)
    - Opérations arithmétiques (addition, soustraction, division, multiplication)
    - Les conditions (if, else)
    - Maitrise de la fonction scanf
    - Boucle (while)



    Les compétences pour un "Calculator" simple sont assez basiques, pour un programme mieux structuré il faudra d'autres compétences :

    Citation : Compétences pour une réalsation améliorée


    - Les fonctions
    - Maitrise de l'alternatif switch
    - Fichers (donc les pointeurs ^^ )
    - Connaitre la librairie mathématique pour gérer d'autres opérations



    Voila donc comme vous le voyez ce TP est destiné à un publique varié au niveau de l'expérience de chacun.

    Maintenant que vous savez que vous êtes prêt, on peut attaquer le cahier des charges de notre "Calculator" :p

    Image utilisateur Cahier des charges et présentation du "Calculator"

    Ici, on va définir se que devra faire notre programme, les options fondamentales qui devra proposer et par la suite des façons de l'améliorer. ;)

    Voila la présentation du "Calculator" :
    Le "Calculator" sera un programme en console (évidement :-° ), il aura pour but d'offrir à l'utilisateur un support de calcul illimité dans le sens du nombre de valeur à calculer. L'utilisateur tapera un caractère (par exemple M) pour mettre en mémoire une valeur, de la, il pourra effectuer des calcule sur celle ci, si il veut repartir avec une valeur nouvelle en tapant valeur M.
    Pour quitter le programme il n'aura qu'a taper valeur Q.

    Voila une présentation du programme.

    Maintenant voila la liste des fonctions que devra remplir le programme :

    Citation : Cahier des charges


    - Mettre une valeur en mémoire avec la syntaxe x M (x étant la valeur entrée et M le caractère indiquant ma mise en mémoire
    - On affiche la valeur mise en mémoire
    - On demande à l'utilisateur d'entrer une valeur et un symbole arithmétique (par exemple 2 / divisera la valeur en mémoire par 2
    - On tourne en boucle jusqu'à se que le joueur tape le caractère Q
    - On doit toujours vérifier que l'utilisateur ne rentre pas un symbole inconnu
    - On remplace la valeur en mémoire par une nouvelle si l'utilisateur retape la syntaxe de mise en mémoire
    - On vérifie toujours si l'utilisateur ne divise pas par 0, dans le cas d'une division par 0 on affiche un message et le calcul de se fait pas



    Voila déjà se que je programme devra faire, ci-dessous une représentation de comment devrait se dérouler le programme :

    Citation : Représentation du programme éxécuté


    Aucune valeur en mémoire, entrez une valeur :
    44 M

    La valeur 44 est mise en mémoire

    Vous pouvez effectuer des opérations :

    2 /

    égale 22

    5 +

    27

    ...

    78 M

    La nouvelle valeur en mémoire est 78

    0 Q

    exit...



    Un peu d'aide :

    Pour gérer les caractères utiliser une variable de type char :

    1. char operande = 0
    2. long valeur = 0, valeurMemoire = 0;
    3. scanf("%ld %c", &valeur, &operande);
    4. if(operande = 'M')
    5. {
    6. valeurMemoire = valeur;
    7. ...


    Voila un petit code d'aide, essayez déjà de faire le code avec le peu que vous avez et si vous n'y arrivez pas je posterais un algorithme pour vous aider.

    Je vous souhaite bonne chance pour ce TP ! ;)
    • Partager sur Facebook
    • Partager sur Twitter
      22 novembre 2007 à 19:11:02

      Salut war-yor :) ,
      je ne suis ps là pour faire le TP (enfin peut être je verrai plus tard hein :p )
      mais juste pour dire que sur des variables il n'y a pas d'accents!
      • Partager sur Facebook
      • Partager sur Twitter
        23 novembre 2007 à 16:26:06

        Vraiment désolé, j'ai écrit directement dans le message le code donc sa porte à confusion ^^
        J'édite ça tout de suite !
        • Partager sur Facebook
        • Partager sur Twitter
          23 novembre 2007 à 16:30:28

          Bonne idée de TP !
          mais je ne comprends pas pourquoi tout le monde fait des TP sur les forums, au lieu des tutos ?!
          • Partager sur Facebook
          • Partager sur Twitter
            23 novembre 2007 à 17:07:08

            Des tutos... je veux bien mais bon il y a une rubrique pour ça non ?
            Mais aucune rubrique pour que des gens postent leurs tutos, et je pense que faire une rubrique TP serait une bonne idée mais bon après c'est à l'administration de voir.

            Cordialement WY.
            • Partager sur Facebook
            • Partager sur Twitter
              23 novembre 2007 à 19:31:38

              C'est pas grave WY ça arrive de se tromper ^^
              Et j'ai une question...

              1. char operande = 0


              n'est pas un tableau? Car tu veux rentrer un caractere (là M en l'occurance)

              sinon ça donne ça ====>

              1. char operande[1];


              Mais si jamais c'est faux, tu as oublié ton ";" tout du moins :p

              Sinon c'est vrai que ce serai une bonne idée de mettre une section [TP]
              Enfin... revenons au sujet...
              j'ai juste une question sur un truc que j'ai du zapper... le signe opératoire c'est l'utilisateur qui le tape ou c'est nous qui demandons quelle opération veut-il faire en utilisant un printf? :-°

              Je le commencerai ce week-end le [TP] là j'ai pas trop le temps...

              • Partager sur Facebook
              • Partager sur Twitter
                24 novembre 2007 à 8:29:12

                Bonjour.

                Non, operande est bien une variable pour stocker un caractère, elle est de type char.
                L'utilisateur pourra entrer 50 caractères, il ne sélectionnera que le premier.

                Donc l'écriture suivante est destinée à un tableau de char :

                1. char tableauChar[5] = " ";


                Et voila un code qui illustre se que je viens de dire :

                1. #include <stdlib.h>
                2. #include <stdio.h>
                3. void buffer(void);
                4. int main(void)
                5. {
                6.     char operande = 0;
                7.     scanf("%c", &operande);
                8.     buffer();
                9.     printf("%c", operande);
                10.     getchar();
                11.     return 0;
                12. }
                13. void buffer(void)
                14. {
                15.      int b;
                16.      while((b = getchar()) != '\n' && b != EOF);
                17. }


                EDIT : Il faut faire attention en utilisant scanf de ne pas oublier de nettoyer le buffer. Ici je fais appel à une fonction buffer qui nettoie le buffer pour laisser place à une nouvelle saisie.

                Bonne chance pour le TP !

                Cordialement WY.
                • Partager sur Facebook
                • Partager sur Twitter

                [TP]Calculator

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown