Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bonus structure

    23 octobre 2021 à 18:49:42

    Alors, essaies la sans pointeur et sans rien retourner ...

    -
    Edité par PierrotLeFou 23 octobre 2021 à 18:53:06

    • Partager sur Facebook
    • Partager sur Twitter

    Le Tout est souvent plus grand que la somme de ses parties.

      23 octobre 2021 à 19:25:38

      edgarjacobs a écrit:

      @michelbillaud: entièrement d'accord avec toi, c'est une habitude que je n'arrive pas à prendre (ou à perdre). Quand j'ai commencé à programmer, c'était sur cartes perforées, on ne s'enquiquinait pas à mettre un espace si ce n'était pas nécessaire. Ça m'est resté.

      Edit suite à n-->0: là, je mettrai un espace pour que le code soit clair.

      -
      Edité par edgarjacobs il y a environ 1 heure


      Moi aussi j'ai commencé sur carte perforée (si on ne compte pas le calculateur de table HP au lycée), c'est pas une raison.

      Les bonnes habitudes de la lisibilité pour la présentation des programmes, c'est venu tardivement. La plupart des bouquins des années 70-80 (les cours de Fortran) c'était assez crade de ce côté là. Je "recommande" en particulier les Exercices de Programmation en Fortran IV, de JP Lamoitier, qui recommande dans l'intro d'indenter ses programmes, mais ne le fait dans aucun des codes qu'il présente (ils sont d'ailleurs faux pour la plupart, pour tout arranger).

      On remarque par exemple que dans les bouquins sur Pascal, c'était un peu mieux (indentation), mais on conservait souvent l'habitude de mettre plusieurs instructions sur une ligne. Voir par exemple  http://www.standardpascaline.org/CDC6000_Pascal_Compiler_Pascal_1972.pdf ce qu'on ne ferait plus aujourdhui.

      n-->0 on ne met pas d'espace pour fait croire aux débutants qu'il existe un opérateur "downto". Ca leur donne une occasion de lire le manuel de C :-)

      @RiadOuhibi :je ne comprends pas la différence entre ma fonction "afficheProfil" et la fonction "LireEtudiant"

      - d'abord elles s'appellent pas pareil, parce qu'elle ne font pas la même chose.

      - dans afficheProfil, c'est le programme qui affiche des données et l'utilisateur qui lit. Dans LireEtudiant c'est l'inverse.

      et ça veut dire que LireEtudiant modifie une structure existante. Rappel : en C, les paramètres sont passés par valeur, c'est-a-dire que la fonction appelée reçoit une copie de la valeur fournie à l'appel. Si la fonction modifie la copie, et bien, ça va pas faire le boulot.

      -
      Edité par michelbillaud 23 octobre 2021 à 19:26:15

      • Partager sur Facebook
      • Partager sur Twitter
        23 octobre 2021 à 20:14:21

        Moi aussi je vais un peu évoquer le bon temps... Je n'ai pas connu les cartes perforées, mais ma première expérience en programmation, c'était en Basic sur Amstrad CPC. Les lignes d'instructions ressemblaient à :

        10 AFTER 250 GOSUB 60:CLS
        20 PRINT "Devine une lettre en 5 secondes"
        30 a$=INKEY$:IF flag=1 THEN END
        40 IF a$<>CHR$(INT(RND*26+97)) THEN 30
        50 PRINT a$;" est exacte. Tu as gagne !"
        55 SOUND 1,478:SOUND 1,358:END
        60 PRINT"Trop tard. J'ai gagne !"
        70 SOUND 1,2000:flag=1:RETURN

        Du coup, l'indentation, je me demande bien ce que c'est... ;)

        (Ce programme est extrait du manuel de l'ordinateur, dont un bon tiers était consacré à la programmation en Basic.)

        -
        Edité par robun 23 octobre 2021 à 20:16:15

        • Partager sur Facebook
        • Partager sur Twitter
          23 octobre 2021 à 21:59:11

          Moi j'aurai plutôt mis 

          while (n --> 0) {
           ...
          }

          avec des espaces avant et après la flèche, pour que ça fasse encore plus tordu

          • Partager sur Facebook
          • Partager sur Twitter
            23 octobre 2021 à 22:19:14

            michelbillaud a écrit:

            Une fonction ajouterBonus applicable à un etudiant, ça serait bien.

            LireEtudiant aussi.

            -
            Edité par michelbillaud il y a environ 7 heures

            On pourra toujours faire mieux sur un programme comme celui-ci mais ne dit-on pas que l'ennemi du bien est le mieux ?

            Je vous rappelle l'énoncé:

            Ecrire un programme C, qui lit les noms complets des étudiants et leurs moyennes dans un tableau de structures. Puis actualise ces moyennes en ajoutant un bonus de:

            •  1 point pour les étudiants ayant une note strictement inférieure à 10.
            •  0.5 point pour les étudiants ayant une note entre 10 et 15 incluses.

            N.B.: la structure doit avoir deux éléments: une chaîne de caractères et un réel.


            Est-ce que le dernier code que je vous ai envoyé répond à la consigne ?

            A mon humble avis, il serait imprudent de s'éloigner du sujet en ajoutant divers fonctions qui ne font que compliquer la réponse à un problème simple. 



            • Partager sur Facebook
            • Partager sur Twitter
              24 octobre 2021 à 0:37:38

              Si tu suis les consignes, ton code devrait être correct.
              Mais je pensais que tu voulais aller plus loin.
              Et pour revenir à l'âge des dinosaures, j'ai aussi connu les cartes perforées et les rubans perforés.
              Pour les rubans, c'était une bonne façon d'apprendre l'ASCII à travers les trous ...
              Et que dire des machines qui fonctionnaient seulement avec des dérouleurs de bandes magnétiques sans aucun disque.
              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                24 octobre 2021 à 1:44:03

                RiadOuhibi a écrit:

                michelbillaud a écrit:

                Une fonction ajouterBonus applicable à un etudiant, ça serait bien.

                LireEtudiant aussi.

                -
                Edité par michelbillaud il y a environ 7 heures

                On pourra toujours faire mieux sur un programme comme celui-ci mais ne dit-on pas que l'ennemi du bien est le mieux ?

                Je vous rappelle l'énoncé:

                Ecrire un programme C, qui lit les noms complets des étudiants et leurs moyennes dans un tableau de structures. Puis actualise ces moyennes en ajoutant un bonus de:

                •  1 point pour les étudiants ayant une note strictement inférieure à 10.
                •  0.5 point pour les étudiants ayant une note entre 10 et 15 incluses.

                N.B.: la structure doit avoir deux éléments: une chaîne de caractères et un réel.


                Est-ce que le dernier code que je vous ai envoyé répond à la consigne ?

                A mon humble avis, il serait imprudent de s'éloigner du sujet en ajoutant divers fonctions qui ne font que compliquer la réponse à un problème simple. 



                Dans ce cas pourquoi tu fais afficher les résultats, puisqu'on ne te le demande pas dans la consigne ? :-)

                Tu nous dirais que tu as la flemme, ou que tu ne sais pas faire, on te croirait.

                • Partager sur Facebook
                • Partager sur Twitter
                  24 octobre 2021 à 1:56:21

                  > «Je vous rappelle l'énoncé:
                  Ecrire un programme C, qui lit les noms complets des étudiants et leurs moyennes dans un tableau de structures. Puis actualise ces moyennes en ajoutant
                  un bonus de:»
                  Ça ne dit pas comment on lit, dans une fonction ou pas.
                  Ça ne dit pas si on lit dans une structure temporaire et on ajoute, ou bien si on lit directement dans le tableau.


                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Tout est souvent plus grand que la somme de ses parties.

                    24 octobre 2021 à 9:10:27

                    Et ça ne dit pas de programmer proprement non plus
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Bonus structure

                    × 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