Bonjour,
j'ai un peu de mal à comprendre certains éléments de correction de week03.
Notamment, j'ai les questions suivantes :
- '== sur les double' : j'ai bien conscience que comparer des double est une tâche complexe, mais en soi on ne fait qu'écrire des entiers (0 et 1, en l'occurence) qui sont en soi représentables avec précision absolue sur des doubles (en tant que 1.0e0 et 0.0e0, respectivement) et sur lesquels on ne fait aucun calcul, donc rendus tels quels. Je n'ai donc en tant que programmeur aucun scrupule à les comparer avec ==, et ce en pleine connaissance des problèmes que cela pose dans le cas général. Ai-je tort ? On pourrait en soi argumenter que rien n'empêche la spécification du programme de changer les valeurs 0 et 1 par des réels non représentables, mais même dans ce cas la comparaison inter-doubles devrait tenir la route. Puisqu'aucun calcul n'est fait, on ne peut pas se plaindre des erreurs de précision sur les opérations doubles.
(ex :
double pi = M_PI;
pi == 3.14159265358979323846; //est vrai ! pas de calcul -> pas de problème.
MAIS :
double pi = M_PI + 0.5;
pi - 0.5 == 3.14159265358979323846;
//est faux ! enfin, ça dépend du compilateur/de son niveau d'optimisation... mais cela ne nous concerne pas)
- d'autre part, 'gestion de la diagonale' est assez obscur. Devions-nous vérifier que la diagonale est plus petite que les côtés ? C'était explicitement marqué dans le code de laisser tel quel.
- 'réutilisation de yc' : je n'ai pas compris cette ligne, pourriez-vous préciser ?
Merci beaucoup d'avance !
Mathis Randl