Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices pour débutants en C (suite)

Venez vous entrainer!

    1 septembre 2011 à 13:58:37

    Bon, alors, on crée un nouveau sujet contenant uniquement l'énoncé ?
    • Partager sur Facebook
    • Partager sur Twitter
    Staff désormais retraité.
      1 septembre 2011 à 14:01:42

      Sa serais bien parce que avec tout ces messages , je ne vois pas d’exercices . Ce topique servirais a recevoir les solutions/commentaires .
      • Partager sur Facebook
      • Partager sur Twitter
        1 septembre 2011 à 14:04:15

        @Sismic : l'exercice n'a pas officiellement commencé. :-°
        • Partager sur Facebook
        • Partager sur Twitter
        Staff désormais retraité.
          1 septembre 2011 à 14:05:20

          Citation : lucas-84

          Bon, alors, on crée un nouveau sujet contenant uniquement l'énoncé ?



          Ok mais attendons l'accord de GuilOooo. ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Bla bla bla
            1 septembre 2011 à 14:08:11

            Oui, bien sûr, c'était juste pour demander confirmation. ;)
            • Partager sur Facebook
            • Partager sur Twitter
            Staff désormais retraité.
              1 septembre 2011 à 14:13:30

              Quel sera le sujet du premier exo ?

              Citation : paraze

              Moi, il y a un exo que je crains relativement fortement, c'est celui du labyrinthe.
              Ben ouais quoi, même après toutes mes tentatives, je n'ai jamais réussis à utiliser un vrai algo style A* ou Dijkstra... Mais un brute-force est envisageable. :)


              Sincèrement, c'est loin d’être le plus dur.

              Particulièrement pour une raison que je me tue à répéter : un Dijkstra, ou éventuellement un A*, sûr que c'est cool, mais ce n'est pas nécessaire pour un labyrinthe. Le plus court chemin se trouve facilement avec un parcours en largeur. (au fait, qu'appelle tu un brute-force ? si tu compte rechercher tous les chemins possibles, c'est pas tellement moins dur à coder qu'un Dijkstra ;) )

              EDIT :
              @ schadocalex
              Pas mal du tout, moi ça me plait bien. :)
              • Partager sur Facebook
              • Partager sur Twitter
                1 septembre 2011 à 14:14:46

                @schadocalex: Recensement des défis :-°

                Mais mis-à-part ce détail la, ça me semble correcte et ça nous évitera de trop nous embêter sur des détails ;)
                • Partager sur Facebook
                • Partager sur Twitter
                🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.
                  1 septembre 2011 à 14:16:19

                  @schadocalex : Je suis pour à 100%

                  Moins de bla-bla, plus clair.

                  (Par contre : "La troisième partie sur la SDL est facultative, vu que nous n'en aurons pas besoin cette semaine. ;) " --> Tu comptes éditer la phrase chaque semaine en fonction de si l'exo utilise la SDL ou pas ? Autant faire un truc général. ;) ).
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Bla bla bla
                    1 septembre 2011 à 14:18:21

                    @schadocalex : c'est OK pour moi.
                    @yoch : zMol, calculateur de masse molaire.

                    Citation : lucas-84

                    Titre : [Défis] Cette semaine, zMol, la chimie pour tous !
                    Sous-titre : Débutants, venez vous entraîner !

                    zMol, la chimie pour tous !



                    Introduction



                    Aujourd'hui l'exercice sera de réaliser un calculateur de masse molaire. Cette notion de chimie n'est abordée qu'en classe de seconde générale, mais vous devriez vous en sortir même si vous êtes au collège, du moment que vous avez une bonne connaissance des molécules et des atomes.

                    Pour les non-initiés donc, il faut savoir que chaque atome a ce qu'on appelle une masse molaire atomique. Pour faire court, il s'agit de la masse que pèse une mole de cet atome (si vous êtes curieux, vous pouvez en apprendre plus sur les moles ici ! ;) ). Chaque molécule a une masse molaire moléculaire, que l'on obtient en faisant la somme de tous les masses molaires atomiques des atomes qui la composent.

                    L'unitée de la masse molaire est le <math>\(g.mol^-^1\)</math>.

                    Consignes



                    Le but de l'exercice est donc de réaliser un programme qui calcule la masse molaire d'une molécule entrée par l'utilisateur, et ce grâce à un fichier texte contenant certains atomes et leur masse molaire atomique correspondante.

                    Exemple :

                    Entrez une molécule :
                    --> CO2
                    
                    La masse molaire de cette molécule est 44.0090 g.mol-1


                    Je vous propose de commencer à travailler avec ce petit fichier texte, il sera amplement suffisant pour faire des tests et pour couvrir un bon nombre de molécules :

                    <secret>
                    C 12.011
                    O 15.999
                    H 1.0079
                    He 4.0026
                    Li 6.941
                    Cl 35.453
                    Na 22.989
                    </secret>

                    Objectifs



                    • Manipuler la lecture de fichiers.
                    • Apprendre à se servir de quelques fonctions de la bibliothèque standard.
                    • Apprendre (ou approfondir) une nouvelle notion en chimie.


                    Pistes de réflexion



                    Reconnaître un atome.

                    Vous pouvez remarquer que les symboles de certains atomes prennent un caractère et d'autres deux. ^^ Quand notre programme aura a analyser l'atome de chlore (Cl), par exemple, il ne faudra pas qu'il l'interprette comme un atome de carbone (C), et un atome l (inconnu au bataillon).

                    Heureusement, pour nous aider, une règle bien précise est que le deuxième caractère des symboles des atomes est toujours en minuscule, et le premier en majuscule. Pour cela, il va falloir utiliser les fonctions suivantes :

                    <secret>
                    int isupper(int c); // Teste si un caractère est majuscule
                    int islower(int c); // Teste si un caractère est minuscule
                    /* Ces deux fonctions sont définies dans <ctype.h> */
                    
                    </secret>

                    Bien sur, je ne vous donne là que quelques pistes, l'essentiel des recherches sur les problèmes que vous rencontrerez étant à faire par vous même (sinon, ça ne sert à rien). ;)

                    Enoncé



                    Niveau 1

                    Faire un programme qui gère uniquement une liste d'atomes de symbole n'ayant qu'un caractère, écrits les uns à la suite des autres :

                    <secret>
                    Entrez une molécule :
                    --> COO
                    
                    La masse molaire de cette molécule est 44.0090 g.mol-1
                    </secret>

                    Niveau 2

                    Cette fois, votre programme devra gérer les atomes dont le symbole fait plusieurs caractères.

                    <secret>
                    Entrez une molécule :
                    --> NaCl
                    
                    La masse molaire de cette molécule est 58.442000 g.mol-1
                    </secret>

                    Niveau 3

                    Votre programme devra gérer les coefficients. Pour tester si un caractère est un chiffre, vous devrez utiliser une fonction de la même famille que isupper et islower (à vous de chercher seul, cette fois ;) ).

                    La fonction strtol peut aussi vous être utile. ;)

                    <secret>
                    Entrez une molécule :
                    --> CO2
                    
                    La masse molaire de cette molécule est 44.0090 g.mol-1
                    </secret>

                    Niveau 4

                    Votre programme devra gérer les groupes qui se répètent plusieurs fois.

                    <secret>
                    Entrez une molécule :
                    --> (CH4)2
                    
                    La masse molaire de cette molécule est 32.085200 g.mol-1
                    </secret>

                    Niveau 5

                    Les scientifiques viennent de découvrir un tout nouvel atome !! ^^ Ajoutez à votre programme une fonction qui vous permettra d'ajouter un atome et sa masse molaire dans votre fichier. ;)

                    Et après... ?



                    Si vous réalisez les 5 niveaux, vous pouvez encore aller plus loin si vous le souhaitez !

                    Par exemple, vous pouvez décider d'afficher les étapes intermédiaires du calcul, etc... Votre imagination est votre seule limite ! ;)

                    Bon courage. ;)


                    Si il y a quelque chose que vous ne comprenez pas, n'hésitez pas à poser votre question sur ce sujet, nous vous répondrons avec plaisir ! :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Staff désormais retraité.
                      1 septembre 2011 à 14:20:48

                      Citation : _Fender_

                      (Par contre : "La troisième partie sur la SDL est facultative, vu que nous n'en aurons pas besoin cette semaine. ;) " --> Tu comptes éditer la phrase chaque semaine en fonction de si l'exo utilise la SDL ou pas ? Autant faire un truc général. ;) ).


                      Genre : "La troisième partie sur la SDL est facultative pour la plupart des exos. ;) "

                      @ lucas-84:
                      Ça ne va pas. Une bonne partie de ton intro est plutôt à mettre dans "recensement et informations". Je préfère l'autre formule.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 septembre 2011 à 14:22:51

                        Oui, la formule de schadocalex est carrément mieux. ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Bla bla bla
                          1 septembre 2011 à 14:23:21

                          @yoch : non, mais c'est l'ancienne version ça. ^^ C'était juste pour te donner l'énoncé de l'exercice en cours.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Staff désormais retraité.
                            1 septembre 2011 à 14:27:12

                            @che -> Je n'ai pas compris le détail que tu n'aimais pas dans "Recensement des défis" ? Le mot Recensement lui-même ?

                            @tout le monde -> J'ai copié coller pour pas que quelqu'un poste avant que je finisse de tout rédiger, j'ai pas eu le temps de lire attentivement ce que j'avais écrit.
                            Sinon, j'ai copié bêtement, mais c'est pas GuilOooo qui a écrit l'exo et non _Fender_ ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
                              1 septembre 2011 à 14:29:15

                              @schadocalex : Non, c'est _Fender_ je crois.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Staff désormais retraité.
                                1 septembre 2011 à 14:31:39

                                Exact. Je finis de tout rédiger, et je reposte ici.

                                EDIT : j'ai eu des gros bugs, je voyais pas mon post, du coup j'ai dû l'écrire deux fois, et mon post avec le début de présentation a disparu (ou je bug encore). Étrange.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
                                  1 septembre 2011 à 14:32:52

                                  Et pour "Recensement des défis" il me semble que tu avais écrit "Recensement des informations", je sais pas si c'est le "information" (à la place éventuelle de "défis") qui a géné @che.

                                  (Je m'en vais pour l'instant parce que là ça fait beaucoup de posts inutiles, on tourne un peu en rond à surcharger ce topic, et je pense pas qu'on puisse avancer beaucoup avant que GuilOooo ne revienne et donne son avis).
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Bla bla bla
                                    1 septembre 2011 à 14:36:10

                                    @schadocalex Tu as avais écris Recensement des Exercices ;)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.
                                      1 septembre 2011 à 15:09:10

                                      Voilà :

                                      --------------------------------------------------------
                                      Titre : [Défis] #1 : zMol, la chimie pour tous.
                                      Sous-titre : Venez vous entraîner !
                                      --------------------------------------------------------
                                      Bonjour à tous les zéros,

                                      cette semaine, nous vous proposons de créer zMol, un calculateur de masse molaire. N'ayez pas peur si vous ne savez pas ce que c'est : toutes les notions pré-requises et externes à la programmation seront expliquées. :)

                                      Si vous souhaitez plus de renseignements sur les défis, rendez vous sur le topic de recensement des défis, vous y trouverez également les principales règles.

                                      zMol, la chimie pour tous


                                      Cet exercice a été écrit par _Fender_, un grand merci à lui !

                                      Introduction



                                      Aujourd'hui l'exercice sera de réaliser un calculateur de masse molaire. Cette notion de chimie n'est abordée qu'en classe de seconde générale, mais vous devriez vous en sortir même si vous êtes au collège, du moment que vous avez une bonne connaissance des molécules et des atomes.

                                      Pour les non-initiés donc, il faut savoir que chaque atome a ce qu'on appelle une masse molaire atomique. Pour faire court, il s'agit de la masse que pèse une mole de cet atome (si vous êtes curieux, vous pouvez en apprendre plus sur les moles ici ! ;) ). Chaque molécule a une masse molaire moléculaire, que l'on obtient en faisant la somme de tous les masses molaires atomiques des atomes qui la composent.

                                      L'unitée de la masse molaire est le <math>\(g.mol^-^1\)</math>.

                                      Consignes



                                      Le but de l'exercice est donc de réaliser un programme qui calcule la masse molaire d'une molécule entrée par l'utilisateur, et ce grâce à un fichier texte contenant certains atomes et leur masse molaire atomique correspondante.

                                      Exemple :

                                      Entrez une molécule :
                                      --> CO2
                                      
                                      La masse molaire de cette molécule est 44.0090 g.mol-1


                                      Je vous propose de commencer à travailler avec ce petit fichier texte, il sera amplement suffisant pour faire des tests et pour couvrir un bon nombre de molécules :

                                      <secret>
                                      C 12.011
                                      O 15.999
                                      H 1.0079
                                      He 4.0026
                                      Li 6.941
                                      Cl 35.453
                                      Na 22.989
                                      </secret>

                                      Objectifs



                                      • Manipuler la lecture de fichiers.
                                      • Apprendre à se servir de quelques fonctions de la bibliothèque standard.
                                      • Apprendre (ou approfondir) une nouvelle notion en chimie.


                                      Pistes de réflexion



                                      Reconnaître un atome.

                                      Vous pouvez remarquer que les symboles de certains atomes prennent un caractère et d'autres deux. ^^ Quand notre programme aura a analyser l'atome de chlore (Cl), par exemple, il ne faudra pas qu'il l'interprette comme un atome de carbone (C), et un atome l (inconnu au bataillon).

                                      Heureusement, pour nous aider, une règle bien précise est que le deuxième caractère des symboles des atomes est toujours en minuscule, et le premier en majuscule. Pour cela, il va falloir utiliser les fonctions suivantes :

                                      <secret>
                                      int isupper(int c); // Teste si un caractère est majuscule
                                      int islower(int c); // Teste si un caractère est minuscule
                                      /* Ces deux fonctions sont définies dans <ctype.h> */
                                      
                                      </secret>

                                      Bien sur, je ne vous donne là que quelques pistes, l'essentiel des recherches sur les problèmes que vous rencontrerez étant à faire par vous même (sinon, ça ne sert à rien). ;)

                                      Enoncé



                                      Niveau 1

                                      Faire un programme qui gère uniquement une liste d'atomes de symbole n'ayant qu'un caractère, écrits les uns à la suite des autres :

                                      <secret>
                                      Entrez une molécule :
                                      --> COO
                                      
                                      La masse molaire de cette molécule est 44.0090 g.mol-1
                                      </secret>

                                      Niveau 2

                                      Cette fois, votre programme devra gérer les atomes dont le symbole fait plusieurs caractères.

                                      <secret>
                                      Entrez une molécule :
                                      --> NaCl
                                      
                                      La masse molaire de cette molécule est 58.442000 g.mol-1
                                      </secret>

                                      Niveau 3

                                      Votre programme devra gérer les coefficients. Pour tester si un caractère est un chiffre, vous devrez utiliser une fonction de la même famille que isupper et islower (à vous de chercher seul, cette fois ;) ).

                                      La fonction strtol peut aussi vous être utile. ;)

                                      <secret>
                                      Entrez une molécule :
                                      --> CO2
                                      
                                      La masse molaire de cette molécule est 44.0090 g.mol-1
                                      </secret>

                                      Niveau 4

                                      Votre programme devra gérer les groupes qui se répètent plusieurs fois.

                                      <secret>
                                      Entrez une molécule :
                                      --> (CH4)2
                                      
                                      La masse molaire de cette molécule est 32.085200 g.mol-1
                                      </secret>

                                      Niveau 5

                                      Les scientifiques viennent de découvrir un tout nouvel atome !! ^^ Ajoutez à votre programme une fonction qui vous permettra d'ajouter un atome et sa masse molaire dans votre fichier. ;)

                                      Et après... ?



                                      Si vous réalisez les 5 niveaux, vous pouvez encore aller plus loin si vous le souhaitez !

                                      Par exemple, vous pouvez décider d'afficher les étapes intermédiaires du calcul... Votre imagination est votre seule limite ! ;)

                                      Bon courage. ;)


                                      Si il y a quelque chose que vous ne comprenez pas, n'hésitez pas à poser votre question sur ce sujet, nous vous répondrons avec plaisir ! :)


                                      --------------------------------------------------------
                                      Titre : [Défis] Recensement et informations
                                      --------------------------------------------------------

                                      Recensement des défis


                                      Actuellement


                                      #1 zMol, la chimie pour tous : Calculateur de masse molaire.

                                      Tous les défis




                                      F.A.Q.


                                      Je suis débutant en langage C, quelles notions dois-je maîtriser pour réaliser ces défis ?


                                      Afin de suivre, il est nécessaire d'avoir lu le tutoriel C de M@teo21, au moins les deux premières parties. La troisième partie sur la SDL n'est nécéssaire qu'en cas de défis portant sur la SDL.

                                      Où dois-je poster mon code ?


                                      Vous pouvez poster votre code sur le sujet de l'exercice que vous réalisez, ce n'est que là-bas que l'on pourra vous aider à améliorer votre code.

                                      Je ne supporte la critique et/ou j'ai peur de me ridiculiser en postant mon code !


                                      Pourtant, c'est la seule manière pour vous de progresser. :p Les commentaires qui vous permettront d'améliorer votre manière de programmer seront constructifs et ne jugeront pas votre personne !

                                      Aide


                                      Les balises codes


                                      N'oubliez pas de mettre votre code entre des balises adaptées. Cela permettra une lecture plus facile de celui-ci. ;)

                                      <code type="c">/* Votre code ici */</code>
                                      Plus d'informations sur les balises de code :

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
                                        1 septembre 2011 à 20:32:19

                                        GuilOooo a donné son accord pour la publication du premier exercice (@che devrait le confirmer d'ici peu ;) ).
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Bla bla bla
                                          1 septembre 2011 à 20:34:03

                                          @GuilOoo est Ok pour le fais que l'on publie un exo par semaine ( dont je pense qu'il est mieux de le publier lundi ) ;) Il ne pourra pas le faire pour quelque jour.

                                          La question maintenant est comment publier les exercices ?
                                          Avec un compte spécialement pour ou on s'organise ici ?

                                          Les 2 solutions semblent avoir des avantages et des inconvénients ...

                                          @_Fender_: En effet, une question de secondes :)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.
                                          Anonyme
                                            1 septembre 2011 à 21:08:38

                                            Hum, pourquoi poster avec un nouveau compte créé spécialement pour ? Le posteur de l'exercice peut le faire avec le sien, quel est le problème de ce côté là ?

                                            Ensuite, quelqu'un a été designé par le loup gardien de ce forum pour s'en occuper pendant son absence ou non ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              1 septembre 2011 à 21:10:54

                                              On est entrain de s'organiser par MP. ;)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              "If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
                                              Anonyme
                                                1 septembre 2011 à 21:13:44

                                                Je pense qu'il faudrait mettre un lien vers l'ancien topic des exercices (celui-ci) dans le topic de recensement (à la rigueur reprendre le tableau).
                                                Autrement, un compte "normal" n'est-il pas suffisant (peu importe si le posteur change à chaque fois, non ?)

                                                Si c'est argumenté ok :)
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Anonyme
                                                  9 mars 2012 à 0:50:57

                                                  Puisque le topic a été déterré, j'en profite pour demander : que deviennent les défis ?
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    1 février 2015 à 0:56:02

                                                    bonjour a tous. qui peut m'aider avec l'exercice sur les nombres aléatoire généré par l'ordinateur
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      1 février 2015 à 1:00:23

                                                      Ouvre une autre sujet, présente ton problème sans supposer qu'on connait le cours par coeur, post ton code à l'aide des balise code </> (au dessus de l'éditeur de texte) et dit nous ou tu bloques.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Exercices pour débutants en C (suite)

                                                      × 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