salut
j'ai un tp a faire avec un parachutiste avec et sans ouverture du parachute et j'ai un souci...mais je vois pas ou

le sujet est celui ci :

2.2 Modélisation du parachutiste
Le parachutiste sera représenté dans le programme par sa masse, sa vitesse de
chute, son accélération, son altitude et la surface de son corps exposée aux frottements
de l’air (celle-ci variera lorsque le parachute s’ouvrira).
3
Dans le programme téléchargé :
1. commencez par déclarer dans la méthode main une constante g de valeur
9.81, et deux variables de type double (qui seront modifiées lors de
l’ouverture du parachute) : v0, initialisée à 0 et t0, initialisée à 0.
2. définissez ensuite les variables nécessaires à la description du parachutiste
telle que donnée ci-dessus, autre que sa masse que nous avons déjà définie
(voir le début de la méthode main dans le fichier téléchargé) : vitesse
pour sa vitesse, hauteur pour son altitude, accel pour son accélération
et t pour le temps.
On initialisera la surface du parachutiste à 2.0 m2
, son altitude avec la
valeur de h0, sa vitesse avec celle de v0 et son accélération avec celle de
g.
Définissez enfin une variable t initialisée à la valeur de t0.
3. Affichez les valeurs initiales telles que définies ci-dessus en utilisant strictement
la ligne suivante (également fournie dans le fichier à télécharger) :
System.out.printf("%.0f, %.4f, %.4f, %.5f\n",
t, hauteur, vitesse, accel);
Avec les valeurs initiales données ci-dessus, une masse de 80 kg et une
altitude de départ de 39’000 m, le programme affichera à ce stade :
0, 39000.0000, 0.0000, 9.81000
2.3 Chute libre
Pour calculer l’évolution du sportif en chute libre nous aurons besoin des deux
expressions suivantes :
— s qui est la surface du sportif divisée par sa masse ;
— un « terme » noté q et valant q = exp(−s × (t − t0)), où t représente
le temps courant et t0 le temps initial de la chute, initialisé à 0 dans la
question précédente.
Note : la fonction exp s’écrit simplement Math.exp en Java, par exemple :
Math.exp(x).
L’évolution du sportif en chute libre s’exprime alors comme suit :
v(t) = g
s
× (1 − q) + v0 × q
h(t) = h0 −
g
s
× (t − t0) −
v0 − g/s
s
× (1 − q)
a(t) = g − s × v(t)
4
où v est la vitesse du sportif, h son altitude, a son accélération, g = 9.81, et v0, h0
et t0 correspondent aux trois variables définies à la question précédente 1
.
On vous demande de compléter votre programme précédent de sorte à calculer
l’évolution de la chute du sportif tel qu’initialisé dans la question précédente :
faites le calcul, de seconde en seconde (c’est-à-dire ajouter à chaque fois 1 au
temps t), tant que le sportif n’atteint pas le sol, c’est-à-dire tant que son altitude
h est positive.
Affichez les caractéristiques du sportif à chaque seconde en respectant le format
de la question précédente.
Testez votre programme avec une masse de 80 kg et une altitude de départ de
39’000 m; il devrait donner les résultats suivants :
0, 39000.0000, 0.0000, 9.81000
1, 38995.1356, 9.6884, 9.56779
2, 38980.7030, 19.1376, 9.33156
3, 38956.9382, 28.3535, 9.10116
...
137, 426.3065, 379.6277, 0.31931
138, 46.5205, 379.9430, 0.31142
2.4 Vitesse du son et vitesse limite
On vous demande maintenant d’étendre votre programme précédent de sorte que :
5. dès que la vitesse du sportif dépasse la vitesse du son (343 m/s), le programme
affiche (en plus, mais qu’une seule fois) le message suivant :
## Felix depasse la vitesse du son
Ce message doit s’afficher AVANT les informations de temps, altitude, vitesse
et accélération :
...
82, 20498.5770, 341.8844, 1.26289
## Felix depasse la vitesse du son
83, 20156.0663, 343.1317, 1.23171
...
6. dès que son accélération est inférieure à 0.5 m/s2
, le programme affiche
(en plus, mais qu’une seule fois) le message suivant :
## Felix a atteint sa vitesse maximale
1. Elles pourront changer par la suite, donc même si certaines sont pour le moment nulles, il
est important de toutes les garder explicitement dans les formules calculées.
5
Ce message doit s’afficher AVANT les informations de temps, altitude, vitesse
et accélération :
...
119, 7199.1595, 372.3690, 0.50078
## Felix a atteint sa vitesse maximale
120, 6826.5422, 372.8636, 0.48841
...
Pour tester : avec les valeurs précédentes (80 kg et 39’000 m), la vitesse du son
est atteinte au bout de 83 s et la vitesse maximale (' 372 m/s) au bout de 120 s
comme montré dans les deux exemples ci-dessus.
2.5 Ouverture du parachute
On vous demande finalement d’étendre une dernière fois votre programme pré-
cédent de sorte que dès que l’altitude du sportif est plus petite que 2500 m, le
programme change la valeur de la surface du sportif de 2.0 m2
(avant l’ouverture
du parachute) à 25.0 m2
(après l’ouverture du parachute). Il faut aussi changer les
« conditions initiales » t0, v0 et h0 avec les valeurs actuelles du sportif (de sorte
que les équations d’évolution soient correctes pour la suite de la chute).
De plus, le programme doit afficher le message suivant :
## Felix ouvre son parachute
Ce message doit s’afficher AVANT les informations de temps, altitude, vitesse et
accélération :
...
131, 2698.0264, 377.5607, 0.37098
## Felix ouvre son parachute
132, 2320.2818, 377.9270, 0.36182
133, 1991.2751, 284.9225, -79.22827
...
Notez que donc l’accélération devient négative deux lignes après l’affichage de ce
message.
Pour tester : avec les valeurs précédentes (80 kg et 39’000 m), le parachute est
ouvert au bout de 132 s et la simulation se termine au bout de 170 s :
...
131, 2698.0264, 377.5607, 0.37098
## Felix ouvre son parachute
132, 2320.2818, 377.9270, 0.36182
6
133, 1991.2751, 284.9225, -79.22827
...
170, 18.4814, 31.3944, -0.00075
Enfin, réfléchissez bien au moment où il faut signaler l’ouverture du parachute;
par exemple, on ne saute pas avec un parachute déjà ouvert !..

<---------------------------------------------------------------------------------------------------------------------------------------->
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
import java.util.Scanner;
 
class Parachutiste {
 
	public static void main(String[] args) {
 
		Scanner clavier = new Scanner(System.in);
 
		double masse = 80.0;
		/**do {
                        System.out.print("masse du parachutiste (>= 40) ? ");
                        masse = clavier.nextDouble();
                } while (masse < 40.0);**/
 
		double h0 = 39000.0;
		/**do {
                        System.out.print("hauteur de depart du parachutiste (>= 250) ? ");
                        h0 = clavier.nextDouble();
                } while (h0 < 250.0);**/
 
		/*******************************************
                 * Completez le programme a partir d'ici.
                 *******************************************/
		final double g=9.81;
		double v0=0;
		double t0=0;
		double t=t0;
		double hauteur=h0;
		double vitesse=v0;
		double accel=g;
		double surface=2.0;
		double s=surface/masse;
 
		while(hauteur>0)
		{
			vitesse=g/s*(1-Math.exp(-s*(t-t0)))+v0*Math.exp(-s*(t-t0));
			hauteur=h0-(g/s*(t-t0))-(v0-(g/s)/s)*(1-Math.exp(-s*(t-t0)));
			accel=g-(s*vitesse);
		    if(hauteur>0)
			{
				System.out.printf("%.0f, %.4f, %.4f, %.5f\n",
						t, hauteur, vitesse, accel);  	
				t++;
			}     	
 
			if(hauteur > 2500) 
			{           		
				if(vitesse>=341&&vitesse<343)
				{
					System.out.println("Felix depasse la vitese du son");
				}
				if (accel <0.50078 && accel >0.48842)
				{
					System.out.println("Felix a atteint sa vitesse maximale");
				}
				if(hauteur < 2700)
				{ 
					System.out.println("Felix ouvre son parachute");
				}
			}
			else 
			{
				surface=25;
				s=surface/masse;
				t0=132;
				h0=2320.2818;
				v0=377.9270;
			}
		}
		/*******************************************
                 * Ne rien modifier apres cette ligne.
                 *******************************************/
		clavier.close();
	}
}

jusqu'a la 132eme seconde tout se passe bien mais apres la hauteur ne correspond plus a ce qui est (demande /devrait etre)
ca fait 3jours que je suis dessus et je bloque total si vous pouvez me donner une piste(sans code)...

merci