Partage
  • Partager sur Facebook
  • Partager sur Twitter

code ascii

alphabet minuscule/majuscule

Sujet résolu
    11 janvier 2011 à 11:04:37

    Bonjour à tous,je souhaite tout d'abord écrire un module qui affiche l'alphabet en minuscule. Voilà le résultat:

    #include <stdio.h>
    #include <stdlib.h>
    
    void afficherAlphabet(char car)        
            {
            int codeascii=97;
            for(codeascii=97; codeascii<=97+25; codeascii++)
            {printf("%c",car);
            car=car+1;}
            printf("\n");
            }
    
    int main(int argc, char *argv[])
    {
      afficherAlphabet('a');                  
               
      system("PAUSE");    
      return 0;
    }
    



    Dans un second temps, je dois modifier le module pour qu'il écrive l'alhabet en minuscule si on passe en paramètre la valeur 1, en majuscule sinon.

    J'ai fais ça, puis je me suis aperçu que j'avais modifié le main et non le module. En fait, je ne sais pas quoi modifier dans le module.

    Comment faire??


    #include <stdio.h>
    #include <stdlib.h>
    
    void afficherAlphabet(char car1)        
            {
            int codeascii=97;//lettre=a
            for(codeascii=97; codeascii<=97+25; codeascii++)     
            {printf("%c",car1);
            car1=car1+1;}
            printf("\n");
            }          
           
                      
    int main(int argc, char *argv[])
    {
      char car;
      printf("Tapez 1 pour afficher l'alphabet en minuscule.\n");
      printf("Sinon, l'affichage se fera en majuscule:");
      scanf("%c", &car);
      
      if (car=='1')
      {
      afficherAlphabet('a'); 
      }
      
      else
      {
      afficherAlphabet('A'); 
      }
         
      system("PAUSE");	
      return 0;
    }
    



    • Partager sur Facebook
    • Partager sur Twitter
      11 janvier 2011 à 11:20:59

      j ai pas compris ta question ?
      Cela parait fonctionné même si tu t'es compliqué un peu la vie ?

      par exemple ta fonction je l'aurais ecrite :
      void afficherAlphabet(char car1)
      {
          int codeascii;
          for(codeascii=0; codeascii<=25; codeascii++)
          {
              printf("%c",car1);
              car1=car1+1;
          }
          printf("\n");
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
        11 janvier 2011 à 11:24:38

        En fait, pour la première partie, c'est bon et ça marche.

        Mais pour la deuxième partie, ça marche mais c'est le module que je dois modifier.
        • Partager sur Facebook
        • Partager sur Twitter
          11 janvier 2011 à 11:51:18

          modifier pour faire quoi?
          • Partager sur Facebook
          • Partager sur Twitter
            11 janvier 2011 à 11:54:45

            je dois modifier le module pour qu'il écrive l'alhabet en minuscule si on passe en paramètre la valeur 1, en majuscule sinon.
            • Partager sur Facebook
            • Partager sur Twitter
              11 janvier 2011 à 12:35:19

              Citation : frfr37

              je dois modifier le module pour qu'il écrive l'alhabet en minuscule si on passe en paramètre la valeur 1, en majuscule sinon.



              dans ton module tu devrais avoir quelque chose comme :

              si valeur==1 alors codeascii='a'
              sinon codeascii='A'
              pour f variant de codeascii jusqu'à codeascii+25
              afficher "la lettre correspondant à f"
              fin pour f
              • Partager sur Facebook
              • Partager sur Twitter
                11 janvier 2011 à 12:43:30

                Bonjour,
                Ta première partie marche, mais sa logique n'est pas terrible: la preuve c'est que tu ne sais pas modifier correctement ton code pour la deuxième question.
                -Dans la première question, on te demande de faire une fonction qui affiche l'alphabet en minuscule: c'est quelque chose de fixe or tu as une fonction qui prend un paramètre! pourquoi?

                void afficherAlphabet()        
                {
                        int lettrea='a';
                        for(int codeascii=lettrea; codeascii<=lettrea+25; codeascii++)
                        {
                              printf("%c",codeascii);
                        }
                        printf("\n");
                }
                

                A partir de la tu dois etre capable de rajouter un paramètre (int majuscule) à la fonction pour que si ce paramètre soit égal a 1, lettrea soit initialiser a 'A' au lieu de 'a'?
                • Partager sur Facebook
                • Partager sur Twitter
                ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                  11 janvier 2011 à 17:21:20

                  Alors je verrais plutôt un truc comme ça, mais je sens que c'est "bancal" au niveau de la fonction. De plus je sais pas si mon if est dans la bonne partie du programme.

                  #include <stdio.h>
                  #include <stdlib.h>
                  
                  
                  //int majuscule
                  void afficherAlphabet(int majuscule)        
                  {
                          if (majuscule==1)
                             {
                             int lettrea='a';
                              for(int codeascii=lettrea; codeascii<=lettrea+25; codeascii++)
                                {
                                       printf("%c",codeascii);
                                  }
                                   printf("\n");
                             }
                             
                          else 
                          {
                               int lettrea='A';
                              for(int codeascii=lettreA; codeascii<=lettrea+25; codeascii++)
                                {
                                       printf("%c",codeascii);
                                  }
                                   printf("\n");
                          }
                  }
                  
                  int main(int argc, char *argv[])
                  {
                      int majuscule;
                      printf("Tapez 1 pour afficher l'alphabet en minuscule.\n");
                      printf("Sinon, l'affichage se fera en majuscule:");
                      scanf("%d", &majuscule);
                      
                  
                    afficherAlphabet();                  
                             
                    system("PAUSE");    
                    return 0;
                  }
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 janvier 2011 à 18:28:53

                    on peut simplifier ta fonction en:
                    #include <stdio.h>
                    #include <stdlib.h>
                    
                    
                    //int majuscule
                    void afficherAlphabet(int majuscule)        
                    {
                            int lettrea='a'; //par défaut on est en minuscule
                            if (majuscule==1) //si on veut les majuscule, on initialise lettrea différemment
                            {
                               lettrea='A';
                            }
                            // le reste ne change pas que ce soit majuscule ou pas....
                            for(int codeascii=lettrea; codeascii<=lettrea+25; codeascii++)
                            {
                                  printf("%c",codeascii);
                            }
                            printf("\n");
                    }
                    
                    int main(int argc, char *argv[])
                    {
                        int majuscule=0;
                        printf("Tapez 0 pour afficher l'alphabet en minuscule.\n");
                        printf("tapez 1 pour afficher l'alphabet en majuscule:");
                        scanf("%d", &majuscule); //idéalement, il faudrait controler que soit 0 soit 1 ait été taper!
                        
                    
                        afficherAlphabet(majuscule); // Attention tu avais oublié de passer le parametre                  
                               
                        system("PAUSE");    
                        return 0;
                    }
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                    ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                      11 janvier 2011 à 19:23:23

                      Vous vous compliquer la vie, c'est pourtant un exo très simple :
                      void afficherAlphabet(int maj)
                      {
                          unsigned char c = 'a', i;
                          if(maj)
                              c = 'A';
                      
                          for(i = 0 ; i < 26 ; i++)
                             printf("%c", c + i);
                      }
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 janvier 2011 à 21:21:05

                        Bonsoir, alors j'ai bien étudié la question:

                        Le programme de breizhbugs me convient parfaitement, même si je l'ai adapté. Celui de nyco240594 fonctionne aussi, mais je ne le comprends pas complétement.

                        Merci à tous pour votre aide! :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 janvier 2011 à 22:58:48

                          Citation : frfr37

                          Bonsoir, alors j'ai bien étudié la question:

                          Le programme de breizhbugs me convient parfaitement, même si je l'ai adapté. Celui de nyco240594 fonctionne aussi, mais je ne le comprends pas complétement.

                          Merci à tous pour votre aide! :)


                          C'est pourtant très simple au début, la variable c est égale soit à 'a', soit à 'A'. Ensuite on fais une boucle for et chaque tour on affiche c + i ('a' + 1 = 'b', 'a' + 2 = 'c'... pareil en majuscule).
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 janvier 2011 à 2:28:59

                            Citation : nyco240594

                            Vous vous compliquer la vie


                            Encore plus simple:
                            void afficherAlphabet(int maj)
                            {
                                const char c = maj ? 'A' : 'a';
                                for (int i = 0 ; i < 26 ; i++)
                                   putchar(c + i);
                            }
                            

                            PS: Attention, ce code fonctionne avec ASCII, mais pas avec les encodages pour lesquels les lettres de l'alphabet ne se suivent pas.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 janvier 2011 à 11:46:29

                              Bonjour,
                              Ce n'est pas un concours du code le plus simple et il n'est pas non plus question de faire l'exercice/le devoir à la place de frf37, c'est pour cela que je suis resté au plus près de son code en faisant en sorte qu'il fasse correctement ce qui était demandé...
                              • Partager sur Facebook
                              • Partager sur Twitter
                              ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **

                              code ascii

                              × 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