Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

précision nbr décimaux c++



  1. #1
    defender19

    précision nbr décimaux c++


    ------

    Bonsoir,

    Petit soucis pour répondre à un exo :

     Cliquez pour afficher


    j'ai fais ça :
    Code:
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    double calcul(double x1, double y1, double  x2, double y2){
    double res;
    double a, b;
    a=x2-x1;
    b=y2-y1;
    
    res=pow(a,2.0)+pow(b,2.0);
    double dist=sqrt(res);
    return dist;
    }
    
    
    
    int main(){
    double x1,y2,x2,y1;
    cin>>x1>>y1>>x2>>y2;
    double dist=calcul(x1,y1,x2,y2);
    cout.precision(6);
    cout<<dist;
    return 0;
    }
    il passe 2 tests sur 3, l'erreur du test en question est :

    Test 2 Erreur Message de l'évaluateur :
    Votre reponse (2294.320000) est a plus de 0.0001 de la reponse attendue : 2294.321262
    Erreur dans le résultat.
    en gros, mon calcul donne pas un résultat assez précis, mais je vois pas ou le modifier, si vous avez des idées, merci!

    -----

  2. Publicité
  3. #2
    photon57

    Re : précision nbr décimaux c++

    Citation Envoyé par defender19 Voir le message
    Bonsoir,

    Petit soucis pour répondre à un exo :
    (...)
    Je ne pense pas que ce soit le calcul qui bne soit pas assez précis ... essaye de rajouter un truc du genre
    cout.setf(ios::fixed,ios::floa tfield);

  4. #3
    defender19

    Re : précision nbr décimaux c++

    Oui, c'est bien un question d'arrondi quoi.

    Ta ligne a marché parfaitement, merci bien! exo débloqué!

  5. #4
    polo974

    Re : précision nbr décimaux c++

    Il vaut mieux éviter le pow(x,2.) pour élever au carré, autant faire le produit directement:
    res=pow(a,2.0)+pow(b,2.0);
    devient donc
    res=a*a+b*b;

    car pow passe par les log et les exp alors qu'une multiplication est extrêmement plus rapide...
    (bon, pow est peut-être optimisé pour les carrés et le cubes, mais ça fait de toute façon des tests en plus)
    Jusqu'ici tout va bien...

  6. A voir en vidéo sur Futura
  7. #5
    defender19

    Re : précision nbr décimaux c++

    Ok, merci de l'info! Je le saurai maintenant

  8. #6
    defender19

    Re : précision nbr décimaux c++

    Quelqu'un connaît une astuce pour vérifier qu'une lettre n'est pas accentuée en c++ ?

    Je suis parti sur le principe que quand on fait char c; int a=c; a a une valeur négative pour les accents, est-ce une généralité?

  9. Publicité
  10. #7
    photon57

    Re : précision nbr décimaux c++

    Citation Envoyé par defender19 Voir le message
    Quelqu'un connaît une astuce pour vérifier qu'une lettre n'est pas accentuée en c++ ?

    Je suis parti sur le principe que quand on fait char c; int a=c; a a une valeur négative pour les accents, est-ce une généralité?
    Je pense que tu as a<0 pour tout caractère dont le code ascii est >127 .... sinon ça dépend de l'encodage (iso8859-1, win1252, utf8, ...)

  11. #8
    defender19

    Re : précision nbr décimaux c++

    Oui, tu as raison!

    J'ai utilisée :
    int isalnum(int c); : Teste si le caractère est alphanumérique (lettre majuscule, minuscule ou chiffre).
    au final, une lettre accentuée retourne faux, donc c'est ce qu'il me fallait.

Discussions similaires

  1. Conversion Sexagésimal/Degrés décimaux
    Par GeiGerjere dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 05/07/2010, 16h52
  2. Entier rationnel et décimaux
    Par Pitai dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 28/12/2008, 07h04
  3. Nombres décimaux
    Par Gunboy dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 08/09/2008, 18h54
  4. Factorielle de nombres décimaux
    Par G.Scott dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 17/02/2007, 18h54
  5. Propriétés des nombres décimaux
    Par Hachem dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 08/05/2006, 15h18