Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices pour débutants en C

Venez progresser !

    29 février 2012 à 21:08:22

    Bonjour à tous


    Je vous souhaite la bienvenue sur le topic des exercices pour les débutants en C. :)


    Présentation


    Dans ce sujet, vous aurez la possibilité de vous entraîner à la programmation en langage C grâce aux exercices proposés par des membres de la communauté. Comme le dit le vieux dicton : "L'entraînement est l'élément clef de la réussite". Cela s'applique à tous les domaines, en particulier à la programmation. Vous disposez à présent d'exercices adaptés aux niveaux des débutants.

    Si vous êtes plus expérimenté et que désirez des exercices plus poussés, il existe un topic géré collectivement par des zéros, ce dernier sera idéal pour vous. Les exercices présentés se nomme défis. Voir le sujet de recensement des défis.


    Les exercices


    Un exercice sera proposé chaque début du mois. Tous les exercices seront recensés dans ce topic, les intéressés pourront ainsi choisir de s'entrainer sur un exercice plus ancien. En effet, la présentation d'un nouvel exercice ne ferme pas les précédant. ;)
    À la fin de chaque mois, la correction de l'exercice courant vous sera présenté. Pour les consulter, un lien sera disponible dans le tableau ci-dessous ainsi que sur le topic de l'exercice.


    Organisation


    Tout le monde peut participer et proposer des exercices.


    Contrairement à ce qui ce faisait parfois dans les deux précédants topics d'exercices pour débutants en C (ici et ), la publication d'un exercice se fait de la manière suivante : on poste l'exercice dans un sujet à part sur le forum C puis on poste dans le sujet principal de la façon suivante :


    Les participants devront impérativement répondre dans le sujet qui sera créé spécialement pour l'exercice en question.


    Recensement de tout les exercices

    Les anciens exercices


    Voici tous les exercices qui ont été proposés depuis le 14 octobre 2008 jusqu'à mars 2011 :

    DateTitreAuteurThèmeCorrectionAuteur du code proposé
    octobre 2008 zReader shareman Manipulation des fichiers (ouverture, écriture) shareman
    octobre 2008 zBinary shareman Base binaire, algorithmique shareman
    novembre 2008 zTri shareman Tri, comparatif, secondes système shareman / yoch
    novembre 2008 zStrcapitalize Invading Chaine de caractères shareman
    novembre 2008 zAddition shareman Matrice, pure algorithmique Eusebus
    décembre 2008 zMath shareman Algorithmique, pile shareman
    janvier 2009 zGame shareman Révisions du cours sur le C shareman
    mars 2009 zStrstat Eusebus Chaînes de caractères Eusebus/bluestorm
    mai 2009 zStrSearch Eusebus Chaînes de caractères Eusebus
    juin 2009 zBrace shareman Algorithmique, expressions parenthésées shareman
    juillet - août 2009 zGrep Arthurus argc/argv, chaînes, fichier, algo
    /
    /
    Janvier 2010 z0zéro GurneyH algo, écrire un nombre en toute lettre GurneyH
    Janvier 2010 zSommeChiffre GurneyH Calculer la somme des chiffres d'un nombre donné GurneyH
    février 2010 zArray1D GurneyH Pratique des tableaux à une dimension. GurneyH
    février 2010 zBigInt GurneyH Opérations surs les grands entiers. GurneyH
    Mars 2010 zLCD GurneyH Simulation d'un afficheur 7 segments. GurneyH
    Mars 2010 zCoupure Lithrein Jouer au banquier. Lithrein
    Avril 2010 zWordCount Lithrein Manipulation de fichiers Lithrein
    Avril 2010 zJustificator Lithrein / Candide Justification de texte Lithrein
    Mai 2010 zTransforme Lithrein Manipulations basiques de tableaux Lithrein
    Juin 2010 zPointers Lithrein Manipulations de pointeurs Lithrein
    Juin 2010 zIdentificator candide Algorithmique
    /
    /
    Juin 2010 zChance Lithrein Manipulation du temps et/ou pratique algorithmique Lithrein
    Juillet 2010 zConvert Pouet_forever Conversion chiffre -> chaine de caracteres Pouet_forever
    Septembre 2010 zCalc Lithrein Creer une calculatrice Lithrein
    Octobre 2010 zCrypt Tosh Initiation au cryptage Tosh
    Décembre 2010 zMorp Pouet_forever Boucles, manipulation de tableaux et pointeurs Pouet_forever
    Décembre 2010 zMorp 2 Pouet_forever Approfondissement Pouet_forever
    Décembre 2010 zMorp SDL GurneyH Extension de l'exercice de Pouet_forever a une version graphique
    /
    /
    Février 2011 getline (3) Lithrein Recoder une fonction standard de saisie Lithrein
    Mars 2011 zConjug paraze manipuler les chaines de caracteres paraze

    Ils sont toujours d'actualité, consultez-les cela ne vous fera pas de mal. ;)


    Les nouveaux exercices


    Après un an d'arrêt, voici les exercices que l'on vous propose :


    DateTitreAuteurThème
    Mars 2012 zArithmetic paraze Révisions du cours C
    Mars 2012 zDemineur SylafrsOne Tableaux, fichiers
    Avril 2012 zChiffrement tib92 Chiffrement
    Mai 2012 zWTF paraze Manipulation de fichiers
    Août 2012 zPlus paraze Aléatoire, temps, fichiers, pratique du C
    Septembre 2012 zDate tib92 Gestion des dates
    Octobre 2012 zSubRip paraze Aléatoire, temps, fichiers, pratique du C
    Novembre 2012 zTimer tib92 Gestion du temps, l'aléatoire et manipulation des fichiers
    Novembre 2012 zBlocnote qwerty123 Manipulation de fichiers
    Juillet 2013 zMaster paraze Révisions du cours C – Algorithmique – IA
    Août 2013 zTarot paraze Révisions du cours C – Algorithmique – IA
    Septembre 2013 zSoundex paraze Algorithme phonétique


    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 les deux premières parties du tutoriel C de M@teo21.


    >>> Où dois-je poster mon code ?

    Vous devez poster votre code dans 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 !


    >>> Comment dois-je poster mon code ?

    Afin de poster vos codes, veuillez utiliser les balises de code : <code type="c">/* Votre code ici */</code>.
    Plus d'informations sur les balises de code :



    Bonne chance à tous ! :)

    -
    Edité par paraze 28 octobre 2013 à 14:47:05

    • Partager sur Facebook
    • Partager sur Twitter
      29 février 2012 à 21:22:28

      Mois: Mars
      Sujet: Fonctions, temps, nombres pseudo-aléatoires etc. - révisions du cours C


      zArithmetic


      Le sujet se trouve ici : http://www.siteduzero.com/forum-83-742 [...] ithmetic.html.
      • Partager sur Facebook
      • Partager sur Twitter
        29 février 2012 à 22:13:41

        Bonsoir,

        Je ne suis pas encore prêt car je n'ai pas fini de lire et d’approfondir les cours,
        mais je pense pouvoir me lancer dans ces exos dans 1 mois ou 2 au plus.
        Cependant, très bonne idée.. ;)

        Eric
        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2012 à 13:12:49

          Merci Taurre. :)

          @colibri972 : Prends tout ton temps, ce n'est pas une course. J'ai pu voir que tu en étais déjà au chapitre des tableaux, tu peux donc faire les deux premiers énoncés de l'exercice du mois : zArithmetic.
          Ce n'est pas une obligation bien évidemment.


          J'espère qu'il y aura un certain nombre de participations. :)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            4 mars 2012 à 13:39:08

            c'est bien de proposer des exercices :)
            un grand merci à tous ! ^^
            • Partager sur Facebook
            • Partager sur Twitter
              8 mars 2012 à 21:10:57

              j'irai jeter un œil
              Il ne faut pas non plus aller trop lentement, ça avance tellement vite !!!
              • Partager sur Facebook
              • Partager sur Twitter
                8 mars 2012 à 21:23:45

                Qu'est-ce qui avance tellement vite ? :)
                • Partager sur Facebook
                • Partager sur Twitter
                  13 mars 2012 à 15:59:46

                  Mois: Mars
                  Sujet: Tableaux, fichiers


                  zDemineur


                  Le sujet se trouve ici : http://www.siteduzero.com/forum-83-746 [...] demineur.html.

                  ______

                  Edit : rapide, même dans ta signature ^^
                  Nota : pour le format du topic, vaudrait-il mieux pas ajouter un lien vers ce topic ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  perror(const char * str); will save your life !
                    16 mars 2012 à 21:56:12

                    C'est une très bonne chose que de reprendre ces défis!
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      31 mars 2012 à 16:23:08

                      Mois : Mars-Avril
                      Sujet : chiffrement

                      zChiffrement



                      le sujet est dans ma signature ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        3 avril 2012 à 20:05:41

                        Mois : Avril
                        Sujet : morpion

                        zMorpion



                        le sujet est ici
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          4 avril 2012 à 20:18:03

                          Oh j'avais pas vu ce poste, excellente initiative.
                          Je poste pour pouvoir le suivre :-°
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 avril 2012 à 16:05:33

                            Réponse un mois plus tard (pour faire un up :D )
                            ==> Y'a un bouton pour suivre :p

                            J'ai une idée de sujet, mais je suis pas trop sûr ^^
                            ce serait de créer son propre système de base de données (avec des fichiers)

                            Mais les consignes seraient là pour bien aider
                            • Partager sur Facebook
                            • Partager sur Twitter
                            perror(const char * str); will save your life !
                              14 avril 2012 à 16:10:03

                              Créer une sorte de BDD est le dernier des « défis » proposés par les membres du forum C.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Staff désormais retraité.
                                14 avril 2012 à 16:11:36

                                erf ^^"
                                j'ai pas vu le topic :/

                                tu aurais un lien ? (je ne trouve pas ^^')
                                • Partager sur Facebook
                                • Partager sur Twitter
                                perror(const char * str); will save your life !
                                Anonyme
                                  14 avril 2012 à 16:13:12

                                  Citation : Sylar

                                  Réponse un mois plus tard (pour faire un up :D )
                                  ==> Y'a un bouton pour suivre :p

                                  Oui mais c'est encore mieux quand on poste :-°

                                  Sinon, bonne idée :)

                                  Citation : lucas-84

                                  Créer une sorte de BDD est le dernier des « défis » proposés par les membres du forum C.


                                  Et y aura pas d'autre défis ? ça fait bien longtemps que Exercices C n'a pas proposer un.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    14 avril 2012 à 16:15:03

                                    En effet, on manquait d'idées. En réalité, il me semble qu'il reste quelques défis non postés, je vais up la conversation que j'avais en MP pour voir si ça peut se faire.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Staff désormais retraité.
                                    Anonyme
                                      14 avril 2012 à 16:15:16

                                      D'ailleurs je ne sais pas ce que devienne les défis. On dirait bien qu'ils sont morts (enfin c'est vrai que le dernier n'a pas attiré grand monde, pas même un seul code posté).

                                      Sinon comme exercice on pourrait proposer un bloc-note simple : l'utilisateur rentre ce qu'il veut dans la console et on sauvegarde ça dans un fichier. Bien entendu avec une gestion des chaînes de caractères poussées, pour pouvoir rentrer autant de caractères que l'on veut (créer un système de chaînes à taille variable en gros).

                                      @SylafrsOne : ici.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 avril 2012 à 16:17:24

                                        @informaticien : c'est zReader, tout en haut de la liste

                                        merci :)

                                        Edit : je comprend mieux pourquoi défi ^^

                                        je ne pensais pas à quelque chose d'aussi poussé X)
                                        juste une gestion de fichiers binaires ^^

                                        ---------------------

                                        Ou alors creer un gestionnaire de version ^^
                                        on pourrait y mettre du réseau, et pas mal de trucs pour gerer les conflits
                                        y'a moyen de faire un bon sujet
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        perror(const char * str); will save your life !
                                        Anonyme
                                          14 avril 2012 à 16:23:20

                                          Citation : SylafrsOne

                                          @informaticien : c'est zReader, tout en haut de la liste



                                          Ouais mais là il faudrait faire comme un éditeur de texte : rentrer autant de caractères que l'on veut.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            14 avril 2012 à 16:25:45

                                            Enfin bon pour faire un truc basique c'est assez rapide : un tableau, deux/trois realloc en coefficient multiplicateur et c'est torché. Maintenant pour un exercice pour débutants ça pourrait être intéressant de tester les connaissances en pointeurs. Je veux bien plussoyer (voire même rédiger l'exercice si certains manquent de temps pour le faire).
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Staff désormais retraité.
                                              14 avril 2012 à 16:40:57

                                              Je verrai bien un exo' autour des nombres en tout genre.
                                              Calcul de Pi, des nombres premiers, PGCD, PGCM, quelques suites, etc. ^^

                                              Mais bon.


                                              Sinon pour l'éditeur de texte, je ne suis pas très chaud, de plus, sans ncurces c'est pas top-top.
                                              Pourquoi pas un gestionnaire de fichier en console (mais bon, toujours sans ncurces...) ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                14 avril 2012 à 16:41:38

                                                Citation

                                                Pourquoi pas un gestionnaire de fichier en console (mais bon, toujours sans ncurces...) ?



                                                Là, c'est carrément zReader, non ?
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Staff désormais retraité.
                                                  14 avril 2012 à 16:44:17

                                                  Non, là c'est pour éditer un fichier etc...

                                                  Je parle plutôt d'un truc qui te listerait les fichiers d'un dossier et qui te permettrait de te déplacer dans des répertoires.
                                                  Mais on pourrait aussi rajouter un éditeur de texte à la fête. :p


                                                  Image utilisateur






                                                  Ranger sans ncurces quoi. :p
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    14 avril 2012 à 16:47:26

                                                    Donc utilisation de dirent.h (pas officiellement portable).
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Staff désormais retraité.
                                                      14 avril 2012 à 16:53:56

                                                      #include <dirent.h> 
                                                      /* Pour l'utilisation des dossiers */
                                                      
                                                      #ifndef WIN32
                                                          #include <sys/types.h>
                                                      #endif
                                                      

                                                      Couvre pas mal de système AMHA.


                                                      Edit : De toutes façons, osef. :p
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        14 avril 2012 à 16:55:13

                                                        dirent.h n'est pas dans la norme (pseudo-portable). Mais t'as raison, osef. :p
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Staff désormais retraité.
                                                          14 avril 2012 à 17:19:48

                                                          J'avais eu une idée d'exercice, mais qui auraient peut être davantage sa place dans un atelier sur "Autres langages" :

                                                          * Manipulation d'images : faire une mini-lib pour lire/écrire une image BMP (c'est je pense un des format les plus simple), mettre en place quelques algorithmes du genre tracer un pixel/ligne/cercle/rectangle, conversion de couleurs (genre passer de 24bits à 8bits), agrandissement/rétrécissement d'images, etc.

                                                          Il y en aurait pour à peu prêt tous les niveaux je pense. (Le plus compliqué étant de comprendre un peu le format et la manière de le lire)


                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Anonyme
                                                            14 avril 2012 à 17:22:12

                                                            J'aime beaucoup l'idée du BMP. J'ai toujours voulu en faire un, ce serait l'occasion de me lancer.

                                                            Après les algorithmes c'est aussi une bonne idée, ça permet de faire pratiquer (j'essayerai de les faire en assembleur). Il faudra la SDL par contre ou pas ?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Exercices pour débutants en C

                                                            × 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