L’une des découvertes humaines passionnantes est que la masse et l’énergie sont interchangeables et liées par l’équation E = M × C 2. Albert Einstein a découvert cette relation il y a près de 100 ans et nous savons maintenant que le soleil produit sa chaleur en transformant de petites quantités de masse en grandes quantités d'énergie.

Ecrivez un programme qui lit continuellement en masse l’utilisateur puis émet la quantité d’énergie. Montrez votre travail de la manière suivante:

Si vous demandez à l'utilisateur de saisir des kilogrammes et que vous utilisez une vitesse de la lumière égale à 299792458 (qui est en mètres par seconde) le résultat du calcul de E = M × C 2 sera à Jouls.

Notez que 3.0E8 est la notation scientifique pour 3.0 &fois; 10 8... lequel est 300,000,000. Vous n'avez rien à faire pour que Java imprime les doubles en notation scientifique. Cela se fera automatiquement lorsque les chiffres seront suffisamment gros.

Puisque la vitesse de la lumière ne changera jamais, il est logique de la déclarer constante.

Solution

/**
 * Program: EMC2
 * -------------
 * Ce programme aide les utilisateurs à calculer la quantité d’énergie qu’ils
 * pourraient obtenir s’ils transformaient leur masse. Merci Einstein!
 */
public class EMC2 extends ConsoleProgram {

	// Cela déclare une constante ... cela ne peut jamais changer de valeur.
	// Vitesse de la lumière en m/s
	private static final double C = 299792458;

	public void run() {
		while(true) {
			// Lire la masse de l'utilisateur.
			double massInKg = readDouble("Enter kilos of mass: ");

			// Calculer l'énergie
			double energyInJoules = massInKg * C * C;

			// Affiche le travail à l'utilisateur
			println("e = m * C^2...");
			println("m = " + massInKg + " kg");
			println("C = " + C + " m/s");
			println(energyInJoules + " joules of energy!");
			println("");
		}
	}
}