[[esi:home|esi's home]]
//Vous trouverez ici quelques solutions d'exercice. Dès que vous avez envie de poster une solution, faites-le. Si vous avez envie de critiquer une solution, faites-le aussi ... //
===== Remplissage d'une baignoire =====
====Énoncé====
Étant donné le débit d'un robinet exprimé en litres/heures ainsi que la capacité de la baignoire donnée en litres, écrire l'algorithme qui calcule et affiche la durée de remplissage de la baignoire en heure(s), minute(s), seconde(s).
====Solution====
import java.util.Scanner ;
/**
* RemplissageBaignoire
* Une solution de l'exercice 4, TD5, 2007-2008.
*
* Étant donné le débit d'un robinet exprimé en litres/heures ainsi que la capacité
* de la baignoire donnée en litres, écrire l'algorithme qui calcule et affiche
* la durée de remplissage de la baignoire en heure(s), minute(s), seconde(s).
*
* @author: PbT
*/
public class RemplissageBaignoire {
public static void main ( String[] args ) {
double débit ; // débit du robinet (l/h)
double capacité ; // capacité de la baignoire (l)
double temps ; // temps de remplissage de la baignoire (s)
int heures;
int minutes;
int secondes ; // temps exprimé en h,m,s
int tempsRestant ;
Scanner clavier = new Scanner ( System.in ) ;
// Lecture des valeurs *sans* vérification
System.out.print("Capacité de la baignoire (l): ");
capacité = clavier.nextDouble() ;
System.out.print("Débit du robinet (l/h): ");
débit = clavier.nextDouble() ;
// Rappel, Q = V / t
temps = capacité / débit ;
// Conversion du temps en secondes
temps = temps * 3600 ;
// Récupération des valeurs et conversion en hms
secondes = (int) temps % 60 ;
tempsRestant = (int) temps / 60 ;
minutes = tempsRestant % 60 ;
tempsRestant = tempsRestant / 60 ;
heures = tempsRestant ;
// Affichage du résultat
System.out.println("Temps de remplissage de la baignoire: " +
heures + "h" +
minutes + "m" +
secondes + "s");
}
=====Bulletin de Lotto, I2=====
====Énoncé====
Nous allons jouer au Lotto et peut-être gagner.
Nous allons implémenter une classe représentant un bulletin de Lotto.
Les bulletins de Lotto sont composés de plusieurs grilles de 42 numéros. Dans chaque grille,
il faut cocher 6 numéros (coût 0.50). Le bulletin de Lotto simple est composé de 12 grilles, dans chaque grille, on peut cocher 6 numéros 4.
Nous allons écrire une petite application permettant de remplir aléatoirement notre bulletin de Lotto (à suivre)
====Solution====
La classe Grille, représente une grille de 42 numéros. L'énoncé impose un tableau de 42 boolean.
/**
* Solution de l'I2, Bulletin de Lotto.
* L'énoncé est disponible sur le site http://esi.namok.be, dans les archives du
* cours, sous le nom LAJ-I2-20071213-56.pdf.
*
* Il est demandé d'écrire une classe Grille représentant une grille de Lotto et
* une classe BulletinDeLotto composée de 12 grilles ...
*
* @since 2007-2008
* @author pbt
*/
package lotto;
public class Grille {
private final int LIGNE = 7 ;
private final int COLONNE = 6 ;
//private final int NOMBRE_CASES = LIGNE * COLONNE ;
private boolean[] cases ;
public Grille(){
cases = new boolean[42] ;
}
public void affiche() {
int indice = 0 ;
for (int ligne=0; ligne=9) {
System.out.print(" ");
} else {
System.out.print(" ");
}
} else {
System.out.print(" X ");
}
indice++;
}
System.out.println();
}
}
public void coche(int indice) {
// sans aucune vérification !
cases[indice]=true;
}
public void remplit() {
int nombreCasesAremplir = 6 ;
int indice ;
while (nombreCasesAremplir>0) {
indice = (int) (Math.random() * 42) ;
if (!cases[indice]) {
cases[indice]=true;
nombreCasesAremplir--;
}
}
}
}
La classe BulletinDeLotto se compose de 12 grilles ...
/**
* Solution de l'I2, Bulletin de Lotto.
* L'énoncé est disponible sur le site http://esi.namok.be, dans les archives du
* cours, sous le nom LAJ-I2-20071213-56.pdf.
*
* Il est demandé d'écrire une classe Grille représentant une grille de Lotto et
* une classe BulletinDeLotto composée de 12 grilles ...
*
* Classe BulletinDeLotto
*
* Ce code n'est pas commenté ... il devrait l'être.
*
* @since 2007-2008
* @author pbt
*/
package lotto;
public class BulletinDeLotto {
private final int NOMBRE_GRILLES = 12 ;
private Grille[] grilles ;
public BulletinDeLotto() {
grilles = new Grille[NOMBRE_GRILLES] ;
for (int i=0; i