Mon premier petit bout de code

15 sujets de 1 à 15 (sur un total de 41)

  • Tiki

      #235902

      #include <stdio.h>
      #include <stdlib.h>

      int main()
      {
      int age=0;
      int resultat=0;
      int encore=0;
      do
      {
      printf(« Quel est ton age ? \n »,age);
      scanf(« %d »,&age);
      if(age>=18)
      {
      printf(« tu es majeur!\n »);
      age++;
      resultat=age-18;
      printf(« tu etais mineur il y a %d an(s)\n »,resultat);
      }
      else
      {
      printf(« tu es mineur !\n »);
      resultat=18-age;
      printf(« Tu seras majeur dans %d an(s)\n »,resultat);
      }
      printf(« Veux-tu recommencer ? 1.yes or 2.no \n »,encore);
      scanf(« %d »,&encore);
      }
      while (encore==1);
      return 0;
      }

      C’est mon premier truc qui fait autre chose que de dire « Bonjour ».
      Évidemment, c’est pas grand chose et trĂšs amĂ©liorable, mais j’en suis fier quand mĂȘme. J’ai laissĂ© un peu l’info de cotĂ© ces derniers mois, et je m’y remet depuis 5 jours.
      Bien sur, si je le poste ici, c’est surtout pour avoir vos avis concernant les maladresses et comment les amĂ©liorer pour progresser.

      Merci.

      Tiki

      Anonyme

        #235905

        J’ai rien compris mais je dis bravo quand mĂȘme 😀

        Anonyme

          #235906

          pas mal 🙂

          tu peux condenser les lignes :

          age++;
          resultat=age-18;

          en une seule ligne, en factorisant tes deux operations

          sinon c est cool

          faut continuer

          Anonyme

            #235910

            yeahhh c’est toujours un grand moment son premier code fonctionnel ^^bienvenue dans la team des codeurs fou ^^
            attention le code peux vite devenir une drogue.

            MĂȘme si la c’est simple et lisible , prend l’habitude de commenter ton code , plus tu commentera et moins tu te prendra la tĂȘte quand tu reviendra sur ton code ^^
            Apres dans quelques annĂ©es tu n’auras plus besoin de commenter car tu lira le code aussi bien que NEO ^^

            AmiDARK

              #235913

              Oula … D’un coup je me suis senti revenir presque 30 ans en arriĂšre lors de mes premiers programmes en BASIC-1 :p
              Quoi ? Je fais les 40 cet Ă©tĂ© ? Meeuuuhh nonn !!! C’est pas grave docteur ! :p

               

              huggyone76

                #235917

                Raelito a raison, surtout en C il y a de grands spécialistes du « condensage ». Sauf que :

                * Ca n’apporte rien une fois compilĂ©

                * Tu perds en lisibilité.

                Eventuellement, tu pourrais ne mĂȘme pas avoir besoin d’initialiser tes entiers comme tu le fais au dĂ©but. Mais c’est une base pour quelque chose de propre… Tu as le choix ! 🙂

                Remarque, c’est comme ton >=18, tu pourrais mettre un >17, ça suffit… 😀

                Allez, bravo en tout cas, il faut un dĂ©but Ă  tout !!! (Et ça me rappelle mes annĂ©es d’ingĂ©nieur dĂ©veloppement… ĂŽ joie… :D).

                A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+Vampire V2 1200 - Mac Mini 1.42 sous MOS - Just CPC 128k - CPC 6128 - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
                C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 4Mo + CF - Sharp X68000 CZ-611C 10Mo + CF + ext. MIDI

                Bison bourré

                  #235920

                  je te lance un défi jeune codeurwan :

                  afficher les 15 premier nombre premier 🙂   (par calcul)

                  Les conseils de bison bourré : "Fonceeez !"

                  sayasupacrew

                    #235931

                    punaise extras !

                    moi qui rĂȘve de faire la mĂȘme chose.

                    si on pouvais connaitre plus de choses sur ce tu as mis au premier poste,

                    quel language utilise tu ?
                    comment fonctione t-il ?

                    Sy

                    https://www.youtube.com/@sayasupa

                    huggyone76

                      #235932

                      C’est du C, rien de bien sorcier lĂ -dedans.

                      ‘ DĂ©clarations des bibliothĂšques standards Ă  utiliser

                      #include <stdio.h>
                      #include <stdlib.h>

                      ‘ ProcĂ©dure principale (main)

                      int main()
                      {

                      ‘ Initialisation de 3 variables entiĂšres misent Ă  zĂ©ro
                      int age=0;
                      int resultat=0;
                      int encore=0;

                      ‘ DĂ©but de la boucle « do…while’ qui se fait au moins une fois en entier et se termine quand la condition qui se trouve sur la ligne while (tant que…) soit vĂ©rifiĂ©e

                      do
                      {

                      ‘ Ecrit la phrase « Quel est ton age ? » avec un retour Ă  la ligne et la rĂ©ponse sera mise dans la variable « age »
                      printf(« Quel est ton age ? \n »,age);
                      scanf(« %d »,&age);

                      ‘ Si age est supĂ©rieur ou Ă©gal Ă  18…
                      if(age>=18)
                      {

                      ‘ Le prog Ă©crit « tu es majeur! »
                      printf(« tu es majeur!\n »);

                      ‘On augmente age de 1
                      age++;

                      ‘ On met dans « resultat » la valeur de « age-18 »
                      resultat=age-18;

                      ‘On Ă©crit « tu Ă©tais mineur il y a  » (valeur de resultat) « an(s) »
                      printf(« tu etais mineur il y a %d an(s)\n »,resultat);
                      }

                      Si la valeur de age n’est pas supĂ©rieure ou Ă©gale Ă  18 alors…
                      else
                      {

                      ‘ On affiche « tu es mineur! »
                      printf(« tu es mineur !\n »);

                      ‘L’inverse de tout Ă  l’heure pour Ă©crire dans combien de temps tu seras majeur
                      resultat=18-age;
                      printf(« Tu seras majeur dans %d an(s)\n »,resultat);
                      }

                      ‘ On affiche un message pour savoir si tu veux recommencer ou pas
                      printf(« Veux-tu recommencer ? 1.yes or 2.no \n »,encore);

                      ‘ On met la valeur de la rĂ©ponse dans la variable « encore »
                      scanf(« %d »,&encore);
                      }

                      ‘Condition pour recommencer (reprendre la boucle au « do » du dĂ©but), c’est que tu rĂ©pondes « 1 » qui correspond à « yes » dans la question. Toute autre rĂ©ponse termine la boucle.
                      while (encore==1);

                      ‘On termine le programme.
                      return 0;
                      }

                       

                      Simple le C, non ? 🙂

                      A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+Vampire V2 1200 - Mac Mini 1.42 sous MOS - Just CPC 128k - CPC 6128 - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
                      C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 4Mo + CF - Sharp X68000 CZ-611C 10Mo + CF + ext. MIDI

                      Hialmar

                        #235934

                        Dans le printf pour demander l’Ăąge et pour recommencer, tu passes en paramĂštre Ăąge et encore mais ils ne sont pas utilisĂ©s.

                        Sinon, la fonction scanf renvoie le nombre de variables qui ont Ă©tĂ© modifiĂ©es. Il faudrait tester ça pour savoir si l’utilisateur n’aurait pas tapĂ© une lettre au lieu d’un chiffre.

                        Enfin, cĂŽtĂ© initialisations il faut absolument les faire en C. Sinon ça peut faire n’importe quoi. Pour le scanf de encore ici, si par malheur encore valait 1 et que l’utilisateur tape une lettre ça part en boucle infinie…

                        --
                        Patrice aka Hialmar
                        A500+/A600+aca620/A1200+aca1233
                        Membre de Silicium

                        Tiki

                          #235939

                          Merci à tous pour les retours et conseils 😀
                          Les cours d’infos du CNED me semblent assez obscurs et peu pratiques. J’utilise le pdf d’openclassroom ( ex site du zĂ©ro ), comme support, et j’y arrive mieux. Comme je gĂšre assez mal la condition while seule ( conditions vraies et fausses ), j’utilise Do pour  » forcer  » l’entrĂ©e en boucle. Ca viendra avec l’entraĂźnement.

                          @Saya : voilĂ  ce que j’arrive Ă  faire en seulement 5 jours. Si je peux le faire, tu le peux aussi. Huggy a dĂ©crit mon programme mieux que je n’aurais pu le faire. Merci Huggy 😀

                          @Hialmar
                          : Oui bien sur, une fonction test. C’est juste que je ne sais pas encore la faire. De la mĂȘme maniĂšre, je ne sais pas encore gĂ©rer les variables avec des lettres ou chaines de lettres. Ca va venir vite. Avant la fin de cette semaine j’espĂšre. Ca me servirai, par exemple, Ă  demander un prĂ©nom, ou demander « oui » ou « non », et non 1.Oui 2.non
                          J’ai effectivement initialiser « encore » Ă  0 pour pouvoir utiliser 1 et recommencer et n’importe quoi d’autre pour arrĂȘter. La aussi, c’est par manque de connaissances. Enfin, Hialmar, je n’ai pas trop compris ta premiĂšre phrase 😀

                          @BB : Ok, je me penche sur le TP du cours en premier, et j’essaye ton dĂ©fi. Je dois avoir suffisamment de connaissances en maths et info pour le faire. Il me manque l’algorithme. Le plus dur 😀

                          @Jbam et AmiDark : ben oui, en lisant rapidement le dĂ©fi de Huggy cet aprem, j’ai eu beaucoup de mal Ă  rester concentrĂ© sur mon taf ensuite. Une drogue dĂźtes vous 😀

                          @Huggy et Raelito : Comment ça  » condenser  » ?

                          Merci encore

                          Tiki

                          Anonyme

                            #235941

                            @tiki en regle generale j essaie de limiter la taille de mon source

                            plus il y a de tartines de code plus difficile c est de le maintenir

                            parfois on peut obtenir le meme resultat avec moins de code tout en gardant quelquechose de lisible et de stable

                             

                            evidemment, faire du code super compact que personne ne peut relire  n est pas forcement une bonne chose 🙂

                            huggyone76

                              #235953

                              @Tiki, c’est Bison BourrĂ© qui t’a donnĂ© un dĂ©fi, pas moi ! 😉

                              Et j’ai fait les commentaires « vite fait », c’est pas hyper prĂ©cis…

                              Ce que dit Hialmar, c’est que dans ton premier printf, le « ,age » Ă  la fin ne sert Ă  rien. Tu l’avais peut-ĂȘtre mis pour te faire une trace au dĂ©part ???

                              Quant Ă  « condenser », je suppose que Raelito (comme moi) parlons de la possibilitĂ© en C (mais dans plein de langages !!!) de rĂ©duire au maximum le code. Ca peut avoir de l’intĂ©rĂȘt pour « raccrocher » un bout de code Ă  un autre (ce qui entre dans la mĂȘme logique du programme, en une seule ligne), mais ce n’est pas du tout une obligation.

                              Dans les programmes les plus « condensĂ©s », tu pourrais t’amuser Ă  imbriquer par exemple des conditions pour au final obtenir des rĂ©sultats plus rapidement (du moins, en terme de « logique », la lisibilitĂ© est plutĂŽt moins bonne et les bons compilateurs font de toute façon le boulot Ă  ta place !).

                              Par exemple ton :

                              age++;
                              resultat=age-18;

                              Bon, lĂ  c’est du simplissime, mais tu pourrais Ă©crire (enfin si je ne dis pas d’Ăąnerie, ça fait longtemps que je n’Ă©cris plus de C…) :

                              resultat=(++age)-18; (la prĂ©incrĂ©mentation, ajoute d’abord 1 Ă  la variable age puis fait le calcul complet… si dans la mĂȘme expression tu Ă©cris : resultat=(age++)-18, ça ne fonctionne pas, ta variable « age » augmenterait de 1 APRES le calcul de l’expression.

                              ou mĂȘme (mais lĂ  on ne condense plus vraiment…)

                              resultat = age -17;

                              En terme de rĂ©sultat, c’est identique ! (sauf Ă©videmment que dans ton cas et le premier cas ici, tu augmentes bien la valeur de la variable de 1 alors que tu n’y touches pas dans mon second cas… du coup si tu rĂ©utilises « age » ensuite, il n’a pas la mĂȘme valeur !!! 🙂 ). Mais tu pourrais faire : resultat = (age++)-17; puis rĂ©utiliser age ensuite…

                              Evidemment, qu’on me corrige si je dis une(des) bĂȘtise(s), mon dernier programme en C remonte Ă … euh… 2002 ? 😉 Mais bon, les principes de base restent les mĂȘmes d’un langage Ă  l’autre…

                              DĂ©solĂ© pour mon blabla… !

                              A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+Vampire V2 1200 - Mac Mini 1.42 sous MOS - Just CPC 128k - CPC 6128 - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
                              C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 4Mo + CF - Sharp X68000 CZ-611C 10Mo + CF + ext. MIDI

                              Bison bourré

                                #235962

                                c’est quoi tous ces As de la programmation ici, tous les amigaiste sont dĂ©veloppeurs ou quoi ? 😉

                                au fait pourquoi le C ?   perso je préfÚre le PHP.

                                Les conseils de bison bourré : "Fonceeez !"

                                Anonyme

                                  #235972

                                  comparer le PHP au C c’est comme comparer le DOS au WORKBENCH ^^

                                15 sujets de 1 à 15 (sur un total de 41)

                                • Vous devez être connecté pour répondre à ce sujet.

                                › Forums › AmigaOS, MorphOS et AROS › DĂ©veloppement › Mon premier petit bout de code

                                Amiga Impact