Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours C++ : Les pointeurs - Question

    6 septembre 2016 à 10:22:00

    Bonjour à tous !

    Étant réellement décidé à apprendre le C++, je me suis mis à suivre les cours du site avec plus d'intérêt que le faisais autrefois. C'est alors que j'ai remarqué que je ne comprenais pas une chose. Je suis débutant, ma question va paraître bête aux yeux de certains mais si je ne la pose pas, je vais bloquer dessus. 

    Dans le chapitre sur les pointeurs du cours sur le C++, dans la partie : "Où utiliser les pointeurs", on nous propose le programme suivant :

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string reponseA, reponseB, reponseC;
        reponseA = "La peur des jeux de loterie";
        reponseB = "La peur du noir";
        reponseC = "La peur des vendredis treize";
    
        cout << "Qu'est-ce que la 'kenophobie' ? " << endl; //On pose la question
        cout << "A) " << reponseA << endl; //Et on affiche les trois propositions
        cout << "B) " << reponseB << endl;
        cout << "C) " << reponseC << endl;
    
        char reponse;
        cout << "Votre reponse (A,B ou C) : ";
        cin >> reponse; //On récupère la réponse de l'utilisateur
    
        string *reponseUtilisateur(0); //Un pointeur qui pointera sur la réponse choisie
        switch(reponse)
        {
        case 'A':
            reponseUtilisateur = &reponseA; //On déplace le pointeur sur la réponse choisie
            break;
        case 'B':
            reponseUtilisateur = &reponseB;
            break;
        case 'C':
            reponseUtilisateur = &reponseC;
            break;
        }
    
        //On peut alors utiliser le pointeur pour afficher la réponse choisie
        cout << "Vous avez choisi la reponse : " << *reponseUtilisateur << endl;
    
        return 0;
    }


    J'ai compris le code en lui-même sans problème. Mais la question suivante me trotte dans la tête :

    Pourquoi utiliser des pointeurs ici ? Sont-ils indispensables dans ce programme ? Pourquoi ne pas simplement stocker le caractère correspondant à la réponse de l'utilisateur dans une variable puis afficher la variable ?

    Merci d'avance pour vos réponses !

    -
    Edité par RaphaelGB 6 septembre 2016 à 10:22:52

    • Partager sur Facebook
    • Partager sur Twitter
    Celui qui aime à apprendre est bien près du savoir.
      6 septembre 2016 à 10:26:14

      Lu'!

      RaphaelGB a écrit:

      Étant réellement décidé à apprendre le C++, je me suis mis à suivre les cours du site avec plus d'intérêt que le faisais autrefois.

      Si tu es vraiment motivé à apprendre C++, alors changes de cours. Il apprend un sacré paquet d'âneries à ne pas faire, en plus de montrer des exemples de code buggés et d'être obsolète (quelques recherches sur le forum t'en diront plus). Prends plutôt le cours de C++ de @gbdivers, même s'il est encore en écriture il ne contient pas ce genre de bavures. Si tu as des problèmes de compréhension sur une partie et que ce n'est pas à cause d'un manque d'étude du cours, tu peux poster ici.

      RaphaelGB a écrit:

      (1) Pourquoi utiliser des pointeurs ici ? (2) Sont-ils indispensables ici ?

      (1) Pour avoir un (mauvais) exemple d'usage.

      (2) Non, ils n'ont aucun intérêt ici.

      Dans ce code on notera également :

      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        6 septembre 2016 à 10:41:03

        Et aussi, on utilise nullptr pour initialiser un pointeur, pas 0.

        • Partager sur Facebook
        • Partager sur Twitter

        git is great because Linus did it, mercurial is better because he didn't.

          6 septembre 2016 à 11:24:53

          Dans la mesure où on pourrait très bien faire avec une _copie_ du message à afficher, c'est pas terrible.

          Ce qui serait un petit peu plus pertinent, c'est si il fallait choisir une donnée à modifier

          int pommes = 20, poires = 30, scoubidoux = 10;
          
          cout << "ajouter quoi ? 1 pommes, 2 poires, 3 scoubidoux" << endl;
          int reponse;
          cin >> reponse;
          
          int * truc;
          switch (reponse) {
          case 1: truc = & pommes; break;
          case 2: truc = & poires; break;
          ...
          }
          
          cout << "combien ? ";
          int quantite;
          cin >> quantite;
          
          *truc += quantite;
          



          • Partager sur Facebook
          • Partager sur Twitter
            6 septembre 2016 à 12:39:15

            Ksass`Peuk a écrit:

            RaphaelGB a écrit:

            (1) Pourquoi utiliser des pointeurs ici ? (2) Sont-ils indispensables ici ?

            (1) Pour avoir un (mauvais) exemple d'usage.

            (2) Non, ils n'ont aucun intérêt ici.

            Ne nous voilons pas la face, tous les exemples et exercices de manipulation de différentes notions de programmation n'ont aucun intéret pratique, dans le cas contraire, la programmation serait réservée à l'élite de l'élite de l'élite, ceux qui comprennent tout et sont 100% opérationnels dès la 1er lecture, capable de pondre un code 100% correct du 1er coup, ce qui doit représenter grosso merdo: Absolument personne.

            Perso, ce qu'il faut retenir des pointeurs:
            - Un pointeur est une variables comme n'importe quelle autre variable de type primitif (donc contient une valeur).
            - Non initialisé, il contient une valeur indéterminée (aléatoire, comme toute variable).
            - Il contient l'adresse d'une autre variable de même type, et donc permet d'accéder à cette dernière indirectement.

            Les pointeur peuvent offrir entre autre des avantages de performance, copier une addresse est plus rapide que copier un tableau, une chaine, ou un objet.
            Mais, leur manipulation n'offre aucune garantie, et c'est la leur gros point noir:
            Tu n'a aucun moyen de savoir si la variable pointée est valide ou non.
            Certes, il y a la valeur spéciale: nullptr, mais utiliser cette dernière relève plus de la discipline qu'autre chose. Un oubli est si vite arrivé, donc on ne peut se reposer la dessus.

            Dans le cadre des nouveau projets, si tu peux t'en passer, evite les. (pas toujours possible, selon les bibliothèques utilisées).
            Dans le cadre des reprises de projets, ou évolutions, leur utilisation est souvent inévitable (pour raison X ou Y, souvent budgétaires).

            Bref: Il est bon d'apprendre à utiliser les pointeurs, mais garde à l'esprit que ce sont des bebêtes aux multiples vices et malices. A utiliser lorsque l'on est 100% conscient des conséquences qu'ils impliquent.

            • Partager sur Facebook
            • Partager sur Twitter
              6 septembre 2016 à 13:36:43

              Deedolith a écrit:

              Ne nous voilons pas la face, tous les exemples et exercices de manipulation de différentes notions de programmation n'ont aucun intéret pratique

              Cela n'empêche pas de montrer des exemples qui ont un intérêt par rapport à l'usage qu'on fait d'une notion, cf. l'exemple de @michelbillaud pour le pointeur.

              • Partager sur Facebook
              • Partager sur Twitter

              Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                6 septembre 2016 à 13:48:47

                Salut,

                Ksass`Peuk a écrit:

                cf. l'exemple de @michelbillaud pour le pointeur.

                Je ne prendrais pas cet exemple comme bon exemple. C'est le cas typique où si l'on souhaite ajouter un élément, il faut l'ajouter un peu partout dans le code. Bonjour la maintenance de code.

                Cf. mon autre réponse faite ici qui utilise un tableau.

                • Partager sur Facebook
                • Partager sur Twitter
                  6 septembre 2016 à 14:27:17

                  C'est amusant comme il est plus facile de trouver, pour les débutants, de mauvais exemples d'utilisation des pointeurs que des bons exemples...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 septembre 2016 à 14:49:09

                    historique, quand tu nous tiens...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 septembre 2016 à 14:50:00

                      Un "petit exemple" pour montrer l'utilisation des pointeurs (intelligents ou pas) à des débutants, c'est toujours un exemple où on peut s'en passer.

                      Parce que là où on en a vraiment besoin, c'est dans un contexte qui est difficile à expliquer (à un débutant complet). Du coup c'est compliqué de montrer à la fois

                      • comment on s'en sert
                      • à quoi ça sert vraiment

                      Le premier point peut se montrer avec un pointeur "int *titi" sur une variable "int toto". Ca montre le mécanisme, ça ne dit pas pourquoi on doit s'y intéresser, ce qui est pourtant important si on veut susciter l'envie d'apprendre à s'en servir.

                      -
                      Edité par michelbillaud 6 septembre 2016 à 14:52:20

                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 septembre 2016 à 0:01:28

                        je risque sceptique sur l'utilisation du cours de gbdibvers. il est de un pas complet et il y'a trop de lien dans son cours qui conduisent vers d'autres sites web. donc en tu peux facilement te perdre en ne plus savoir ce que tu lis et pourquoi tu le lis puisque tu varies d'un site à l'autre et puis dans certains sites meme il y'a de l'anglais qui souvent améne dqns le dictionnaire et fais perdre la concentration  . le cours de l'open classroom a certe quelques manquement mais il est précis et concis et mieux par dessus tout totalement en français
                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 septembre 2016 à 0:28:58

                          A ma connaissance, je ne donne des liens que vers un des sites de reference sur le C++ (cppreference.com). 1. cela permet (pour ceux qui veulent aller plus loin) de lire la documentation des classes de la bibliothèque standard qui sont utilisées dans le cours. 2. d'apprendre les termes techniques anglais de base, pour faciliter l'apprentissage de l'anglais "informatique" (ce qui est indispensable d'apprendre).

                          (pour les autres remarques : ...)

                          -
                          Edité par gbdivers 7 septembre 2016 à 0:29:17

                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 septembre 2016 à 8:47:57

                            Ah mon ami, si tu n'es pas bon en anglais va falloir que tu arrêtes l'informatique ou que tu t'y mette sérieusement assez vite :)

                            Le cours de gbdivers est propre, bien conçu et traite des nouveautés du C++11 et 14. Le cours d'OCR est vieux, orienté C++98 avec des erreurs, des choses à ne pas faire et j'en passe.

                            Pour ma part c'est assez simple, si je vois un projet récent (= créé en 2014+) en C++ qui n'utilise pas C++11 et C++14, je le déconseille :) et malheureusement si tu suis le cours de ce site tu ne verras rien du C++ moderne comme : les smart pointers, les variadic templates, les lambdas, std::function, les générateur aléatoires, les regex, les UDL, move semantics, noexcept / override / constexpr.

                            -
                            Edité par markand 7 septembre 2016 à 8:51:18

                            • Partager sur Facebook
                            • Partager sur Twitter

                            git is great because Linus did it, mercurial is better because he didn't.

                              7 septembre 2016 à 8:49:46

                              JuniorDelrich a écrit:

                              (1) il est de un pas complet et (2) il y'a trop de lien dans son cours qui conduisent vers d'autres sites web.[...] (3) puis dans certains sites meme il y'a de l'anglais qui souvent améne dqns le dictionnaire et fais perdre la concentration  . le cours de l'open classroom a certe quelques manquement mais (4) il est précis et concis et mieux par dessus tout totalement en français

                              (1) Alors que celui de OC l'est ? Première nouvelle.

                              (2) C'est de la documentation et c'est probablement une des choses les plus importantes : aller voir la putain de doc pour voir comment ça marche.

                              (3) Bienvenue dans le monde de l'informatique. Ou très facilement 95% de la documentation est en anglais. C'est la vie.

                              (4) Précis ? Précis ?! T'as fumé quoi ? Et je parle même pas de la quantité de trucs à ne surtout pas faire dans ce cours là. Non, il est pas précis. Du tout.

                              Et puis pour finir : mieux vaut apprendre peu de choses mais correcte que beaucoup de choses dont la vaste majorité sont incorrectes.

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                7 septembre 2016 à 10:52:07

                                Même moi qui était une bille triple buse en anglais, j'ai réussi à m'y faire au niveau des docs en anglais. Surtout quand il y a des exemples comme on peut l'avoir dans certaines doc.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  7 septembre 2016 à 11:16:56

                                  Accessoirement c'est pas pour t'emmerder s'ils te disent ça, et ils ont davantage de recul et d'expérience que toi pour juger si un cours est meilleur qu'un autre.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    7 septembre 2016 à 12:29:24

                                    @gbdivers, dommage que tu n'aies pas mis les liens sur fr.cppreference.com :/, ça aurait coupé court à ce type d'argument bidon...
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Si vous ne trouvez plus rien, cherchez autre chose.

                                      7 septembre 2016 à 12:59:24

                                      Une petite question

                                      cppreference.com, c'est effectivement un site de référence, complet, en français et en anglais entre autres... mais il est aussi assez austère, difficile à lire parfois pour ceux qui n'ont pas votre expérience... certes c'est en forgeant qu'on devient forgeron me direz vous !

                                      Mais petite question je disais : que pensez vous de www.cplusplus.com/reference/ ? Très certainement moins complet, mais parfois plus concis et clair je trouve. Est il vraiement pertinent ?

                                      (Edit : je vois notamment une section tutoriel où la part belle est faite aux pointeurs nus... lisant les postes par ici, j'imagine que ça ne fait pas rêver pour introduire au C++ ?)

                                      -
                                      Edité par Manu310 7 septembre 2016 à 13:00:53

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      May The Force Be With You !
                                        7 septembre 2016 à 13:02:46

                                        J'utilise pas mal cplusplus.com le problème c'est qu'il y a pas mal d'exemples pourris dans leur doc.

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                          7 septembre 2016 à 13:05:35

                                          je vois que effectivement vous parlez en tant que programmeurs de longue date donc il est facile pour vous de vous en sortir avec ce cours. mais quand tu débutes et à la on te parle du main et on te met un lien qui t'envoit lire un document de 100 pages sur le main ça décourage directement. alors que le but pour un débutant c'est d'avoir une vue d'ensemble sur le langage et de pouvoir crée au moins un simple petit programme. mais les 100pages qu'on t'envoit lire sur le main déjà que le débutant  ne vas pas comprendre la moitié mais à la fin quand il revient dans le cours meme il ne se sent pas plus capable qu'avant.

                                          comment peut on parler du préprocesseur à un débutant jusqu à ce qu'il comprenne?  dis lui plutôt comment afficher ce qu'il veut afficher dans l'invite de commande puis après indique exactement ce qui se passe dérrière. moi avec le cours de gbdivers j'ai compris et avancer mais ceux parce que j'ai un lourd passé avec les algorithmes. mais pour un débutant la premiére page contient des liens qui ne sont pas important pour un débutant.

                                           dites moi effectivement ce qu'un débutant a à faire à savoir ce qui se passe dans le main? il veut afficher les trucs demander son nom faire les simples calculs mathématiques et il veut savoir comment le faire rapidement. c'est une affaire de pedagogie et rien d'autre sinon s'il y'a eu un mal entendu. le cours de gbdivers est bon et meme très bon parce que je l'utilise mais pas très adapté pour un débutant. quant au cours de OC si vous dites qu'il est vieux alors peut etre il l'est mais il a encore les bases qui donnent envoe de continuer à programmer. je conseillerai plutôt de lire les deux cours et de venir poser les questions quand il y'a ambiguité  

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            7 septembre 2016 à 13:17:38

                                            @JuniorDelrich, ne calque pas ta manière de penser à toute l'humanité.

                                            Ton approche est celle d'un "Rouge" (j'ai un objectif, comment on fait), mais il y a aussi l'approche des Bleus (je veux absolument savoir comment ça marche par le menu, avant de m'en servir).

                                            Et il reste encore les Verts et les Jaunes.

                                            (Oui, c'est de la Psycho à 2 balles)

                                            Si le lecteur n'est pas intéressé, on l'oblige pas à lire, il est pas forcement Bleu, mais s'il le souhaite, il peut, il peut, pas : il doit.

                                            Le cours OC sur le C++ est une ..... sans nom.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                              7 septembre 2016 à 13:21:43

                                              JuniorDelrich a écrit:

                                              e conseillerai plutôt de lire les deux cours et de venir poser les questions quand il y'a ambiguité  

                                              Oh ça, il y en a pas mal qui le fond, mais en fait ils lisent systématiquement le cours d'OC, montrent leur code et on leur explique systématiquement qu'il faut le réécrire intégralement pour qu'il soit correct. C'est pas hyper productif.

                                              JuniorDelrich a écrit:

                                              il veut afficher les trucs demander son nom faire les simples calculs mathématiques et il veut savoir comment le faire rapidement.

                                              Sauf qu'apprendre c'est un processus lent. Les tutoriels comme ceux d'OC qui font miroiter qu'on peut apprendre à développer en un rien de temps répandent cet espèce de bullshit qu'apprendre à développer, ça se fait en un rien de temps. C'est juste faux. Si apprendre les métiers du développement c'était un processus rapide, on n'aurait pas des formations de minimum deux ans (pour le DUT par exemple), à plein temps chaque semaine pour préparer les gens à développer. On leur ferait lire un tutoriel sur une semaine et basta.

                                              (Tu peux mettre des majuscules dans tes phrases, un peu plus de ponctuation, et te relire stp ? Il y a pas mal de phrases que j'ai dû relire plusieurs fois pour comprendre de quoi tu parlais).

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                                7 septembre 2016 à 13:39:46

                                                dragonjoker a écrit:

                                                @gbdivers, dommage que tu n'aies pas mis les liens sur fr.cppreference.com :/, ça aurait coupé court à ce type d'argument bidon...

                                                Comme le but est de faire bosser l'anglais, ca n'aurait pas ete tres pertinent...

                                                (De plus, les versions non anglaises ont ete generees automatiquement il y a pas mal de temps, dans le but d'etre relues. Ce qui n'a pas forcement ete fait. Donc pas a jour, traduction pas forcement geniale...)

                                                Manu310 a écrit:

                                                cppreference.com, c'est effectivement un site de référence, complet, en français et en anglais entre autres... mais il est aussi assez austère, difficile à lire parfois pour ceux qui n'ont pas votre expérience... certes c'est en forgeant qu'on devient forgeron me direz vous !

                                                C'est pour cela que j'essaie de guider le lecteur progressivement pour qu'il decouvre la doc. Mais cela demande effectivement du travail. (Pour la partie "bibliotheque standard", c'est assez accessible. Par contre, la partie "langage" est plus austere)

                                                JuniorDelrich a écrit:

                                                je vois que effectivement vous parlez en tant que programmeurs de longue date donc il est facile pour vous de vous en sortir avec ce cours. mais quand tu débutes et à la on te parle du main et on te met un lien qui t'envoit lire un document de 100 pages sur le main ça décourage directement. alors que le but pour un débutant c'est d'avoir une vue d'ensemble sur le langage et de pouvoir crée au moins un simple petit programme. mais les 100pages qu'on t'envoit lire sur le main déjà que le débutant  ne vas pas comprendre la moitié mais à la fin quand il revient dans le cours meme il ne se sent pas plus capable qu'avant.

                                                Je parle de main dans un paragraphe, pour expliquer rapidement ce qu'est une fonction, les parametres d'entrees et de sortie et le bloc d'instructions. Je trouve que les explications sont relativement accessibles et courtes pour les debutants.

                                                Le lien vers la doc est dans la partie "Exercices", en fin de chapitre. C'est pour ceux qui veulent aller plus loin.

                                                JuniorDelrich a écrit:

                                                comment peut on parler du préprocesseur à un débutant jusqu à ce qu'il comprenne?  dis lui plutôt comment afficher ce qu'il veut afficher dans l'invite de commande puis après indique exactement ce qui se passe dérrière. moi avec le cours de gbdivers j'ai compris et avancer mais ceux parce que j'ai un lourd passé avec les algorithmes. mais pour un débutant la premiére page contient des liens qui ne sont pas important pour un débutant.

                                                J'ai séparé le "hello world" en deux chapitres, le premier pour parler de "main", le second pour parler de "std::cout". J'explique ce qu'est une bibliothèque standard, une directive de compilation, l'espace de noms std, mais très rapidement a chaque fois, justement pour que les infos soient données, mais sans entrer trop dans les détails.

                                                Il faut comprendre une chose : il n'existe pas une manière unique d'écrire un cours. Certains préfèrent avoir un minimum d'explication sur chaque syntaxe qu'ils utilisent, d'autres veulent que les infos minimales pour faire tourner le code. Tu fais partie de la seconde partie. Mais cela ne veut pas dire que ce cours et les explications ne sont pas adaptées aux débutants.

                                                Tout au moins, pas a tous les débutants. Je ne suis pas (et n'ai pas envie de suivre) la même pédagogie que le cours des zéros. Mon cours ne peut pas être lu, il doit etre etudie.

                                                Je n'ai pas la prétention d'écrire un "cours universel de C++" donc tout va bien :)

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  7 septembre 2016 à 14:05:53

                                                  Désolé pour les erreurs c'est que mon clavier n'est pas un clavier azerty ou qwerty donc il me mène la vie dur.

                                                  s'il y'a quelqu'un parmi vous qui a utilisé le logiciel scratch dans ses premières versions il va me comprendre. l'informatique c'est une affaire de passion et si tu perds ta passion tu ne vaux plus rien.  vaut mieux susciter l'envie chez un lecteur de continuer à lire que de lui exposer l'effet brutal de la chose. d'où le fait que on commence dans tous les cours de programmation que je connais jusqu'ici avec le code de hello world.

                                                  Le fait d'insister sur le main et dire tout ce qui se passe dans un std::cout en début de cours ce n'est bon. Peut être OC a un problème avec le contenu de son cours mais en ce qui concerne sa logique progressive elle est un peu plus que très bonne. et je pense que c'est ce qui manque  dans GB divers.

                                                  quand je suis arrivé dans la partie de son cours où il explique le st::cout j'ai cliqué sur le lien de cpp.reference puis dedans j'ai cliqué sur un autre lien et au final je suis tombé dans Google. ensuite je me suis dit mais std::cout affiche et c'est presque tout ce qu'il y'a à savoir.

                                                  gbdivers a écrit:

                                                  A ma connaissance, je ne donne des liens que vers un des sites de référence sur le C++ (cppreference.com). 1. cela permet (pour ceux qui veulent aller plus loin) de lire la documentation des classes de la bibliothèque standard qui sont utilisées dans le cours. 2.

                                                  comment on veut aller plus loin quand on n'a même pas encore débuté?

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    7 septembre 2016 à 14:18:22

                                                    JuniorDelrich a écrit:

                                                    l'informatique c'est une affaire de passion et si tu perds ta passion tu ne vaux plus rien.

                                                    C'est plus que naïf. A ce compte là, tout est affaire de passion. Seulement voilà, quand on parle de domaines techniques, la passion ça suffit pas, il faut du travail, point. Et si ce travail est pas là et qu'il n'est pas sérieux, c'est pas la peine d'y penser.

                                                    JuniorDelrich a écrit:

                                                    Peut être OC a un problème avec le contenu de son cours mais en ce qui concerne sa logique progressive elle est un peu plus que très bonne.

                                                    Ah bah c'est sûr que quand c'est la garantie pour l'apprenant de se tirer méthodiquement une balle dans le pied à chaque fois qu'il entreprend d'utiliser ses connaissances, c'est un problème oui ... C'est d'ailleurs plus profond que ça comme problème : on est en face d'un cours très pédagogique qui apprend à faire de grosses boulettes. C'est à dire qu'on apprend très bien des choses à ne surtout pas faire.

                                                    -
                                                    Edité par Ksass`Peuk 7 septembre 2016 à 14:20:59

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                                      7 septembre 2016 à 14:24:34

                                                      JuniorDelrich a écrit:

                                                      Le fait d'insister sur le main et dire tout ce qui se passe dans un std::cout en début de cours ce n'est bon. Peut être OC a un problème avec le contenu de son cours mais en ce qui concerne sa logique progressive elle est un peu plus que très bonne. et je pense que c'est ce qui manque  dans GB divers.

                                                      C'est un paragraphe dans un chapitre. On est très loin de dire "tout ce qui se passe dans un std::cout". J'ai estimé qu'il était intéressant pour le lecteur d'avoir une notion de ce qu'est un flux. C'est une notion assez générique et assez simple a comprendre.

                                                      Encore une fois, certains préfère avoir juste le code pour afficher quelque chose, d'autres veulent un minimum d'explications. C'est une question de choix (de la part de l'auteur) et de préférences (pour le lecteur).

                                                      JuniorDelrich a écrit:

                                                      quand je suis arrivé dans la partie de son cours où il explique le st::cout j'ai cliqué sur le lien de cpp.reference puis dedans j'ai cliqué sur un autre lien et au final je suis tombé dans Google. ensuite je me suis dit mais std::cout affiche et c'est presque tout ce qu'il y'a à savoir.

                                                      Ben, ne clique pas sur les liens...

                                                      JuniorDelrich a écrit:

                                                      comment on veut aller plus loin quand on n'a même pas encore débuté?

                                                      C'est pour cela que tu ne dois pas cliquer sur les liens : tu le fais sans savoir pourquoi tu le fais.

                                                      Certain aime "aller plus loin" pour retrouver dans la documentation ce qu'ils ont appris dans le premier chapitre. D'autres pour voir que la fonction main a effectivement d'autres signatures (et donc un jour, peut être, ils auront un problème avec la fonction main et il se diront "ah, mais au fait, il y a d'autres signatures de la fonction main ! Et si j'allais relire la doc pour voir si je peux y trouver une solution a mon problème").

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        7 septembre 2016 à 15:58:44

                                                        Salut,

                                                        Je viens un peu après la tempête, mais, ce qu'il faut savoir JuniorDelrich, c'est que le C++ est l'un des langages de programmation les plus complexes qui soient:

                                                        On peut commencer à en apprendre les bases en six semaines, mais il faut deux à trois ans de pratique pour arriver à se tirer de "la plupart des situations".  Et, pour ce qui est de l'expertise : je fais du C++ depuis plus de 15 ans et je me suis fait un devoir de me tenir au fait de ses évolution.  C'est dire que je maitrise parfaitement le langage!!! (de plus, j'ai été assez intéressé que pour essayer d'aller au fond des choses en ce qui concerne la conception, ce qui n'est pas souvent le cas).

                                                        Et pourtant, je suis (très) loin d'en avoir fait le tour complet, et il m'arrive encore très régulièrement d'apprendre quelque chose à son sujet.

                                                        Je comprends parfaitement ton point de vue : tu veux apprendre vite à faire des choses simples; il me semble impossible de te blâmer sur ce point.

                                                        Mais il faut aussi te dire que, très rapidement (en gros : une fois passée l'étape de l'expérimentation simple), tu en viendras à vouloir faire des choses qui seront très souvent beaucoup plus complexes que ce que tu ne l'avait imaginé au départ.  Et tu dépassera alors la limite de ce que "les connaissances minimales" te permettent de faire...

                                                        Et, à ce moment là, tu seras sans doute content de pouvoir te dire que "tiens, mais au fait, je sais où trouver le lien qui me permettra d'améliorer ma connaissance".  Et tu sera bien content de pouvoir y accéder "facilement".

                                                        Alors, oui, bien sur : les liens n'ont peut être absolument aucun intérêt pour toi.  Mais d'autres (ceux qui aiment savoir ce qui se passe) apprécieront de les avoir. 

                                                        Pire encore : tu ne pourras déterminer si un lien vers une documentation complète t'intéresse ou non  qu'après... avoir cliqué sur le lien en question.

                                                        Et puis, il y aura des liens qui t'intéresseront particulièrement, alors que tu jugera peut être que d'autre n'ont absolument aucun intérêt.

                                                        Nous (ou du moins gbdivers) sommes bien conscients de ce genre de problème.  Mais il a une conséquence très désagréable : il devient de ce fait impossible de définir une règle de conduite précise concernant les liens.  Et c'est d'autant plus vrai que tes points d'intérêts seront sans doute différents de celui qui lira le cours après (ou qu'il l'a lu avant) toi.

                                                        Maintenant, tu peux -- peut être même devrais tu ?? -- décider de ne pas suivre les liens fournis par le cours lors de ta "première lecture".  Ce serait sans doute un bon moyen d'avoir les "informations minimales" que tu sembles rechercher.

                                                        Mais je pourrais parier jusqu'à ma chemise sur le fait que, très vite, tu commenceras à trouver la présence des liens particulièrement intéressante, car elle te permettra d'aller "un peu plus en profondeur" pour certains points du langage ;)

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
                                                          7 septembre 2016 à 17:41:45

                                                          Bonjour,

                                                          Je vais juste réagir sur ce point JuniorDelrich a écrit:

                                                          l'informatique c'est une affaire de passion et si tu perds ta passion tu ne vaux plus rien.

                                                          Non, non et non ! L'informatique est une science. Comme dans toutes les sciences, il y a des passionné qui travaillent dans le domaine de l'informatique. Comme pour tout les métiers, il y a des personnes (et je pense pouvoir dire que ce n'est pas une minorité) pour qui leur métier (et donc l'informatique) est un métier : ça sert à gagner de l'argent.

                                                          Tu peux avoir de la réussite en informatique sans être passionné (quand j'étudiais, maximum 1/4 de ma promo était des passionné, les autres n'étaient pas passionné et pourtant ils étaient en master d'informatique).

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            27 septembre 2016 à 7:21:08

                                                            Quel rapport avec le sujet initial ? Il n'y a aucun pointeur à utiliser.

                                                            D'ailleurs, si on ne peut donner aucun exemple qu'il comprenne à quelqu'un pour expliquer une notion, c'est peut-être qu'il est trop tôt pour lui en parler. On peut se débrouiller sans pointeur pendant un long moment.

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              1 octobre 2016 à 23:36:38

                                                              Euh...

                                                              jsuis en train de commencer à lire le tuto de mathieu sur le sujet il est vraiment à ce point rempli de bourdes ? Oo

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Cours C++ : Les pointeurs - Question

                                                              × 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