Bloque dans un exercice (distance)
Discutez d'informatique ici !
-
z^42
- Membre Naturel
- Messages: 60
- Enregistré le: 21 Sep 2014, 15:18
-
par z^42 » 30 Oct 2014, 14:56
Bonjour,
Je ne sais pas comment procéder dans cet algorithme. Je n'ai pas très compris la consigne. Pourquoi faire la division à la fin.
Pouvez vous me donner des pistes svp.
Sujet:
On cherche à écrire une fonction qui calcule la distance parcourue en km, à partir de la vitesse, en noeuds, et du temps du voyage, en jours.
On introduira des variables temporaires mhSpeed et hours, représentant respectivement la vitesse en mètres par heures et la durée du voyage en heures.
On « rappelle » qu'un noeud vaut 1,852 km/h.
On utilise des m/h et non des km/h, car on ne manie que des entiers. Pour rester le plus proche possible du résultat, on retarde donc la division au dernier moment.
Merci d'avance
Bonne journée
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 30 Oct 2014, 15:06
la division introduit une erreur dans le résultat car la représentation du nombre doit tenir sur un nombre de bit fini (32 bits par exemple), du coup tu calcules en nombre exact et tout à la fin tu fais ta dévision
la vie est une fête
-
Sake
- Habitué(e)
- Messages: 1392
- Enregistré le: 17 Juil 2014, 22:32
-
par Sake » 30 Oct 2014, 15:08
Salut,
z^42 a écrit:Bonjour,
Je ne sais pas comment procéder dans cet algorithme. Je n'ai pas très compris la consigne. Pourquoi faire la division à la fin.
Pouvez vous me donner des pistes svp.
Sujet:
On cherche à écrire une fonction qui calcule la distance parcourue en km, à partir de la vitesse, en noeuds, et du temps du voyage, en jours.
On introduira des variables temporaires mhSpeed et hours, représentant respectivement la vitesse en mètres par heures et la durée du voyage en heures.
On « rappelle » qu'un noeud vaut 1,852 km/h.
On utilise des m/h et non des km/h, car on ne manie que des entiers. Pour rester le plus proche possible du résultat, on retarde donc la division au dernier moment.
Merci d'avance
Bonne journée
Si tu as une valeur de vitesse en m/h, il faut bien diviser cette valeur par 1852 pour avoir des noeuds. Seulement, tes calculs intermédiaires, s'ils font intervenir des réels, seront effectués à virgule flottante. Tu perdras donc de la précision dans ces étapes intermédiaires.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités