Bonjour, je suis entrain de m'entraîner à utiliser les structures. J'ai réalisé ce petit programme qui affiche la norme de mon vecteur puis affiche si le vecteur est normalisé ou non. Cependant, lorsque le programme s’exécute il m'affiche dans l'ordre "1" puis "0", ce qui se traduit par "la norme du vecteur vaut 1" et "le vecteur n'est pas normalisé". Ces' contradictoire, je ne trouve pas mon erreur. J'ai bien fait attention de comparer deux double pour éviter les erreurs d'arrondis mais ce n'est pas le problème ici apparemment. Pouvez-vous m'aider ?
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
Merci de modifier votre message d'origine en fonction.
Tu peux améliorer la précision de ton calcul en utilisant la fonction std::hypot() plutôt qu'une racine de somme de carrés, elle fait la même chose mais évitant la perte de précision de génère les carrés. Ça nécessite le C++17 et d'utiliser #include <cmath> plutôt que #include <math.h>.
Ça devrait résoudre le cas de ton vecteur, mais ça n'est pas suffisant pour d'autres. On doit vérifier que le nombre obtenu est très proche de 1 (donc doit être entre 1 moins un chouia et 1 plus un chouia). Le plus petit nombre que l'on peut ajouter à 1 est indiqué par la bibliothèque standard, il s'appelle epsilon et est fourni dans l'include <limits>. On peut supposer une erreur de quelques epsilon. On peut écrire:
La dernière fois que j'ai regardé les implémentations de GCC et de LLVM faisaient les 3 carrées, les additions et la racine carrée. Cela peut avoir changé depuis.
(Pour GCC qui implémentait vraiment la version plus précise pour la dimension 2, c'était bien plus lent.)
× 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.
En recherche d'emploi.