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

C++ Discussion :

Question concernant les paranthèses


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut Question concernant les paranthèses
    Salut tout le monde,

    j'ai une petite question à vous poser .

    Je viens de remarquer que quand j'écris

    cela me renvoie 0 pour toutes les valeurs possible de L, i et imax alors que quand j'écris

    Cela me fait bien mon calcul .

    Est ce que quelqu'un aurait une explication à propos de ce comportement étrange ?

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    C'est quoi les types de L, i et imax ?

    C'est quoi les valeurs possibles pour L, i et imax ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    L est un double, i et imax sont des int

    pour l'instant je faisais des tests alors j'ai mis L à 1 puis à 0.1, imax est egal à 5 et i quant à lui varie entre 0 et 5

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Dans le cas où la division est entre parenthèses, il stocke le résultat dans un int, vu qu'à ce niveau de scope on ne travaille que sur des int => ta fraction est arrondie à 0

    Par contre si L, qui est un double, est au même niveau que le résultat de division, il va stocker le résultat dans un double (cas sans parenthèses).

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Ah ok je comprends ! Mais alors pour faire des calculs c'est vraiment dangereux comme truc il n'y a aucun moyen de s'affranchir de se risque ? Par exemple un truc comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L*float((2*i-1)/(2*imax))

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par kipgon Voir le message
    il n'y a aucun moyen de s'affranchir de se risque ?
    Si, c'est que je suis entrain d'apprendre à ma fille en ce moment (CM2) : on ne fait pas des calculs avec des torchons et des serviettes
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    on ne fait pas des calculs avec des torchons et des serviettes
    gna ???

    Pourtant il faudra un jour expliquer à votre fille que des calculs entre entiers et décimaux sont possibles (si si je vous jure ) !

    Plus sérieusement, je viens de trouver un truc qui s'appelle le typecasting, pour ceux que ça aiderait ça donne cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L*((2*((double) i)-1)/(2*((double) imax)))
    Mais ce n'est toujours pas une solution très idéale c'est très lourd

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par kipgon Voir le message
    Pourtant il faudra un jour expliquer à votre fille que des calculs entre entiers et décimaux sont possibles (si si je vous jure ) !
    Oui et non...mathématiquement tu as raison, mais informatiquement non, car en C++ comme dans pas mal de langages (tous?) 2 (entier) et 2 (décimal) ne sont pas la même chose (un ordinateur ne les représente PAS de la même manière). Cette différence peut mordre, tu en as eu la preuve, et il y a aussi d'autres problèmes +/- vicieux (les comparaisons, par exemple. on peut écrire if a==2 si a est un entier, mais PAS si a est un nombre à virgule flottante.
    EDIT: de toutes façons quoi qu'en disent les maths, tes deux notations ne donneront (dans le cas général) pas le même résultat en raison des erreurs d'arrondi qui peuvent différer en fonction de l'ordre des opérations

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Je suis d'accord mais je doute que cette distinction relève du programme de CM2

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut
    Citation Envoyé par kipgon Voir le message
    Je suis d'accord mais je doute que cette distinction relève du programme de CM2
    Non, mais le fait de ne pas faire de calcul avec des torchon(int) et des serviettes (double) bien
    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

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par kipgon Voir le message
    Pourtant il faudra un jour expliquer à votre fille que des calculs entre entiers et décimaux sont possibles (si si je vous jure ) !
    Non, il y a en fait total abus de langage et nous traitons tous les nombres comme des décimaux, dont seul l'écriture change.

    Tu viens de découvrir le casting, donc : quel est ton niveau en C++ ?
    Une autre écriture qui fonctionne normalement est
    pour des double
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L*(2.0f*i-1)/(2.f*imax)
    pour des float
    Et de manière générale, je suis plus partisan de faire les divisions le plus tard possible.
    Mais le cast est de toutes manières obligatoire.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Je ne suis pas programmeur, je programme pour faire des calculs scientifiques (Je suis davantage familier du fortran ou de Matlab), je suis donc débutant en c++ c'est vrai ! Cela dit je ne vois pas en quoi une réponse formulée de la sorte

    Si, c'est que je suis entrain d'apprendre à ma fille en ce moment (CM2)
    soit constructive, chacun ses compétences vous n'êtes pas d'accord ?

    La réponse de therwald, elle m'a bien éclairée et je ferais dorénavant plus attention à ce problème (soit dit en passant en Fortran ce problème existe aussi je n'ai donc pas été très attentif je vous l'accorde).

    En tout cas merci bousk pour ton message, c'est sur que c'est moins lourd que d'écrire (double) i

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

Discussions similaires

  1. question concernant les fichier.bin
    Par argon dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 27/08/2005, 17h44
  2. Questions concernant les études supérieures et travails
    Par Vivian Pennel dans le forum Etudes
    Réponses: 25
    Dernier message: 21/06/2005, 15h23
  3. Réponses: 11
    Dernier message: 21/06/2005, 10h16
  4. [Débutant] Deux questions concernants les vues
    Par 13obscur dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 19/04/2005, 14h29
  5. Réponses: 7
    Dernier message: 10/09/2004, 14h28

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