Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices pour débutants en C (suite)

Venez vous entrainer!

    1 septembre 2011 à 11:18:16

    L'intro est sympa, mais j'ai juste une petite question :

    - Le titre... C'est celui du topic global qui regroupe tous les sujets ? Tu voudrais poster tous les sujets sur le même ? (En fait, c'est juste que vous n'avez pas donné votre avis sur ma suggestion ^^ : )

    Citation : Moi

    Je pense que la meilleure organisation serait certes d'avoir un topic qui regroupe un lien vers tous les énoncés et leur correction éventuelle, mais ça serait bien mieux organisé d'avoir ensuite un topic par exercice. (Ca éviterait au moins les discussions croisées si quelqu'un poste un code pour un exercice datant d'un mois). (D'autre part, cela éviterait une surcharge du topic principal, qui se retrouverait vite avec plusieurs dizaines de pages... peu motivant à lire pour un débutant !).

    • Partager sur Facebook
    • Partager sur Twitter
    Bla bla bla
      1 septembre 2011 à 11:22:46

      AMHA, le mieux, c'est :
      - un topic regroupant tous les liens de tous les exercices à partir de septembre 2011 ;
      - des topics spécifiques : un pour chaque exercice.

      Mais quand je parlais du « titre » et du « sous-titre », c'était pour parler des deux champs à rentrer lors de la création d'un nouveau sujet.

      Donc, en résumé, on a :
      - un topic « [Défis] Débutants, venez vous entraîner en C ! » regroupant tous les exercices depuis septembre ;
      - un topic « Titre : [Défis] Débutants, venez vous entraîner en C !
      Sous-titre : Cette semaine, zMol, la chimie pour tous ! » regroupant toutes les discussions sur zMol.

      Je crois qu'en gros, c'était ce que tu voulais faire, Fender ?
      • Partager sur Facebook
      • Partager sur Twitter
      Staff désormais retraité.
        1 septembre 2011 à 11:26:36

        Moi je suis pour un sujet par semaine (avec un topic qui récapitule tout ).
        Et de toutes façon, lucas, ça ne vas pas. Si on fais un topic pour tous les exerices, il ne dois surtout pas commencer par la publication d'un exercice car ce poste servira à la récapitulation des exercices, avec le tableau, la difficulté, les conseil, et les exercices à venir.

        Je pense aussi que si tu postes cette intro, tu devrais la mettre avec plus de lien ;)


        PS:
        • 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 à 11:28:31

          Je sais, @che. Mais l'intro proposée c'était pour le sujet de l'exercice, pas pour le sujet total !
          Quand tu dis « plus de liens », c'est concernant l'énoncé ? Parce que si c'est le cas, je n'ai rien modifié dans l'exercice. ^^
          • Partager sur Facebook
          • Partager sur Twitter
          Staff désormais retraité.
            1 septembre 2011 à 11:30:46

            Faut changer le titre alors:
            "[Défis] Débutants, venez vous entraîner en C !"

            Ça fais pensé au sujet récapitulatif ;)

            Oui je parle de l'énoncé. Les liens sont là juste pour ne pas avoir des questions du genre : "J'ai pa conpritt coment kon utilis lai balise cod Help pleassse ! ".
            • 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 à 11:31:54

              Sauf que le titre du topic de chaque exo ne devrait pas être identique au titre du topic général (mais ce n'est qu'un détail). Grilled par @che. ^^

              Après pour l'intro il n'y a qu'a l'adapter légèrement pour chaque exercice. ;)
              • Partager sur Facebook
              • Partager sur Twitter
              Bla bla bla
                1 septembre 2011 à 11:32:35

                En dessous, il y a le sous-titre.
                Il faut bien dire de quoi il s'agit, parce que sinon, si on met direct un titre « Cette semaine, zMol, la chimie pour tous ! », les gens ne vont pas comprendre à quoi s'attendre...
                • Partager sur Facebook
                • Partager sur Twitter
                Staff désormais retraité.
                  1 septembre 2011 à 11:35:38

                  @licas: Mieux vaut un titre comme [Défi-Débutant] zMol, la chimie pour tous
                  Avec comme sous-titre: Venez vous entrainer ! (Oui c'est soulant de voir des '!' partout donc je le retire) surtout dans les titres ...

                  Oui je pense que précisez le niveau dans le titre serrait préférable ;)

                  @lucas après ton edit :
                  Oui je parle de l'énoncél'intro. Les liens sont là juste pour ne pas avoir des questions du genre : "J'ai pa conpritt coment kon utilis lai balise cod Help pleassse ! ".
                  • 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 à 11:37:17

                    @@che : plains-toi à _Fender_ alors pour l'énoncé ! :lol: Enfin, je ne veux rien modifier sans sa permission. ^^
                    OK pour le titre, je note.

                    EDIT : un lien pour utiliser les balises codes... o_O C'est quand même basique, je leur demande juste de copier/coller. ^^
                    EDIT 2 : oui, mais les points d'exclamation attirent les gens. C'est plus entraînant, quoi ! Quand tu vois deux titres :

                    Citation : Mauvais titre

                    [Défi/Débutant] Venez vous entraîner.



                    Citation : Bon titre

                    [Défi/Débutant] Venez vous entraîner !



                    Sur lequel as-tu envie de cliquer ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Staff désormais retraité.
                      1 septembre 2011 à 11:39:13

                      @lucas: Désolé, je me suis embrouillé, je ne parle pas de l'énoncé mais de l'intro -_-" ça n'a aucun sens si je dis énoncé :honte: (la honte ... )
                      Les liens sont là juste pour ne pas avoir des questions du genre : "J'ai pa conpritt coment kon utilis lai balise cod Help pleassse ! ".

                      Edit: Ah et aussi, pourquoi mettre le rédacteurs de l'exercice en très-petit ? C'est un peu irrespectueux non ?
                      • 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 à 11:41:34

                        Tu as raison, le rédacteur de l'exercice en très-petit c'est pas très correct, mes excuses Fender. ^^ En fait, j'avais regardé comment ça marchait sur les anciens énoncés, ils mettaient dans cette police. :p

                        PS : pourrais-tu spécifier quels autres liens je pourrais ajouter svp ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Staff désormais retraité.
                          1 septembre 2011 à 11:52:42

                          Qui est-ce qui poste les topics alors ?
                          • 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 à 11:54:21

                            Je me suis proposé, mais j'attends des retours positifs/ou corrections avant de le faire.
                            Par contre, je ne garantis pas que je pourrais le faire chaque semaine. :)
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Staff désormais retraité.
                              1 septembre 2011 à 11:56:26

                              Ah, parce que dans la page 14, tu dis :

                              Citation

                              Je ne serai hélas pas assez présent sur le forum, pendant les cours, pour pouvoir m'occuper de « l'animation » des posts d'exercice.


                              Enfin bref, moi je suis disponible si besoin, n'importe quel jour de la semaine, toutes les semaines.
                              • 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 à 11:57:41

                                Ca tombe bien, les cours n'ont pas encore commencé. ^^ Je me suis proposé pour cette semaine, c'est tout.
                                Après, le plus dur, c'est le début. Au pire, ensuite, on n'a plus qu'à copier/coller.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Staff désormais retraité.
                                  1 septembre 2011 à 11:59:10

                                  Citation : @che

                                  Edit: Ah et aussi, pourquoi mettre le rédacteurs de l'exercice en très-petit ? C'est un peu irrespectueux non ?


                                  Citation : lucas-84

                                  Tu as raison, le rédacteur de l'exercice en très-petit c'est pas très correct.



                                  C'est pas important ça. ^^

                                  Dites-moi ce que vous pensez de garder l'intro pour le topic global ?

                                  (Intro de lucas-84 plus générale : )

                                  Titre : [Défis] Débutants, venez vous entraîner en C !



                                  Bonjour à toutes et à tous les zéros !

                                  Vous apprenez le langage C ? Vous souhaitez vous entraîner pour pouvoir vous améliorer ?


                                  C'est votre jour de chance, vous êtes tombé sur le bon sujet ! :D

                                  En effet, chaque semaine, nous vous proposons un nouveau défi qui vous permettra de progresser et de vous faire plaisir. Au menu : des exercices en console comme en SDL [Donner ici des exemples d'exercies]

                                  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. Vous devrez toutefois avoir vu la troisième partie sur la SDL pour réaliser les défis en SDL. En réalité, il y en a pour tous les niveaux car chaque défi présente certains niveaux de difficulté (1 à 3 en général), ce qui permet de répondre aux besoins d'un maximum de personnes. ;)

                                  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. N'oubliez pas de le mettre entre les balises <secret><code type="c">/* Votre code ici */</code></secret>, ce qui permettra une lecture plus facile de celui-ci. ;)

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


                                  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 ! ^^

                                  Bien, voilà pour la petite introduction. Voici maintenant la liste des exercices qui ont déja été proposés :

                                  [Tableau des exercices]


                                  Et ensuite pour chaque exercice on met en intro une phrase du genre :

                                  "Ce défi est présenté dans le cadre de la série d'exercices organisée par GuilOooo", avec un petit lien vers le topic global.

                                  Dites-moi ce que vous en pensez ?

                                  @schadocalex et lucas-84 : On pourrait créer un compte "Exercices C", un peu à la manière du forum C++ ? Comme ça si l'un est absent pour une raison quelconque, les exercices peuvent continuer à vivre.

                                  Edit : Je suis aussi volontaire et disponible. ;)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Bla bla bla
                                    1 septembre 2011 à 12:01:31

                                    Citation

                                    @schadocalex et lucas-84 : On pourrait créer un compte "Exercices C", un peu à la manière du forum C++ ? Comme ça si l'un est absent pour une raison quelconque, les exercices peuvent continuer à vivre. ;)



                                    C'est une idée. ^^
                                    Avant, sur ce même forum, il y avait même un membre reponse qui s'occupait des corrections des exercices. ^^

                                    Sinon, l'introduction générale, ça me va. :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Staff désormais retraité.
                                      1 septembre 2011 à 12:03:07

                                      Je n'aime pas la mise en page, notamment les questions qui font office de titres (et donc pas sémantique). Sinon, pour l'organisation, je verrais plus comme les sessions speed modeling, avec un topic ou une page qui les recense tous.
                                      • 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 à 12:24:51

                                        Bon, sinon, si on veut poster le sujet aujourd'hui, je vais continuer la discussion.
                                        Bref, schadocalex, que proposes-tu à la place « des questions qui font office de titre » ?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Staff désormais retraité.
                                          1 septembre 2011 à 12:28:38

                                          Des titres.

                                          Et vaut mieux poster demain et que ça soit réfléchi que précipitamment aujourd'hui.
                                          • 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 à 12:31:05

                                            @_Fender: Moi j'ai déjà donné mon avis, elle est bien mais il manque des liens ;)


                                            Oui je suis pour le compte exercice C :) Mais il faut demander à notre modo préférer GuilOooo (<3) <hs>nohar aussi est sympa ... </hs>

                                            @schadocalex: +1
                                            • 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 à 12:35:44

                                              Voilà ce que ça donne avec les titres :
                                              @@che, je réitère : quels liens peut-on ajouter à ton avis ?

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

                                              Bonjour à toutes et à tous les zéros !

                                              Vous apprenez le langage C ? Vous souhaitez vous entraîner pour pouvoir vous améliorer ?



                                              C'est votre jour de chance, vous êtes tombé sur le bon sujet ! :D
                                              Cette semaine, nous vous proposons de créer zMol, un calculateur de masse molaire. Ne vous enfuyez pas en voyant ce titre un peu barbare, l'essentiel c'est de s'entraîner. Toutes les notions pré-requises et externes à la programmation seront expliquées. :)

                                              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 est facultative, vu que nous n'en aurons pas besoin cette semaine. ;)

                                              Où dois-je poster mon code ?



                                              Vous pouvez poster votre code sur ce sujet, ce n'est qu'ici que l'on pourra vous aider à améliorer votre code. N'oubliez pas de le mettre entre les balises <secret><code type="c">/* Votre code ici */</code></secret>, ce qui permettra une lecture plus facile de celui-ci. ;)

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



                                              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 ! ^^

                                              Bien, voilà pour la petite introduction. On passe à l'énoncé ? :D
                                              Il a été écrit par _Fender_, un grand merci à lui ! :)

                                              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 à 12:41:35

                                                Hmm, tu l'as fait exprès de mettre des titre1 ? :D Je verrais plus une présentation sérieuse avec des titres, dont un pour la "FAQ".
                                                • 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 à 12:43:12

                                                  Bon, lucas, moi ça me vas, mais juste histoire d'assurer le coup :

                                                  Citation


                                                  N'oubliez pas de le mettre entre les balises, ce qui permettra une lecture plus facile de celui-ci. ;)

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


                                                  Vous pouvez poster votre code sur ce sujet, mais ce n'est qu'ici que l'on pourra vous aider à améliorer votre code.

                                                  • 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 à 12:44:01

                                                    Faut arrêter la masturbation intellectuelle, qu'est-ce qui est important ? Votre intro (qui ne donne vraiment pas envie de lire au passage) ou l'exercice en lui-même ?
                                                    Je pense que pas mal d'exercices ne sont pas adaptés aux débutants, donc osef de l'intro, postez l'exo tel quel sur un nouveau sujet, ça fera très bien l'affaire et ça permettra de se concentrer sur l'essentiel. ;)
                                                    Eventuellement faire un topic qui regroupe tous les exos avec 1 exercice par post où seul le modérateur peut poster serait adapté. Ca virerait tous les posts inutiles et discutions inutiles.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      1 septembre 2011 à 12:46:37

                                                      C'est un peu extrémiste mais je suis pour une présentation brève et un lien vers le topic qui recense tout, dans lequel il y aurait toutes les informations.
                                                      • 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 à 12:47:05

                                                        Pouet_Forever, ou comment arrêter les élans de génie de tout le monde. :-°
                                                        Oui, maître, on va poster l'exercice tel qu'il est.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Staff désormais retraité.
                                                          1 septembre 2011 à 12:51:36

                                                          Ouais bon après tout, Le maitre ( :lol: )à raison, on se fais *h**r pour rien ...

                                                          • 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 à 12:53:17

                                                            Mais si, faut quand même expliquer (CQQCOQP), mais pas forcément quand on poste l'exercice.
                                                            • 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 à 12:53:32

                                                              Je ne suis pas 'maître', je ne fais que donner mon avis, libre à vous d'en tenir compte... Ou pas. ;)
                                                              • 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