IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Au finale, pour vous, faut-il

Votants
124. Vous ne pouvez pas participer à ce sondage.
  • séparer le C et le C++

    54 43,55%
  • les unir

    10 8,06%
  • les unir mais savoir différencier les deux "styles de programmation"

    42 33,87%
  • non mais t'as rien compris

    25 20,16%
Sondage à choix multiple
C++ Discussion :

C et C++ mythe et realité


Sujet :

C++

  1. #321
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par progfou Voir le message
    Donc, si ce topic te paraît inutile, pas à sa place, etc. rien ne t'empêche de ne pas le suivre !
    A bon entendeur...
    oui il ne me parait pas a sa place. il aurais du s'appeler :

    "Discussion de philosophes de l'informatique, programmeur terre a terre s'abstenir !"
    ou peut etre
    "Conversation de docteurs en informatique les programmeurs inférieurs sont officiellement les pas biens venu !"

    Là j'aurais compris et je serais pas venu troller !

    bonne journée

  2. #322
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 35
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par doccpu Voir le message
    ... la norme mathématique impose une lecture de gauche a droite de l'opération pour un rang égal de priorité des opérations même si de tête on sait que faire 3*5 après 5*3 ne posera pas de problème.
    La norme mathématiques n'impose pas de sens de lecture. C'est la commutativité des opérateurs +, -, * qui permet de faire tes opérations dans un sens ou l'autre.

  3. #323
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 625
    Points : 30 671
    Points
    30 671
    Par défaut
    Citation Envoyé par doccpu Voir le message
    oui il ne me parait pas a sa place. il aurais du s'appeler :

    "Discussion de philosophes de l'informatique, programmeur terre a terre s'abstenir !"
    ou peut etre
    "Conversation de docteurs en informatique les programmeurs inférieurs sont officiellement les pas biens venu !"

    Là j'aurais compris et je serais pas venu troller !

    bonne journée
    Il ne faut pas confondre non plus...

    Tu serais sans doute surpris de savoir l'age et/ou le niveau de formation de certains intervenants sur ce sujet.

    Ce qui est vrai, par contre, c'est qu'il faut accepter de se remettre en question et de reconnaître que l'on s'est peut être trompé, que l'on a peut être mal compris/interprété quelque chose.

    Et il faut avouer que tu manques visiblement cruellement de cette honnêteté intellectuelle
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #324
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par doccpu Voir le message
    oui il ne me parait pas a sa place. il aurais du s'appeler :

    "Discussion de philosophes de l'informatique, programmeur terre a terre s'abstenir !"
    ou peut etre
    "Conversation de docteurs en informatique les programmeurs inférieurs sont officiellement les pas biens venu !"
    Jamais eu de cours d'informatique.... Mais 23 ans d'expérience... et je ne te comprend pas.. Je suis d'accord avec les autres sur ces points.

    Citation Envoyé par doccpu Voir le message
    Là j'aurais compris et je serais pas venu troller !
    Là c'est toi qui le dis....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #325
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    En suite tu fera dans cette opération ((((2+(3*5))+6)+(5*3))+2) parce que la norme mathématique impose une lecture de gauche a droite de l'opération pour un rang égal de priorité des opérations même si de tête on sait que faire 3*5 après 5*3 ne posera pas de problème.
    Peux-tu me donner un lien vers ta source ?
    Perso je crois que rien n'est imposé en mathématiques du simple fait de la commutativité comme dit précédement. Cela m'étonnerait qu'une règle précise que, dans cet exemple, on doit d'abord additionner 2 au résultat de 3*5 plutôt que 6. Tout comme en C++.

  6. #326
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par doccpu Voir le message
    ... parce que la norme mathématique impose une lecture de gauche a droite de l'opération pour un rang égal de priorité des opérations même si de tête on sait que faire 3*5 après 5*3 ne posera pas de problème.

    Késacko ????

    Une norme, en mathématique ???? On m'avait caché ça !!!

    Sérieusement, les mathématiques existent depuis 2500 ans... Tu crois qu'il y a une norme depuis les égyptiens ??

    C'est avant tout de l'écriture, donc, bien entendu, suivant les langues, certaines se lisent de gauche à droite, d''autres de droite à gauche, d'autres encore de bas en haut, et certaines cumulent : de bas en haut ET de droite à gauche.

    De plus, il y a une règle qui effectivement s'appelle la commutativité....

    Cependant, pour le calcul que tu mentionnes, c'est uniquement dû à la manière dont les opérations sont effectuées : voir le code assembleur Registre1 et Registre2.

    mais si tu fais un interpréteur d'expressions, tu t'apercevras que tu peux réellement le faire dans n'importe quel ordre (et que la plupart du temps tu le fais d'ailleurs en sens inverse, car la partie de gauche est en général le résultat, alors que la partie de droite est le résultat intermédiaire...)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #327
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    On appelle ça l'associativité (et c'est ce qui fait, entre autres, que R est un groupe).

  8. #328
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Comme le débat n'avancent plus, et que des partisants du C reagissent tres mal quand on leur parle du C++, et des partisants du C++ reagissent tres mal quand on leur parle du C, je le clos cette discutions (sauf si d'autre personne n'ont pas tout compris bien sur).



    J'ai enfin pu avoir de vrai réponse (ca change de "C c'est du C et C++ c'est du C++, na espèce de petit insolent") et j'espère que cela aura pu aussi éclaircir d'autre personne.

    Merci pour toute vos réponse pertinente et claire, qui m'ont vraiment permis de comprendre beaucoup de chose.

  9. #329
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par souviron34 Voir le message

    Késacko ????

    Une norme, en mathématique ???? On m'avait caché ça !!!

    Sérieusement, les mathématiques existent depuis 2500 ans... Tu crois qu'il y a une norme depuis les égyptiens ??

    De plus, il y a une règle qui effectivement s'appelle la commutativité....

    ...

    Cependant, pour le calcul que tu mentionnes, c'est uniquement dû à la manière dont les opérations sont effectuées : voir le code assembleur Registre1 et Registre2.
    Pour le calcul que j'ai donné en exemple effectivement c'est un mauvais exemple mais je suis certain que avec des calculs du 2nd degrés le sens de lecture commence à devenir important. Et si ce n'est pas le cas c'est que tout ce que l'on nous apprend depuis le PRIMAIRE jusque en licence est erroné voire faux.

    En ce qui concerne la commutativité c'est effectivement possible mais seulement en ce qui concerne les opérateurs de même priorité ce qui dans mon exemple n'arrive pas vu qu'il n'y a pas plus d'un opérateur consécutif de même rang. (oui je sait mon exemple est foireux mais faites des commutations a outrances avec des fonctions complexes et vous allez droit dans les choux)

    Citation Envoyé par souviron34 Voir le message
    mais si tu fais un interpréteur d'expressions, tu t'apercevras que tu peux réellement le faire dans n'importe quel ordre (et que la plupart du temps tu le fais d'ailleurs en sens inverse, car la partie de gauche est en général le résultat, alors que la partie de droite est le résultat intermédiaire...)
    J'en ai fait un d'interpréteur d'expression mathématique c'est pour ça que je parlais de math (ça volais pas haut il allais que jusque aux puissances) et c'est drôlement chiant si on lit pas de gauche a droite la fonction écrite.

    c'est vrais c'est pas une norme mathématique mais une convention que tout le monde respecte même chez les japonais au fait c'est pas égyptien mais arabe les mathématiques contemporaines.

    Ma source : L'école, le Lycée, La Fac/L'université tu veux un truc signé par Archimède, désolé j'ai pas !

  10. #330
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 370
    Points : 41 523
    Points
    41 523
    Par défaut
    Il n'y a pas d'opérateur d'incrémentation en math, pas d'effets de bord.
    Donc, invoquer les mathématiques ne sert à rien ici.

    En C comme en C++, si tu fais a + b, l'ordre d'évaluation n'est pas défini par la norme, un point c'est tout. Chaque compilateur peut décider d'évaluer d'abord a ou d'évaluer d'abord b, selon des critères tels que la facilité d'implémentation, la rapidité, le nombre de variables intermédiaires nécessaires (typiquement pour les processeurs à plein-de-registres)...

    En C#, l'ordre d'évaluation est fixé.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #331
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message

    Tu peux donner un exemple complet. Ca me rappelle un probleme qui arrive quand le programmeur commet une erreur commune (stocker le resultat de fgetc ou equivalent dans un char) dont la correction est tres simple (le stocker dans un int). Mais je ne vois pas comment tu y es arrive avec un read.



    Voir ci-dessus. Je doute qu'il y ait un probleme avec la norme ou avec gcc. Plutot avec ton programme.
    regarde le man de la fonction read qui marche avec un FILE* et fait tous les exemples y en a 2 qui fonctionnent pas 1 pour la fin de fichier l'autre a cause du paramétrage de l'ouverture (je devais ouvrir un fichier binaire avec des -1 au millieux).

  12. #332
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par doccpu Voir le message
    regarde le man de la fonction read qui marche avec un FILE*

    Je ne comprend pas. read fonctionne avec des file descriptor et non pas des FILE*. A moins que tu parles de fread ?
    Je ne répondrai à aucune question technique en privé

  13. #333
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Il n'y a pas d'opérateur d'incrémentation en math, pas d'effets de bord.
    Donc, invoquer les mathématiques ne sert à rien ici.
    T'a déja entendu parlé de math non linéaire et de lambda calcul ? l'informatique est bel et bien un sous ensemble des mathématiques.

    Citation Envoyé par Médinoc Voir le message
    En C comme en C++, si tu fais a + b, l'ordre d'évaluation n'est pas défini par la norme, un point c'est tout. Chaque compilateur peut décider d'évaluer d'abord a ou d'évaluer d'abord b, selon des critères tels que la facilité d'implémentation, la rapidité, le nombre de variables intermédiaire nécessaires (typiquement pour les processeurs à plein-de-registres)...

    En C#, l'ordre d'évaluation est fixé.
    Je veux bien te croire la dessus. maintenant que je me suis cassé les dents dessus. Ce que je disait c'est que cela aurais du être fixé parce que c'est chiant de refaire ses sources pour chaque plates formes. Mais je ne tien plus a polémiquer sur ce qui est ou non définit par la norme j'ai compris qu'il y avais des choses définies et d'autres non et vous remarquerez que je vous casse plus les couille avec ça depuis ma prise de conscience !

  14. #334
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par millie Voir le message
    Je ne comprend pas. read fonctionne avec des file descriptor et non pas des FILE*. A moins que tu parles de fread ?
    je parle de fread vu que c'est le read qui marche avec un FILE*

    [Edit]

    J'ai justement récupéré read pour reconstruire la fonction fread parce que elle au moins elle fait ce que dit le man, elle s'arette pas en chemin a cause d'un petit -1.
    Dernière modification par doccpu ; 13/09/2007 à 17h58.

  15. #335
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par doccpu Voir le message
    regarde le man de la fonction read qui marche avec un FILE* et fait tous les exemples y en a 2 qui fonctionnent pas 1 pour la fin de fichier l'autre a cause du paramétrage de l'ouverture (je devais ouvrir un fichier binaire avec des -1 au millieux).
    Il n'y a pas d'exemples sur la page de man de fread sur les deux types de machines auxquelles j'ai pour le moment acces (une linux, une Solaris).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  16. #336
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Il n'y a pas d'exemples sur la page de man de fread sur les deux types de machines auxquelles j'ai pour le moment acces (une linux, une Solaris).
    sur le net
    http://www.doc.ic.ac.uk/lab/labman/l...n.cgi?fopen(3)

    moi je l'avais sous une suze 10.0

    il faut aussi regarder le man de fopen pour avoir les exemples en question. j'avais installé gcc 4.2 ou 4.3 je sait plus c'etait y a 1 ans

  17. #337
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Tu arrêtes de te foutre de moi? Il n'y a pas d'exemples non plus sur ce site.

    il faut aussi regarder le man de fopen pour avoir les exemples en question. j'avais installé gcc 4.2 ou 4.3 je sait plus c'etait y a 1 ans
    gcc 4.2.0 est sorti le May 13, 2007, et 4.3 pas encore.

    De toute manière, c'est plus un problème de bibliothèque que de compilateur, et si gcc vient avec la partie de la bibliothèque standard qui est propre au C++, ce n'est pas le cas pour ce qui est commun avec le C.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  18. #338
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par doccpu Voir le message
    J'ai justement récupéré read pour reconstruire la fonction fread parce que elle au moins elle fait ce que dit le man, elle s'arette pas en chemin a cause d'un petit -1.
    Ce que tu decris ici me semble fort correspondre soit a l'utilisation d'une variable de type char la ou un int etait attendu, soit a la lecture d'un fichier binaire ouvert en mode texte.
    Dans le deux cas, ce n'est pas un probleme du langage ni de l'implementation du compilateur ou de la bibliotheque standard utilise mais bien un probleme dans le code applicatif.

  19. #339
    doccpu
    Invité(e)
    Par défaut
    Citation Envoyé par gl Voir le message
    Ce que tu decris ici me semble fort correspondre soit a l'utilisation d'une variable de type char la ou un int etait attendu, soit a la lecture d'un fichier binaire ouvert en mode texte.
    Dans le deux cas, ce n'est pas un probleme du langage ni de l'implementation du compilateur ou de la bibliotheque standard utilise mais bien un probleme dans le code applicatif.
    non je l'ouvrais bien en mode binaire mais on peux pas les ouvrir a la fois en lecture en écriture en binaire et en append alors que le man que je voyais me disait le contraire (je crois) mais on clos le chapitre parce que j'en ai mare de me prendre le choux avec tous les théoriciens de l'omniscience qui rodent sur ce forum ! et pour ne pas les vexer (le théoriciens de l'omniscience) je m'inclus dedans puisque j'ai trollé

  20. #340
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Tu indiques une doc où l'exemple n'est pas censé fonctionner, et l'exemple n'existe pas. Tu es donc un mauvais théoricien toi-même, car tu ne te bases sur rien pour dénigrer un compilateur, sans apporter la preuve de ce que tu avances. Sans compter que la numérotation de GCC indiquée m'a bien fait marrer .
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mythes & Réalité
    Par philben dans le forum Contribuez
    Réponses: 6
    Dernier message: 07/07/2006, 07h05
  2. [TV] Emission Télé Réalité(encore)
    Par ArHacKnIdE dans le forum Films & TV
    Réponses: 30
    Dernier message: 31/05/2006, 11h47
  3. Liste deroulante et VALUE non conforme a la realité
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/05/2005, 13h33
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo