| [Précédent] |
| 3.10 |
Rebonds de balles - Corrigé | Niveau 2 |
||
Fichiers: |
Rebonds1.java, Rebonds2.java | |||
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 |
import java.util.Scanner;
public class Rebonds1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//Constante de gravité
final double G = 9.81;
// Déclarations
// vitesses avant et après le rebond
double v = 0.0;
double v1 = 0.0;
// hauteur avant le rebond, hauteur de remontée
double h = 0.0;
double h1 = 0.0;
// hauteur initiale
double H0 = 0.0;
// valeur epsilon
double eps = 0.0;
// nombre de rebonds
int NBR = 0;
/*
* Entrée des valeurs par l'utilisateur,
* avec test de validité
*/
do {
System.out.print("Coefficient de rebond (0 <= coeff < 1) : ");
eps = scanner.nextDouble();
} while ((eps < 0.0) || (eps >= 1.0));
do {
System.out.print("Hauteur initiale (0 <= H0) : ");
H0 = scanner.nextDouble();
} while (H0 < 0.0);
do {
System.out.print("Nombre de rebonds (0 <= N ) : ");
NBR = scanner.nextInt();
} while (NBR < 0);
// Boucle de calcul
h = H0;
// on fait une itération par rebond
for (int nombre = 0; nombre < NBR; ++nombre) {
v = Math.sqrt(2.0 * G * h);
// vitesse après le rebond
v1 = eps * v;
// la hauteur à laquelle elle remonte...
h1 =(v1 * v1) / (2.0 * G);
// ...qui devient la nouvelle hauteur initiale
h = h1;
System.out.println("rebond " + (nombre+1) + " : " + h);
}
/* Affichage du résultat */
System.out.println("Au " + NBR + "eme rebond, la hauteur sera de " + h + "m.");
scanner.close();
}
} |
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 |
import java.util.Scanner;
public class Rebonds2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//Constante de gravité
final double G = 9.81;
// Déclarations
// vitesses avant et après le rebond
double v = 0.0;
double v1 = 0.0;
// hauteur avant le rebond, hauteur de remontée
double h = 0.0;
double h1 = 0.0;
double h0 = 0.0;
double eps = 0.0;
double h_fin = 0.0;
/*
* Entrée des valeurs par l'utilisateur,
* avec test de validité
*/
do {
System.out.print("Coefficient de rebond (0 <= coeff < 1) : ");
eps = scanner.nextDouble();
} while ((eps < 0.0) || (eps >= 1.0));
do {
System.out.print("Hauteur initiale (0 <= H0) : ");
h0 = scanner.nextDouble();
} while (h0 < 0.0);
do {
System.out.println("Hauteur finale (0 <= h_fin ) : ");
h_fin = scanner.nextDouble();
} while (h_fin < 0.0 || h_fin > h0);
// Boucle de calcul
h = h0;
int count = 0;
do {
v = Math.sqrt(2.0 * G * h);
// vitesse après le rebond
v1 = eps * v;
// incrémente le nombre de rebonds
count++;
// la hauteur à laquelle elle remonte...
h1 = (v1 * v1) / (2.0 * G);
// ...qui devient la nouvelle hauteur initiale
h = h1;
System.out.println("rebond " + count + " : " + h );
} while (h1 > h_fin);
// Affichage du résultat
System.out.println("Nombre de rebonds :" + count);
scanner.close();
}
} |
| [Précédent] |