Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage code barre

    25 octobre 2019 à 15:56:58

    Bonjour j'ai un exercice en langage mais je n'y arrive pas en respectant les contraintes qui sont de ne pas utiliser de tableau ni de pointeurs,j'espere que une personne pourra m'aider.

    Je dois afficher les chiffres que l'utilisateur entre en bâton un à un et en ligne

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
    
        char NumberUser [] ={"Wait number user"};
        size_t NumberOfCaractere;
    
        printf("---------- 1970 return  ----------\n\n");
        printf("Saisie ton nombre: ");
        scanf("%s", &NumberUser);
        printf("\n---- AFFICHAGE ----\n");
    
        NumberOfCaractere = strlen(NumberUser);
    
        for(int i=0; i < NumberOfCaractere; i++)
    
        if (NumberUser[i] == '0'){
            printf(" _\n| |\n|_|\n");
        }
    
        else if (NumberUser[i] == '1'){
            printf(" |\n |\n\n");
        }
    
        else if (NumberUser[i] == '2'){
            printf(" _\n _|\n|_\n");
        }
    
        else if (NumberUser[i] == '3'){
            printf(" _\n _|\n _|\n\n");
        }
    
        else if (NumberUser[i] == '4'){
            printf("|_|\n  |\n");
        }
    
        else if (NumberUser[i] == '5'){
            printf(" _\n|_\n _|\n");
        }
    
        else if (NumberUser[i] == '6'){
            printf(" _\n|_ \n|_|\n");
        }
    
        else if (NumberUser[i] == '7'){
            printf(" _\n  |\n  |\n");
        }
    
        else if (NumberUser[i] == '8'){
            printf(" _\n|_|\n|_|\n");
        }
    
        else if (NumberUser[i] == '9'){
            printf(" _\n|_|\n _|\n");
        }
    
        else{ printf("sasie %d: Invalide !\n", i + 1);
    
        }
    
    
    
        return 0;
    }
    
    
    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2019 à 17:22:38

      Je n'ai pas tout compris, tu parles de code barre, de saisie de chiffre en bâtons, d'ailleurs comment fait-on pour saisir des chiffres en bâton ? et ton code demande de saisir un nombre. Si tu veux des réponses il va falloir être plus clair dans ta question ! 

      • Partager sur Facebook
      • Partager sur Twitter
        25 octobre 2019 à 17:39:51

        Hello,

        Ligne 13: &NumberUser ????

        Et puis, dans ton for(), un switch serait bienvenu plutôt que tous ces if / else if

        -
        Edité par edgarjacobs 25 octobre 2019 à 17:42:55

        • Partager sur Facebook
        • Partager sur Twitter

        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          25 octobre 2019 à 23:31:16

          rouloude a écrit:

          Je n'ai pas tout compris, tu parles de code barre, de saisie de chiffre en bâtons, d'ailleurs comment fait-on pour saisir des chiffres en bâton ? et ton code demande de saisir un nombre. Si tu veux des réponses il va falloir être plus clair dans ta question ! 

          L'utilisateur doit entrer un nombre et je dois faire apparaitre ce nombre en batons

          • Partager sur Facebook
          • Partager sur Twitter
            26 octobre 2019 à 10:39:58

            Salut,

            Si je comprends bien, il ne s'agit pas d'afficher un code barre (mauvais titre) mais d'afficher un nombre sous la forme '7segments'

            #include <stdio.h>
            #include <string.h>
            
            #define DIGIT 10
            #define ROW    3
            #define COL    4
            
            int main(void)
            {
              size_t len;
              char buf[32];
              const char seg[DIGIT][ROW][COL] = {{" _ ",
                                                  "| |",
                                                  "|_|"},
                                                 {"   ",
                                                  "  |",
                                                  "  |"},
                                                 {" _ ",
                                                  " _|",
                                                  "|_ "},
                                                 {" _ ",
                                                  " _|",
                                                  " _|"},
                                                 {"   ",
                                                  "|_|",
                                                  "  |"},
                                                 {" _ ",
                                                  "|_ ",
                                                  " _|"},
                                                 {" _ ",
                                                  "|_ ",
                                                  "|_|"},
                                                 {" _ ",
                                                  "  |",
                                                  "  |"},
                                                 {" _ ",
                                                  "|_|",
                                                  "|_|",},
                                                 {" _ ",
                                                  "|_|",
                                                  " _|"}};
            
              puts("Nombre ?");
              scanf("%31s", buf);
              len = strlen(buf);
            
              for(size_t i = 0; i < ROW; ++i){
                for(size_t j = 0; j < len; ++j){
                  printf("%s", seg[buf[j] - '0'][i]);
                }
                putchar('\n');
              }
            
              return 0;
            }

            -
            Edité par magma 26 octobre 2019 à 10:57:15

            • Partager sur Facebook
            • Partager sur Twitter
              26 octobre 2019 à 11:48:46

              Salut,

              Si je comprends bien, il ne s'agit pas d'afficher un code barre (mauvais titre) mais d'afficher un nombre sous la forme '7segments'

              #include <stdio.h>
              #include <string.h>
              
              #define DIGIT 10
              #define ROW    3
              #define COL    4
              
              int main(void)
              {
                size_t len;
                char buf[32];
                const char seg[DIGIT][ROW][COL] = {{" _ ",
                                                    "| |",
                                                    "|_|"},
                                                   {"   ",
                                                    "  |",
                                                    "  |"},
                                                   {" _ ",
                                                    " _|",
                                                    "|_ "},
                                                   {" _ ",
                                                    " _|",
                                                    " _|"},
                                                   {"   ",
                                                    "|_|",
                                                    "  |"},
                                                   {" _ ",
                                                    "|_ ",
                                                    " _|"},
                                                   {" _ ",
                                                    "|_ ",
                                                    "|_|"},
                                                   {" _ ",
                                                    "  |",
                                                    "  |"},
                                                   {" _ ",
                                                    "|_|",
                                                    "|_|",},
                                                   {" _ ",
                                                    "|_|",
                                                    " _|"}};
              
                puts("Nombre ?");
                scanf("%31s", buf);
                len = strlen(buf);
              
                for(size_t i = 0; i < ROW; ++i){
                  for(size_t j = 0; j < len; ++j){
                    printf("%s", seg[buf[j] - '0'][i]);
                  }
                  putchar('\n');
                }
              
                return 0;
              }

              As-tu utilisé un tableau?avec cette ligne de code?

              [DIGIT][ROW][COL] =

              -
              Edité par FodéTenetao 26 octobre 2019 à 12:46:11

              • Partager sur Facebook
              • Partager sur Twitter
                26 octobre 2019 à 12:53:42

                (Ah, grâce à la réponse de magma je viens de comprendre ! Moi aussi j'avais été trompé par le terme "code barre".)

                FodéTenetao : la méthode de magma est plus astucieuse et utilise en effet un tableau. Comme tu ne dois pas utiliser de tableau, tu pourrais t'inspirer de ce que tu as commencé, mais en effectuant un traitement par ligne. L'idée, c'est que chaque chiffre est représenté par un motif qui prend trois lignes (je crois), qu'il faudra afficher une par une :

                − 1ère ligne : tu reprends ton programme en n'affichant que la ligne du haut de tous les motifs ;

                − 2ème ligne : rebelote avec la 2è ligne de tous les motifs ;

                et ainsi de suite.

                -
                Edité par robun 26 octobre 2019 à 13:13:02

                • Partager sur Facebook
                • Partager sur Twitter
                  26 octobre 2019 à 13:09:57

                  FodéTenetao a écrit:

                  As-tu utilisé un tableau?


                  ____

                  2 tableaux.

                  Un tableau pour stocker la saisie utilisateur et un tableau de 10 tableaux de 3 tableaux pour le reste.

                  -
                  Edité par magma 26 octobre 2019 à 13:18:37

                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 octobre 2019 à 13:15:57

                    magma a écrit:

                    Salut,

                    Si je comprends bien, il ne s'agit pas d'afficher un code barre (mauvais titre) mais d'afficher un nombre sous la forme '7segments'

                    #include <stdio.h>
                    #include <string.h>
                    
                    #define DIGIT 10
                    #define ROW    3
                    #define COL    4
                    
                    int main(void)
                    {
                      size_t len;
                      char buf[32];
                      const char seg[DIGIT][ROW][COL] = {{" _ ",
                                                          "| |",
                                                          "|_|"},
                                                         {"   ",
                                                          "  |",
                                                          "  |"},
                                                         {" _ ",
                                                          " _|",
                                                          "|_ "},
                                                         {" _ ",
                                                          " _|",
                                                          " _|"},
                                                         {"   ",
                                                          "|_|",
                                                          "  |"},
                                                         {" _ ",
                                                          "|_ ",
                                                          " _|"},
                                                         {" _ ",
                                                          "|_ ",
                                                          "|_|"},
                                                         {" _ ",
                                                          "  |",
                                                          "  |"},
                                                         {" _ ",
                                                          "|_|",
                                                          "|_|",},
                                                         {" _ ",
                                                          "|_|",
                                                          " _|"}};
                    
                      puts("Nombre ?");
                      scanf("%31s", buf);
                      len = strlen(buf);
                    
                      for(size_t i = 0; i < ROW; ++i){
                        for(size_t j = 0; j < len; ++j){
                          printf("%s", seg[buf[j] - '0'][i]);
                        }
                        putchar('\n');
                      }
                    
                      return 0;
                    }

                    As-tu utilisé un tableau?avec cette ligne de code?

                    [DIGIT][ROW][COL] =
                    Edité par magma il y a environ 1 heure



                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 octobre 2019 à 15:30:03

                      FodéTenetao : tu es distrait, tu as oublié de répondre en-dessous de la citation de magma...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 octobre 2019 à 14:08:18

                        robun a écrit:

                        (Ah, grâce à la réponse de magma je viens de comprendre ! Moi aussi j'avais été trompé par le terme "code barre".)

                        FodéTenetao : la méthode de magma est plus astucieuse et utilise en effet un tableau. Comme tu ne dois pas utiliser de tableau, tu pourrais t'inspirer de ce que tu as commencé, mais en effectuant un traitement par ligne. L'idée, c'est que chaque chiffre est représenté par un motif qui prend trois lignes (je crois), qu'il faudra afficher une par une :

                        − 1ère ligne : tu reprends ton programme en n'affichant que la ligne du haut de tous les motifs ;

                        − 2ème ligne : rebelote avec la 2è ligne de tous les motifs ;

                        et ainsi de suite.

                        Comment je pourais faire sa?



                        -
                        Edité par FodéTenetao 28 octobre 2019 à 14:24:36

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Affichage code barre

                        × 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