[[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