• Aucun résultat trouvé

Solutions. Solution 1. public class Date {

N/A
N/A
Protected

Academic year: 2022

Partager "Solutions. Solution 1. public class Date {"

Copied!
5
0
0

Texte intégral

(1)

Solutions

Solution 1.

public class Date {

public static boolean estBissextile(int annee) { if (annee % 4 != 0)

return false;

if (annee % 100 != 0) return true;

return (annee % 400 == 0);

}

public static boolean estCoherente(int jour, int mois, int annee) { if (annee < 1 || mois < 1 || mois > 12)

return false;

switch(mois) { case 1 :

case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :

return (jour > 0 && jour <= 31);

case 4 : case 6 : case 9 : case 11 :

return (jour > 0 && jour <= 30);

default : // ici il ne peut s’agir que de 2 if (estBissextile(annee))

return (jour > 0 && jour <= 29);

else

return (jour > 0 && jour <= 28);

} }

public static void dateLendemain(int jour, int mois, int annee) { if (! estCoherente(jour, mois, annee))

System.out.println("Donnez moi une date valide !");

else

if (estCoherente(jour + 1, mois, annee))

System.out.println("Demain, on sera le " + (jour + 1) + "/"

+ mois + "/" + annee);

(2)

else // on est en fin de mois !

if (estCoherente(1, mois + 1, annee))

System.out.println("Demain, on sera le 1/" + (mois + 1) + "/" + annee);

else // on est le 31 decembre !

System.out.println("Demain on sera le 1/1/" + (annee + 1) + ". Bonne annee !");

}

public static int nombreDAnneBissextile(int anneeDepart, int anneeFin) { int i;

int compteur = 0;

for (i = anneeDepart; i <= anneeFin; i++) if (estBissextile(i))

compteur++;

return compteur;

}

public static void main(String[] args) {

System.out.println("1600 "+ estBissextile(1600));

System.out.println("1900 "+ estBissextile(1900));

System.out.println("1984 "+ estBissextile(1984));

System.out.println("1986 "+ estBissextile(1986));

System.out.println("22/03/1993 " + estCoherente(22,3,1993));

System.out.println("35/01/2002 " + estCoherente(35,1,2002));

System.out.println("29/02/1986 " + estCoherente(29,2,1986));

System.out.println("29/11/2005 " + estCoherente(29,11,2005));

System.out.print("15/10/1990. ");

dateLendemain(15,10,1990);

System.out.print("31/10/1990. ");

dateLendemain(31,10,1990);

System.out.print("32/10/1990. ");

dateLendemain(32,10,1990);

System.out.print("31/12/1990. ");

dateLendemain(31,12,1990);

System.out.print("30/12/1990. ");

dateLendemain(30,12,1990);

System.out.print("28/2/1983. ");

dateLendemain(28,2,1983);

System.out.print("28/2/1984. ");

dateLendemain(28,2,1984);

System.out.println("Il y a eu " + nombreDAnneBissextile(1982, 1998) + " entre 1982 et 1998");

} }

Solution 2.

(3)

– Les boucles 1, 2, et 3 affichent respectivement 5, 0, 2 fois “Test”. La boucle 4 est infinie, son ex´ecution ne s’arrˆete jamais.

– Boucle for´equivalente :

for(int i = 5; i > 0; i--)

System.out.println(‘‘Test’’);

– Si on change int i = 1 ; en int i = 0 ; dans la boucle 3, la condition d’arrˆet n’est jamais satisfaite et l’ex´ecution de la boucle est infinie.

– L’ex´ecution de la boucle 5 est infinie, la condition d’arrˆet n’est jamais satisfaite.

Solution 3.

import javax.swing.JOptionPane;

public class Max {

public static int max(int[] t) { int max = t[0];

for (int i = 0; i < t.length; i++) if (t[i] > max)

max = t[i];

return max;

}

public static void main(String[] args) { String entree;

int n;

int[] tab;

entree = JOptionPane.showInputDialog("Nombre d’entiers ?");

n = Integer.parseInt(entree);

tab = new int[n];

for (int i = 0; i < n; i++) {

entree = JOptionPane.showInputDialog("Entrez un entier :");

tab[i] = Integer.parseInt(entree);

}

JOptionPane.showMessageDialog(null,"Maximum des nombres entres : " + max(tab));

} }

Solution 4.

import javax.swing.JOptionPane;

public class Puissance {

public static double puissance(int x, int y) {

(4)

double resultat = 1;

if (y < 0)

return 1 / puissance(x, -y);

for(int i = 0; i < y; i++) resultat *= x;

return resultat;

}

public static void main(String[] args) { String entree;

int x, y;

entree = JOptionPane.showInputDialog("Base ?");

x = Integer.parseInt(entree);

entree = JOptionPane.showInputDialog("Exposant ?");

y = Integer.parseInt(entree);

JOptionPane.showMessageDialog(null,"Resultat : " + puissance(x,y));

} }

Solution 5.

import javax.swing.JOptionPane;

public class TableDeMultiplication{

public static void afficherTableMultiplication(int n) { for (int i = 1; i < 10; i++)

System.out.println(i + " * " + n + " = " + (i * n));

}

public static void main(String[] args) { String entree;

entree = JOptionPane.showInputDialog("Entre un nombre :");

afficherTableMultiplication(Integer.parseInt(entree));

} }

Solution 6.

import javax.swing.JOptionPane;

public class Rectangle {

public static void dessinerLigne(int longueur, char delimiteur, char interieur) { System.out.print(delimiteur);

for (int i = 0; i < longueur; i++)

(5)

System.out.print(interieur);

System.out.println(delimiteur);

}

public static void dessinerRectangle(int longueur, int largeur) { dessinerLigne(longueur,’+’,’-’);

for (int i = 0; i < largeur; i++) dessinerLigne(longueur, ’|’, ’ ’);

dessinerLigne(longueur,’+’,’-’);

}

public static void main(String[] args) { String entree;

int x, y;

entree = JOptionPane.showInputDialog("Longueur ?");

x = Integer.parseInt(entree);

entree = JOptionPane.showInputDialog("Largeur ?");

y = Integer.parseInt(entree);

dessinerRectangle(x, y);

} }

Références

Documents relatifs

AVL: ssi chq nœud |Haut(gauche)-Haut(droite)|≤1 nb: sous-arbre vide a une Hauteur de -1 Hauteur AVL = 1.44lgn  O(logn) Insertion: droit-droit ou gauche-gauche.. simple rotation

Autre individu du même sexe , de grandeur naturelle; 2a, très-grossi; 2b, un tronçon du corps du même encore plus grossi pour montrer les

Pour interpr´ eter ce r´ esultat, il faut se souvenir que l’ammoniac forme avec l’argent un complexe : Ag + + 2NH 3 = [Ag(NH 3 )] + log(β 2 ) = 7, 2 (39) En comparant ces

The goal of this object is to avoid using a hammer, especially if you must use it all

Montecchiari, Existence of infinitely many stationary layered solutions in R 2 for a class of periodic Allen Cahn Equations.. Cabre, Entire solutions of semilinear elliptic equations

L’action du tampon permet de minimiser la baisse du pH mais ne le remet pas à sa valeur normale, en absence de cette action tampon on aurait eu un pH encore plus bas.. d- L e

Dans cette même solution tampon, on ajoute cette fois-ci 0,1 mole de NaOH c- Quelle sera la variation du pH.. Refaire l'exercice pour une solution renfermant 0,3 mole de CH3COOH et

On choisit le rayon du cercle comme unité de longueur. Le point T appartient au cercle de diamètre [AB] et au cercle de diamètre [PO].. 2) Une solution sans calculs grâce