Bonjour à tous,
Dans mon cours, à l'université, de programmation 101, on me demande de créer un programme pour calculer plusieurs variables d'un lancement de missile. Cependant, mon programme me donne un résultat aberrant et je ne trouve pas ou est le problème. J'ai eu beau regarder mais je n'ai aucune idée d'ou elle se trouve . Voici l'énoncé du problème :

Sujet : la balistique
Vous devez faire l’analyse, la conception et l’implantation d’un programme qui servira a calculer l’altitude atteinte par un projectile, la distance horizontale qu’il parcourt ainsi que le temps qu’il met a retomber. Le projectile est tire par un lanceur (personne, fusil, canon,...) et n’est pas autopropulse. Nous ne considerons pas dans le calcul la force de friction ni les variations dans la force d’attraction. Comme nous simplifions le probleme, nous allons induire une erreur dans notre calcul. Le programme devra donc corriger ses resultats en y additionnant une valeur correspondant a une certaine marge d’erreur specifiee comme un poucentage des resultats. Cette marge d’erreur est specifiee par l’utilisateur. Le programme prendra en entree les vitesses verticales et horizontales du projectile (en milles/heure), la force d’attraction (en metres/seconde2) ainsi que le pourcentage estimee de l’erreur. Le programme devra afficher comme resultats l’altitude et la distance en metres,
ainsi que le temps en annees, jours, heures, minutes et secondes.

voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
/**
Fichier : Balistique.cpp
 
Calcul de l'altitude, la distance verticale, la distance horizontale et le temps de chute d'un projectile.
 
Auteur : Julien Parent-Trudeau
Matricule : XXXXXXXXX
 
Date de creation : 15 septembre 2009
 
Entrees :
(clavier) Vitesse verticale (reel) (milles/heure)
(clavier) Vitesse horizontale (reel) (milles/heure)
(clavier) Force d’attraction (reel) (mètre/(secondes*secondes)
(clavier) Erreur en poucentage (reel)
 
Sorties :
(ecran) Altitude en metres (reel)
(ecran) Distance horizontale en metres (reel)
(ecran) Temps en mois, jour, heure, minute, seconde (5 entiers)
*/
 
/// Bibliotheques utilisees ou utiles
 
#include
#include
 
using namespace std;
 
int main()
{
/// Declaration des constantes
const float MILLE_KILO = 0.62 ; //conversion d'un kilometre en mille
const int METRE_KILO = 1000 ; //conversion d'un kilometre en metre
const int SEC_MIN = 60 ; //conversion d'une minute en seconde
const int MIN_HEURE = 60 ; //conversion d'une heure en minute
const int HEURE_JOUR = 24 ; //conversion d'un jour en heure
const int JOUR_ANNEE = 364 ; //conversion d'une annee en jour
 
/// Declaration des variables
/// Entrees
float vitesse_verticale_mille_heure, vitesse_horizontale_mille_heure, force_attraction, erreur_pourcentage ;
 
/// Sorties
int altitude_maximale_corrigee ;
int distance_horizontale ;
int temps_annee ;
int temps_jour ;
int temps_heure ;
int temps_minute ;
int temps_seconde ;
 
/// Variables intermédiaires
float vitesse_verticale_kilo_heure ;
float vitesse_horizontale_kilo_heure ;
float vitesse_verticale_metre_heure ;
float vitesse_horizontale_metre_heure ;
float vitesse_verticale_metre_seconde ;
float vitesse_horizontale_metre_seconde ;
int altitude_maximale ;
int temps_corrige ;
int temps_retombee ;
int temps_retombee_corrigee ;
int temps_restant ;
 
///--------------------------------------------------------------------------------
/// 1 Lecture des entrees
///--------------------------------------------------------------------------------
/// 1.1 Lecture de la vitesse verticale V0
cout << "Quelle est la vitesse verticale ?" << endl ;
cin >> vitesse_verticale_mille_heure ;
 
/// 1.2 Lecture de la vitesse horizontale H0
cout << "Quelle est la vitesse horizontale ?" << endl ;
cin >> vitesse_horizontale_mille_heure ;
 
/// 1.3 Lecture de la force d'attraction
cout << "Quelle est la force d'attraction ?" << endl ;
cin >> force_attraction ;
 
/// 1.4 Lecture du pourcentage d'erreur
cout << "Quel est le pourcentage d'erreur ?" << endl ;
cin >> erreur_pourcentage ;
 
///--------------------------------------------------------------------------------
/// 2 Convertire les vitesses en metre par secondes
///--------------------------------------------------------------------------------
/// 2.1 Transformer vitesse verticale de milles/heure en kilometres/heure
vitesse_verticale_kilo_heure = vitesse_verticale_mille_heure / MILLE_KILO ;
 
/// 2.2 Transformer vitesse horizontale de milles/heure en kilometres/heure
vitesse_horizontale_kilo_heure = vitesse_horizontale_mille_heure / MILLE_KILO ;
 
/// 2.3 Transformer vitesse verticale de kilometres/heure en metres/heure
vitesse_verticale_metre_heure = vitesse_verticale_kilo_heure * METRE_KILO ;
 
/// 2.4 Transformer vitesse horizontale de kilometres/heure en metres/heure
vitesse_horizontale_metre_heure = vitesse_horizontale_kilo_heure * METRE_KILO ;
 
/// 2.5 Transformer vitesse verticale de metres/heure en metres/seconde
vitesse_verticale_metre_seconde = vitesse_verticale_metre_heure * MIN_HEURE * SEC_MIN ;
 
/// 2.6 Transformer vitesse horizontale de metres/heure en metres/seconde
vitesse_horizontale_metre_seconde = vitesse_horizontale_metre_heure * MIN_HEURE * SEC_MIN ;
 
///--------------------------------------------------------------------------------
/// 3 Calculer l'altitude maximale
///--------------------------------------------------------------------------------
/// 3.1 Calculer l’altitude
altitude_maximale = 0.5 * (( vitesse_verticale_metre_seconde * vitesse_verticale_metre_seconde ) / force_attraction ) ;
/// 3.2 Ajouter l'erreur
altitude_maximale_corrigee = altitude_maximale + ( altitude_maximale * erreur_pourcentage ) ;
 
///--------------------------------------------------------------------------------
/// 4 Calculer le temps de retombee
///--------------------------------------------------------------------------------
/// 4.1 Calculer le temps
temps_retombee = 2 * vitesse_verticale_metre_seconde / force_attraction ;
/// 4.2 Ajouter l'erreur
temps_retombee_corrigee = temps_retombee + ( temps_retombee * erreur_pourcentage ) ;
 
///--------------------------------------------------------------------------------
/// 5 Calculer distance parcourue
///--------------------------------------------------------------------------------
distance_horizontale = temps_retombee_corrigee * vitesse_horizontale_metre_seconde ;
 
///--------------------------------------------------------------------------------
/// 6 Convertir le temps en annees-jours-heures-minutes-secondes
///--------------------------------------------------------------------------------
/// 6.1 Calculer le nombre d’annees
temps_annee = temps_retombee_corrigee / ( JOUR_ANNEE * HEURE_JOUR * MIN_HEURE * SEC_MIN ) ;
/// 6.2 Calculer le nombre de secondes restantes
temps_restant = temps_retombee_corrigee % ( JOUR_ANNEE * HEURE_JOUR * MIN_HEURE * SEC_MIN ) ;
/// 6.3 Calculer le nombre de jours
temps_jour = temps_restant / ( HEURE_JOUR * MIN_HEURE * SEC_MIN ) ;
/// 6.4 Calculer le nombre de secondes restantes
temps_restant = temps_restant % ( HEURE_JOUR * MIN_HEURE * SEC_MIN ) ;
/// 6.5 Calculer le nombre d’heures
temps_heure = temps_restant / ( MIN_HEURE * SEC_MIN ) ;
/// 6.6 Calculer le nombre de secondes restantes
temps_restant = temps_restant % ( MIN_HEURE * SEC_MIN ) ;
/// 6.7 Calculer le nombre de minutes
temps_minute = temps_restant / ( SEC_MIN ) ;
/// 6.8 Calculer le nombre de secondes restantes
temps_seconde = temps_restant % ( SEC_MIN ) ;
 
///--------------------------------------------------------------------------------
/// 7 Afficher la distance sur l’ecran
///--------------------------------------------------------------------------------
/// 7.1 Afficher l’altitude
cout << "L'altitude maximale atteinte est de " << altitude_maximale_corrigee << endl ;
/// 7.2 Afficher la distance
cout << "La distance totale parcourue est de " << distance_horizontale << endl ;
/// 7.3 Afficher le nombre d’annees
cout << "Le temps de vol total est de " << temps_annee << "annee(s) " ;
/// 7.4 Afficher le nombre de jours
cout << temps_jour << "jours " ;
/// 7.5 Afficher le nombre d’heures
cout << temps_heure << "heures " ;
/// 7.6 Afficher le nombre de minutes
cout << temps_minute << "minutes " ;
/// 7.7 Afficher le nombre de secondes
cout << temps_seconde << "secondes" << endl ;
 
return 0 ;
}
Quelqu'un voit-il à l'œil nu ou pourrait se trouver le problème!?