précision nbr décimaux c++
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. #2
    invite4492c379

    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);

  3. #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é!

  4. #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...

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

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

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

  7. #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é?

  8. #7
    invite4492c379

    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, ...)

  9. #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 invite7cbc2533 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 05/07/2010, 15h52
  2. Entier rationnel et décimaux
    Par inviteb473d51f dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 28/12/2008, 06h04
  3. Nombres décimaux
    Par invite4f9b784f dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 08/09/2008, 17h54
  4. Factorielle de nombres décimaux
    Par inviteb4b89598 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 17/02/2007, 17h54
  5. Propriétés des nombres décimaux
    Par invite6a923382 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 08/05/2006, 14h18