Upload
violonjo
View
441
Download
14
Embed Size (px)
Citation preview
HOUNGBEME Joseph http://master1istri.blogspot.com/ 1
JAVA
Joseph HOUNGBEME
HOUNGBEME Joseph http://master1istri.blogspot.com/ 2
Sommaire
I-Petite programme en java
Mini projet 1
Java 0 : On veut afficher notre premier programme
Java 1 Nombre entier inférieur à 15
Java 2 -0 Nombre paire inférieure à 20
Java 2 Nombre paire inférieure à 20
Java 3 Nombre impaire inférieure ou égale à 18
Java 3 lire les entrés du clavier
Java 4 Un nombre entier puis les 10 nombre suivant
Java 5 CALCULE DU IMC (indice de masse corporelle )
Java 6 Somme et Produit de deux entier
Java 7
Java 8 constantes maths;
Exercice 1
Exercice 2
Exercice 3
Montant payable
II - Résume java niveau 1
Mini exercices solution 1
Mini exercices solution 2
A - Conversion d'horloge java
B - Comparaison par min max
C - Montant en lettre
B - Equation du 2ème degré.
III - J2EE - Java 2 Enterprise Edition
Java Framework
Introduction à J2EE
Les API de J2EE
Les composants
Les services
HOUNGBEME Joseph http://master1istri.blogspot.com/ 3
PETITE PROGRAMME EN JAVA BEBUTANT
0° afficher Bonjour le monde !
1° Un programme qui affiche les nombres entiers inférieure à
15 ligne par ligne
2° Un programme qui affiche les nombres pairs inférieurs a
20 ligne par ligne
3° Un programme qui affiche les nombres
impaire ne dépassant pas 18 linge par ligne
4° Programme qui saisit un nombre entier puis affiche les 10
nombre suivant
5 ° Programme qui calcule l'indice de masse corporelle
IMC d'un individus
6 ° Programme qui saisit deux nombre entier puis affiche leur
somme , leur produit
7 ° Programme qui saisit un entier puis affiche : sa moitié,
son carré, puis son double .
8 ° Afficher la valeur de pi. valeur d'exponentielle de sinus
45 de cosinus 10 racine carrée de 10 de 10 puissance 5 de
la partie entière 5
HOUNGBEME Joseph http://master1istri.blogspot.com/ 4
Réponses
J'utilise netbeans
Java 0 : On veut afficher notre premier programme
package bonjourmonde;
public class BonjourMonde {
public static void main(String[] args) {
System.out.println("Bonjour le Monde !");
}
}
run:
Bonjour le Monde !
BUILD SUCCESSFUL (total time: 0 seconds)
Noter que sans " ln " on ira pas à la ligne suivante
Java 1 Nombre entier inférieur à 15
for (initialisation; condition; modification) {
...//Code à exécuter dans la boucle
}
for(int i=0; i<15 ;i++ )
{
System.out.println(i);
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 5
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
BUILD SUCCESSFUL (total time: 0 seconds)
Java 2 -0 Nombre paire inférieure à 20
public static void main(String[] args) {
for(int i=0; i<20;i=i+2
{
System.out.println("Nombre paire " +i);
}
run:
Nombre paire 0
Nombre paire 2
Nombre paire 4
Nombre paire 6
Nombre paire 8
Nombre paire 10
Nombre paire 12
Nombre paire 14
Nombre paire 16
Nombre paire 18
BUILD SUCCESSFUL (total time: 0 seconds)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 6
Java 2 Nombre paire inférieure à 20
int i;
for (i=0;i<20;i++)
{
if(i%2==0)
System.out.println(+i);
}
run:
Nombre paire 0
Nombre paire 2
Nombre paire 4
Nombre paire 6
Nombre paire 8
Nombre paire 10
Nombre paire 12
Nombre paire 14
Nombre paire 16
Nombre paire 18
BUILD SUCCESSFUL (total time: 0 seconds)
Java 3 Nombre impaire inférieure ou égale à 18
for(int i=0;i<=18;i=i++)
{
if(i%2!=0)
System.out.println("Nombre impaire " +i);
}
run: 1 3 5
HOUNGBEME Joseph http://master1istri.blogspot.com/ 7
7 9 11 13 15 17 BUILD SUCCESSFUL (total time: 0 seconds)
Java 3 lire les entrés du clavier
public static void main(String[] args){
System.out.println("Entrer un nom ");
Scanner mot = new Scanner(System.in);
String str = mot.nextLine();
System.out.println("Entrer le nombre ");
int in = mot.nextInt();
System.out.println("vous avez bien entrez " +
str + " est le numero N°" +in );
}
run:
Entrer un nom
violonjo
Entrer le nombre
1
vous avez bien entrez violonjo est le numero N°1
BUILD SUCCESSFUL (total time: 12 seconds)
Java 4 Un nombre entier puis les 10 nombre suivant
public static void main(String[] args) {
System.out.println("Entrer le nombre entier");
Scanner nbr = new Scanner(System.in);
int in = nbr.nextInt();
for(int i = 1; i <=11; i++)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 8
System.out.println(+in+i );
}
RUN
Entrer le nombre entier
20
21
22
23
24
25
26
27
28
29
30
31
BUILD SUCCESSFUL (total time: 6 seconds)
INTRO
if (boolean) {
...//Code à exécuter dans la condition
}
else if (boolean) {
...//Code à exécuter si la première condition est fausse et la deuxième vraie
}
else {
...//Code à exécuter si les précédentes conditions ne sont pa vérifiées
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 9
Java 5 CALCULE DU IMC (indice de
masse corporelle )
package imc;
import java.util.Scanner;
public class Imc {
public static void main(String[] args) {
System.out.println("----------------------------------
-------------------------");
System.out.println(" Calulez votre indice corporelle
(IMC) ");
System.out.println("----------------------------------
------------------------");
System.out.println("Donnez votre poids en kg: ");
Scanner kg =new Scanner (System.in);
double k = kg.nextDouble();
System.out.println("Donnez votre taille en metre: ");
Scanner metr =new Scanner (System.in);
double m = metr.nextDouble();
System.out.println("Votre indice corporelle IMC est =
"+k/(m*m));
if (k/(m*m) <= 16.5)
System.out.println(" grave!!!! quelle Dénutrition!");
if (k/(m*m)>16.5&&k/(m*m)<=18.5 )
HOUNGBEME Joseph http://master1istri.blogspot.com/ 10
System.out.println("vous étes Maigre!!!!!");
if (k/(m*m)>18.5&&k/(m*m)<=25 )
System.out.println("Bon super !!!! Corpulence normale!");
if (k/(m*m)>25&&k/(m*m)<=30 )
System.out.println(" ehh !!!!Surpoids!");
if (k/(m*m)>30&&k/(m*m)<=35
)
System.out.println("Obésité modérée!");
if (k/(m*m)>35)
System.out.println("Obésité morbide ou massive!");
}
}
run:
-------------------------------------------
Calulez votre indice corporelle (IMC)
-------------------------------------------
Donnez votre poids en kg:
80
Donnez votre taille en metre:
1,80
Votre indice corporelle IMC est = 24.691358024691358
Bon super !!!! Corpulence normale!
BUILD SUCCESSFUL (total time: 6 minutes 55 seconds)
Java 6 Somme et Produit de deux entier
public static void main(String[] args) {
System.out.println("Premier entier ");
Scanner ent1 = new Scanner(System.in);
HOUNGBEME Joseph http://master1istri.blogspot.com/ 11
int i = ent1.nextInt();
System.out.println("Deuxième entier ");
Scanner ent2 = new Scanner(System.in);
int e = ent2.nextInt();
int som = i+e;
int prod = i*e;
System.out.println("somme de "+ i +" + "+ e + " = "+som );
System.out.println("produit de "+ i + " * "+ e + " =
"+prod );
}
run:
Premier entier
12
Deuxième entier
14
somme de 12 + 14 = 26
produit de 12 * 14 = 168
BUILD SUCCESSFUL (total time: 4 seconds)
Java 7
public static void main(String[] args) {
System.out.println("Saisie un nombre entier ");
Scanner ent = new Scanner(System.in);
double i = ent.nextDouble();
System.out.println("moitié = "+i/2+"\ncarré =
"+i*i+"\ndouble = "+i*2);
HOUNGBEME Joseph http://master1istri.blogspot.com/ 12
run:
Saisie un nombre entier
9
moitié = 4.5
carré = 81.0
double = 18.0
BUILD SUCCESSFUL (total time: 3 seconds)
Java 8
package constantesmaths;
public class ConstantesMaths {
public static void main(String[] args)
{
System.out.println("valeur de
pi................................. = " + Math.PI);
System.out.println("valeur de l'exponentielle
.......... = " + Math.E);
System.out.println("valeur de sinus 45
......................= " + Math.sin(45));
System.out.println("valeur de cosinus 10
..................= " + Math.cos(10));
System.out.println("valeur de racine carrée de 10....=
" + Math.sqrt(10));
System.out.println("valeur de 10 puissance
5............= " + Math.pow(10,5));
System.out.println("valeur de la partie entière
5.......= " + Math.ceil(5));
}
}
run:
valeur de pi................... = 3.141592653589793
valeur de l'exponentielle ..... = 2.718281828459045
valeur de sinus 45 .............= 0.8509035245341184
valeur de cosinus 10 ...........= -0.8390715290764524
valeur de racine carrée de 10...= 3.1622776601683795
valeur de 10 puissance 5........= 100000.0
valeur de la partie entière 5...= 5.0
BUILD SUCCESSFUL (total time: 0 seconds)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 13
II-MINI PROJET 1
Exercice 1
Un vendeur de boisson vend des fanta et des malta au prix de
225 la fanta et 300 la malta. Dans la journée , il vend X
fanta et Y malta.
Ecrire un programme java qui affiche le chiffre d'affaire
fanta, le chiffre d'affaire malta ,le chiffre d'affaire
totale des boissons vendues.
Il doit payer à l'état une taxe de 18% du montant de ses
ventes, afficher le montant payé à l'état ainsi que le
bénéfice réalisé dans la journée
NB CA FANTA : XXXXXX
CA MALTA : XXXXXX
CA TOTAL : XXXXXX
Mt ETAT : XXXXXX
BENEFICE : XXXXXX
CA chiffre d'affaire
X nombre de fanta et Y nombre de malta vendu : à votre
choix
Exercice 2
Initialiser deux variables , x et y ,x à 2.0 et y à 3.0
HOUNGBEME Joseph http://master1istri.blogspot.com/ 14
Ecrire un programme Java qui calcule.
Le produit des 2 variables,
Sinus (a+b),
a à la puissance b.
Exercice 3
A) Qu'affiche l'extrait de ce code ? Sans saisir le programme
for(int i = 0; i < 6; 1+=2)
{
System.out.println("Java");
}
B) Ecrire un programme qui affiche l'alphabet de Z à A
1) En utilisant la boucle for
2) En utilisant la boucle while
3) En utilisant la boucle do...while ...
HOUNGBEME Joseph http://master1istri.blogspot.com/ 15
Réponses
Exercice 1
package boutique;
import java.util.Scanner;
public class Boutique {
public static void main(String[] args) {
System.out.println("Donnez le nombre de fanta vendu
TTC");
Scanner fanta = new Scanner(System.in);
int nbrf = fanta.nextInt();
int pfanta = 225;
double resultatCAF = (double)(pfanta*nbrf);
System.out.println("Donnez le nombre de malta vendu
TTC");
HOUNGBEME Joseph http://master1istri.blogspot.com/ 16
Scanner malta = new Scanner(System.in);
int nbrm = malta.nextInt();
int pmalta = 300;
double resultatCAM = (double)(pmalta*nbrm);
System.out.println("Votre CA FANTA TTC
est:"+resultatCAF+"f");
System.out.println("Votre CA MALTA TTC
est:"+resultatCAM+"f");
double resultatCAT =
(double)(resultatCAF+resultatCAM);
System.out.println("Votre CA TOTAL TTC
est:"+resultatCAT+"f");
double mtetat = (double)((18*resultatCAT)/100);
System.out.println("Votre taxe TVA :MT ETAT
"+mtetat+"f ");
double benef = (double)(resultatCAT+mtetat);
System.out.println("Votre reste Totale
"+benef+"f");
}
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 17
run:
Donnez le nombre de fanta vendu TTC
50
Donnez le nombre de malta vendu TTC
90
Votre CA FANTA TTC est:11250.0f
Votre CA MALTA TTC est:27000.0f
Votre CA TOTAL TTC est:38250.0f
Votre taxe TVA :MT ETAT 6885.0f
Votre reste Totale 45135.0f
BUILD SUCCESSFUL (total time: 1 minute 0 seconds)
Exercice 2
public static
void main(String[] args) {
double x = 2.0, y = 3.0;
double prod = (double)(x * y);
System.out.println("les variables initialisées sont x
= 2.0 et y = 3.0 : ");
System.out.println("le produit des variables x et y
est: "+prod);
System.out.println("valeur de sinus(x+y) = " +
(((Math.sin(x))*(Math.cos( y)))-((Math.cos(x))*(Math.sin(
y)))) );
System.out.println("x à la puissance y =" +
Math.pow(x, y));
}
run:
les variables initialisées sont x = 2.0 et y = 3.0 :
le produit des variables x et y est: 6.0
valeur de sinus(x+y) = -0.8414709848078964
x à la puissance y =8.0
BUILD SUCCESSFUL (total time: 1 second)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 18
Exercice 3
A)
java
java
java
B)
1) En utilisant la boucle for
char c;
for(c='Z';c>='A';c--)
{
System.out.println(c);
}
2) En utilisant la boucle while
char c='Z';
do
{
System.out.println(c);
c--;
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 19
while(c>='A');
3) En utilisant la boucle do...while ...
char c ='Z';
while (c>='A')
{
System.out.println(c);
c--;
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 20
Montant payable
Objectif
Ce projet a pour objectif d'afficher le montant payable
dans une banque ou autre : soit la fin du montant 0 ou 5
Raison
Du fait que sur les factures, nous avons des montants
dont 101 f certain clients , en remettant 105 f veulent
à tout prix avoir leur reliquat de 4 f ou d'autre dans
cas
Problème
Quelque solution proposez vous afin de palier ce problème
Afficher le montant totale
Afficher le montant payable
Solution dans la programmation java
package payarrondie;
import java.util.Scanner;
public class Payarrondie {
public static void main(String[] args) {
System.out.println("Saisir le premier montant");
Scanner nbr1 = new Scanner (System.in);
double mt1 = nbr1.nextDouble();
HOUNGBEME Joseph http://master1istri.blogspot.com/ 21
System.out.println("Saisir le deuxième montant");
Scanner nbr2 = new Scanner (System.in);
double mt2 = nbr2.nextDouble();
double mt = (double)(mt1+mt2);
System.out.println("Le montant totale est "+mt);
if ((mt%10)>0 && (mt%10)<5)
{
double map =(mt+5)-(mt%10);
System.out.println("------------------------------
-- ");
System.out.println(" Le montant payable est "+
map);
System.out.println("-----------------------------
---- ");
}
if ((mt%10)>5)
{
double map = (mt+10)-(mt%10);
System.out.println("-----------------------------
--- ");
System.out.println(" Le montant payable est "+
map);
System.out.println("-----------------------------
---- ");
}
}
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 22
run:
Saisir le premier montant
100
Saisir le deuxième montant
101
Le montant totale est 201.0
--------------------------------
Le montant payable est 205.0
---------------------------------
BUILD SUCCESSFUL (total time: 9 seconds)
run:
Saisir le premier montant
104
Saisir le deuxième montant
102
Le montant totale est 206.0
--------------------------------
Le montant payable est 210.0
---------------------------------
BUILD SUCCESSFUL (total time: 34 seconds)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 23
RESUME JAVA NIVEAU 1
Mini Exercices 1
a
HOUNGBEME Joseph http://master1istri.blogspot.com/ 24
b
HOUNGBEME Joseph http://master1istri.blogspot.com/ 25
Le lien entre les questionnaires abc
package mimiex;
import java.util.Scanner;
public class Mimiex {
public void nbreDepiece(int mt, int p){
int nb=(mt/p);
System.out.println("Il y'a "+nb+" pièces");
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int nb,mt,p1=250,p2=200,p3=100,p4=50,p5=25,p6=10,p7=5,operateur;
Double a=50.0,b=100.0,j,x,y,z,som,prod,sous,div,mod;
System.out.println("1: Initialiser");
System.out.println("2: Calcule et Affichage");
System.out.println("3: Rendre de la monnaie");
System.out.print("Votre choix svp :");
operateur=sc.nextInt();
switch(operateur)
{
case 1:
j=b-2*a;
try
{
System.out.println(a/j);
}
catch(ArithmeticException k)
{
System.out.println("impossible de continuer");
}
System.out.println("mon exception java");
break;
HOUNGBEME Joseph http://master1istri.blogspot.com/ 26
case 2:
System.out.print("donner la valeur de x= ");
x=sc.nextDouble();
System.out.print("donner la valeur de y= ");
y=sc.nextDouble();
som=x+y;
System.out.println("La somme egal à ="+som);
prod=x*y;
System.out.println("Le produit egal à ="+prod);
sous=x-y;
System.out.println("La soustraction egal à ="+sous);
if(y!=0){
div=x/y;
mod=x%y;
System.out.println("La division egal à :"+div);
System.out.println("Le reste de la division entière egal à
:"+mod);
}
else
System.out.println("Impossible de diviser par zero");
break;
case 3:System.out.print("Donnez un montant stp:");
mt=sc.nextInt();
nb=(mt/p1);
System.out.println("Il y'a "+nb+" pièces de 250 Francs");
nb=(mt/p2);
System.out.println("Il y'a "+nb+" pièces de 200 Francs");
nb=(mt/p3);
System.out.println("Il y'a "+nb+" pièces de 100 Francs");
nb=(mt/p4);
System.out.println("Il y'a "+nb+" pièces de 50 Francs");
nb=(mt/p5);
System.out.println("Il y'a "+nb+" pièces de 25 Francs");
nb=(mt/p6);
System.out.println("Il y'a "+nb+" pièces de 10 Francs");
nb=(mt/p7);
System.out.println("Il y'a "+nb+" pièces de 5 Francs");
break;
default : System.out.println("cette opérateur inconnue\n");
}
}
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 27
run
Ma Facture
Vous êtes chargé de réaliser une petite application qui saisit le
nom d'un produit , sa quantité , son prix unitaire.
Calcule et affiche le montant hors taxe (mthva) le montant de
la tva (mtva) le net à payer le montant payable sachant qu'on
applique une remise de 5% aux clients dont le
montant dépasse 50 000 francs
HOUNGBEME Joseph http://master1istri.blogspot.com/ 28
Solution dans la programmation java
j'utilise netbeans
package facturation;
import java.util.Scanner;
/*
* @author jo
*/
public class Facturation {
public static void main(String[] args) {
int qte;
String design ="";
double pu;
double mht,mtva,nap,rem,map;
System.out.println("---------------------------
----------");
System.out.println(" Marché de
Facturation ");
System.out.println("---------------------------
----------");
HOUNGBEME Joseph http://master1istri.blogspot.com/ 29
Scanner nbr=new Scanner(System.in);
System.out.println("Désignation de produit ");
design=nbr.next();
System.out.println("Quantité du produit ");
qte=nbr.nextInt();
System.out.println("Prix unitaire du produit
");
pu=nbr.nextInt();
mht=pu*qte;
mtva=(mht*18)/100;
map=mht+mtva;
System.out.println("Montant hors taxe.....=
"+mht);
System.out.println("Montant de la tva.....=
"+mtva);
if(map<50000.0)
{
if ((map%10)>0 && (map%10)<5)
{
nap =(map+5)-(map%10);
System.out.println("Votre achat ne dépasse pas
50000 fr");
System.out.println("Montant net a payer... =
HOUNGBEME Joseph http://master1istri.blogspot.com/ 30
"+map);// c'est le montant le totale
System.out.println("Montant payable... =
"+nap);// on rend le mont montant payable soit 0 ou 5
}
else if ((map%10)>5)
{
nap = (map+10)-(map%10);
System.out.println("Remise à plus de 50000
fr d'achat");
System.out.println("Montant totale... =
"+map);// c'est le montant le totale
System.out.println("Montant payable (nep)...
= "+nap);// on rend le mont montant payable soit 0 ou 5
}
else if(map>50000.0)
{
System.out.println("Vous avez une remise de
5%");
rem=(map*5)/100;
nap=map-rem;
if ((map%10)>0 && (map%10)<5)
{
nap =(map+5)-(map%10);
System.out.println("La remise est.........=
"+rem);
System.out.println("Montant totale...=
HOUNGBEME Joseph http://master1istri.blogspot.com/ 31
"+nap);
System.out.println("Montant payable
(nep)... = "+nap);// on rend le mont montant payable
soit 0 ou 5
}
else if ((map%10)>5)
{
nap = (map+10)-(map%10);
System.out.println("La remise
est.........= "+rem);
System.out.println("Montant totale...=
"+nap);
System.out.println("Montant payable
(nep)... = "+nap);// on rend le mont montant payable
soit 0 ou 5
}
}
}
}
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 32
Equation du 2ème degré.
Algorithme pour résoudre l'équation du deuxième degré:
ax2 + bx + c = 0
Si a = 0, on se ramène à une équation du premier degré.
Si a est différent de 0,
on calcule le discriminant Delta = b2 - 4 * a * c
si Delta>0 l'équation a 2 racines réelles distinctes
que l'on
calcule avec (-b+ Delta)/(2*a)
et (-b- Delta)/(2*a)
si Delta=0, les 2 formules ci-dessus sont encore
valables
et fournissent 2 valeurs égales -b/(2*a)
si Delta<0, les 2 formules contenant Delta ne sont
plus valables dans les réels et il faut passer
dans l'ensemble des nombres complexes
pour obtenir des réponses
-b/(2*a) +i -Delta /(2*a)
-b/(2*a) -i -
Delta /(2*a)
NOTE: i est un symbole tel que
i2=-1
Solution dans la programmation java
HOUNGBEME Joseph http://master1istri.blogspot.com/ 33
j'utilise netbeans
package equation;
import java.util.Scanner;
/**
*
* @author jo
*/
public class Equation {
public static void main(String[] args) {
System.out.println(" Resolveur d'Equation du
Second dégrer\n -------------------------------------" );
Scanner nbr=new Scanner(System.in);
double a,b,c,X1,X2,delta;
System.out.println(" Valeur de a");
a=nbr.nextDouble();
System.out.println(" Valeur de b");
b=nbr.nextDouble();
System.out.println(" Valeur de c");
c=nbr.nextDouble();
System.out.println(" l'équation
f(x)="+a+"x²+"+b+"y+"+c);
System.out.println("----------------- Résolution------
----------- ");
HOUNGBEME Joseph http://master1istri.blogspot.com/ 34
if(a==0)
{
System.out.println("Equation du premier Dégrer");
if(b==0)
{
System.out.println("C'est une constante f(x)="+c);
}
else{
System.out.println("C'est une fonction affine f(x) =
"+b+"x + "+c+"\net x = "+ -c/b);
}
}
if(a!=0)
{
delta=(b*b)-4*a*c;
if(delta>0)
{//printf("il y a deuxracines
distincts.\n",X1,X2),
X1=((-b-Math.sqrt(delta)/2*a));
X2=((-b+Math.sqrt(delta)/2*a));
System.out.println("Deux racine distincts:
"+X1+" et X2 = "+X2);
}
else if(delta==0)
{
X1=(-b/2*a);
HOUNGBEME Joseph http://master1istri.blogspot.com/ 35
X2=X1;
System.out.println("il y'a une racine double
X1=X2 ="+X2);
}
if(delta<0)
{
System.out.println(" Première racine complexes
conjuguée: "+-b/(2*a)+ " +i" +Math.sqrt(-delta) /(2*a));
System.out.println(" Deuxième racine complexes
conjuguée: "+-b/(2*a)+ " -i" +Math.sqrt(-delta) /(2*a));
System.out.println("NOTEZ QUE i² = -1");
} } } }
CONVERSION D'HORLOGE JAVA
Ecrire un programme qui permet de convertir les secondes
en année mois jour heure seconde
HOUNGBEME Joseph http://master1istri.blogspot.com/ 36
Solution dans la programmation java
j'utilise netbeans
package minsecond;
import java.util.Scanner;
/**
* @author jo
*/
public class Minsecond {
public static void main(String[] args) {
System.out.println("Entrer le nombre de secondes:\n");
Scanner nbr = new Scanner (System.in);
int temp = nbr.nextInt();
int annee = temp / 60 / 60 / 24 / 365;
int jour = temp / 60 / 60 / 24 % 365;
int heure = temp / 60 / 60 % 24;
int minute = temp / 60 % 60;
int seconde = temp % 60;
System.out.println("Le temps entré "+temp+ " est égale à \n"+annee+" an(s)\n"+jour+" jour\n"
+heure+" heure\n"+minute+" minutes\n"+ seconde+" secondes");
}
HOUNGBEME Joseph http://master1istri.blogspot.com/ 37
}
RUN: Entrer le nombre de secondes:
123456789
Le temps entré 123456789 est égale à
3 an(s)
333 jour
21 heure
33 minutes
9 secondes
BUILD SUCCESSFUL (total time: 12 seconds)
COMPARAISON PAR MIN MAX
Un programme qui compare deux nombre
Solution dans la programmation java
HOUNGBEME Joseph http://master1istri.blogspot.com/ 38
package minmax;
import java.util.Scanner;
/*
* @author jo
*/
public class Minmax {
public static void main(String[] args) {
Scanner val = new Scanner (System.in);
System.out.println("Entrez la première valeur à
comparer ");
int x = val.nextInt();
System.out.println("Entrez la deuxième valeur à
comparer ");
int y = val.nextInt();
System.out.println(" la plus grande valeur entre "+
x + " et " +y+ " est = " + Math.max(x, y));
System.out.println(" la plus petite valeur entre "+
x + " et " +y+ " est = " + Math.min(x,y));
}
}
run:
Entrez la première valeur à comparer 23 Entrez la deuxième valeur à comparer
90 la plus grande valeur entre 23 et 90 est = 90 la plus petite valeur entre 23 et 90 est = 23 BUILD SUCCESSFUL (total time: 6 seconds)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 39
Montant en lettre
package nombre;
import java.util.Scanner;
/**
*
* @author jo
*/
public class Nombre
{
/**
* Représentaion en lettre de 0
*/
public static final String ZERO="zéro";
/**
* Représentaion en lettre de 1
*/
public static final String UN="un";
/**
* Représentaion en lettre de 2
*/
public static final String DEUX="deux";
/**
* Représentaion en lettre de 3
*/
public static final String TROIS="trois";
/**
* Représentaion en lettre de 4
*/
public static final String QUATRE="quatre";
/**
* Représentaion en lettre de 5
*/
public static final String CINQ="cinq";
/**
HOUNGBEME Joseph http://master1istri.blogspot.com/ 40
* Représentaion en lettre de 6
*/
public static final String SIX="six";
/**
* Représentaion en lettre de 7
*/
public static final String SEPT="sept";
/**
* Représentaion en lettre de 8
*/
public static final String HUIT="huit";
/**
* Représentaion en lettre de 9
*/
public static final String NEUF="neuf";
/**
* Représentaion en lettre de 10
*/
public static final String DIX="dix";
/**
* Représentaion en lettre de 11
*/
public static final String ONZE="onze";
/**
* Représentaion en lettre de 12
*/
public static final String DOUZE="douze";
/**
* Représentaion en lettre de 13
*/
public static final String TREIZE="treize";
/**
* Représentaion en lettre de 14
*/
public static final String QUATORZE="quatorze";
/**
* Représentaion en lettre de 15
*/
public static final String QUINZE="quinze";
/**
* Représentaion en lettre de 16
*/
public static final String SEIZE="seize";
HOUNGBEME Joseph http://master1istri.blogspot.com/ 41
/**
* Représentaion en lettre de 20
*/
public static final String VINGT="vingt";
/**
* Représentaion en lettre de 30
*/
public static final String TRENTE="trente";
/**
* Représentaion en lettre de 40
*/
public static final String QUARANTE="quarante";
/**
* Représentaion en lettre de 50
*/
public static final String CINQUANTE="cinquante";
/**
* Représentaion en lettre de 60
*/
public static final String SOIXANTE="soixante";
/**
* Représentaion en lettre de 100
*/
public static final String CENT="cent";
/**
* Représentaion en lettre de 1000
*/
public static final String MILLE="mille";
/**
* Représentaion en lettre de 1000000
*/
public static final String MILLION="million";
/**
* Représentaion en lettre de 1000000000
*/
public static final String MILLIARD="milliard";
/**
* Représentaion en lettre de -
*/
public static final String MOINS="moins";
//Nom des différents types de paquet de nombre
HOUNGBEME Joseph http://master1istri.blogspot.com/ 42
private static final String[] tab={"",MILLE,MILLION,MILLIARD,MILLE+"
"+MILLIARD,
MILLION+" de "+MILLIARD,MILLIARD+" de "+MILLIARD};
/**
* Renvoie la représentation en lettre d'un chiffre, c'est à dire d'un nombre ente
0 et 9
*/
public static String getChiffre(int l)
{
if((l<0)||(l>9))
throw new IllegalArgumentException("Un chiffre est entre 0 et 9, donc "+l+"
est interdit");
switch(l)
{
case 0 :
return ZERO;
case 1 :
return UN;
case 2 :
return DEUX;
case 3 :
return TROIS;
case 4 :
return QUATRE;
case 5 :
return CINQ;
case 6 :
return SIX;
case 7 :
return SEPT;
case 8 :
return HUIT;
case 9 :
return NEUF;
}
return null;
}
//Retourne la représentation en lettre d'un paquet. Un paquet est formé de tois
chiffres, comme 123, 012, 001, 100, 101,...
private static String paquet(int p)
{
//On initialise la réponse
String reponse="";
HOUNGBEME Joseph http://master1istri.blogspot.com/ 43
//Si on a un chiffre des centaines
if(p>100)
{
//Si la valeur est >199 alors, on va mettre devant le chiffre des centaine
if(p/100>1)
reponse=getChiffre(p/100)+" ";
//C'est une centaine, donc on ajoute ensuite "cent"
reponse += CENT+" ";
//On récupére ce qui n'est pas la centaine
p=p%100;
}
//c chiffre des dizaines
//u chaiffre des unitées
int c=p/10;
int u=p%10;
switch(c)
{
//Si la dizaine est nule, alors le nombre est un chiffre
case 0 :
if(u!=0)
reponse += getChiffre(u);
break;
case 1 :
switch(u)
{
case 0 :
reponse += DIX;
break;
case 1 :
reponse += ONZE;
break;
case 2 :
reponse += DOUZE;
break;
case 3 :
reponse += TREIZE;
break;
case 4 :
reponse += QUATORZE;
break;
case 5 :
reponse += QUINZE;
break;
case 6 :
reponse += SEIZE;
HOUNGBEME Joseph http://master1istri.blogspot.com/ 44
break;
default :
reponse += DIX+" "+getChiffre(u);
}
break;
case 2 :
reponse += VINGT;
if(u==1)
reponse += " et";
if(u>0)
reponse += " "+getChiffre(u);
break;
case 3 :
reponse += TRENTE;
if(u==1)
reponse += " et";
if(u>0)
reponse += " "+getChiffre(u);
break;
case 4 :
reponse += QUARANTE;
if(u==1)
reponse += " et";
if(u>0)
reponse += " "+getChiffre(u);
break;
case 5 :
reponse += CINQUANTE;
if(u==1)
reponse += " et";
if(u>0)
reponse += " "+getChiffre(u);
break;
case 6 :
reponse += SOIXANTE;
if(u==1)
reponse += " et";
if(u>0)
reponse += " "+getChiffre(u);
break;
case 7 :
reponse += SOIXANTE+" ";
if(u==1)
reponse += " et";
switch(u)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 45
{
case 0 :
reponse += DIX;
break;
case 1 :
reponse += ONZE;
break;
case 2 :
reponse += DOUZE;
break;
case 3 :
reponse += TREIZE;
break;
case 4 :
reponse += QUATORZE;
break;
case 5 :
reponse += QUINZE;
break;
case 6 :
reponse += SEIZE;
break;
default :
reponse += DIX+" "+getChiffre(u);
}
break;
case 8 :
reponse += QUATRE+" "+VINGT;
if(u>0)
reponse += " "+getChiffre(u);
break;
case 9 :
reponse += QUATRE+" "+VINGT+" ";
switch(u)
{
case 0 :
reponse += DIX;
break;
case 1 :
reponse += ONZE;
break;
case 2 :
reponse += DOUZE;
break;
case 3 :
HOUNGBEME Joseph http://master1istri.blogspot.com/ 46
reponse += TREIZE;
break;
case 4 :
reponse += QUATORZE;
break;
case 5 :
reponse += QUINZE;
break;
case 6 :
reponse += SEIZE;
break;
default :
reponse += DIX+" "+getChiffre(u);
}
break;
}
//On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
return reponse.trim();
}
/**
* Renvoie le nombre en lettre, <BR>
* ex: 1234567890 devient : un milliard deux cent trente quatre million cinq
cent soixante sept mille huit cent quatre vingt dix
*/
public static String getLettre(long l)
{
//Cas zéro
if(l==0L)
return ZERO;
String signe="";
//Cas négatif
if(l<0L)
{
//On prned la valeur absolue
l=-l;
//On ajoutera moins devant
signe=MOINS+" ";
}
//Initilisation de la réponse
String reponse="";
//Rang du paquet actuel, on va parcourir le nombre de gauche à droite, le
premier paquet de 123456 sera donc : 456
int rang=0;
while(l>0L)
HOUNGBEME Joseph http://master1istri.blogspot.com/ 47
{
//on ajoute le paquet devant la réponse
reponse=paquet((int)(l%1000L))+" "+tab[rang]+" "+reponse;
//on passe au paquet suivant
l=l/1000L;
rang++;
}
//on ajoute le signe éventuel
reponse=signe+reponse;
//On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
return reponse.trim();
}
public static void main(String args[])
{
Scanner val = new Scanner (System.in);
System.out.println("Entrez la première montant ");
int a= val.nextInt();
System.out.println("Entrez la deuxième montant ");
int b = val.nextInt();
int x = a+b;
System.out.println("\n ---------------------------------- ");
System.out.println("La somme des deux montant "+a+" (+) "+b+" = "+x+"
francs ");
System.out.println(" Soit : "+getLettre (x)+" francs ");
System.out.println("\n ---------------------------------- ");
HOUNGBEME Joseph http://master1istri.blogspot.com/ 48
III - J2EE - Java 2 Enterprise Edition
Introduction au Java Framework
Le «Java Framework» (Java 2 Platform) est composé de
trois éditions, destinées à des usages différents :
J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des assistants personnels et terminaux mobiles ;
J2SE : Java 2 Standard Edition est destiné au développement d'applications pour ordinateurs personnels ;
J2EE : Java 2 Enterprise Edition, destiné à un usage
HOUNGBEME Joseph http://master1istri.blogspot.com/ 49
professionnel avec la mise en oeuvre de serveurs.
Chaque édition propose un environnement complet pour le
développement et l'exécution d'applications basées sur Java et
comprend notamment une machine virtuelle Java (Java virtual
machine) ainsi qu'un ensemble de classes.
Introduction à J2EE
J2EE (Java 2 Enterprise Edition) est une norme proposée par
la société Sun, portée par un consortium de sociétés
internationales, visant à définir un standard de développement
d'applications d'entreprises multi-niveaux, basées sur des
composants.
On parle généralement de «plate-forme J2EE» pour désigner
l'ensemble constitué des services (API) offerts et de
l'infrastructure d'exécution. J2EE comprend notamment :
Les spécifications du serveur d'application, c'est-à-dire de l'environnement d'exécution : J2EE définit finement les rôles et les interfaces pour les applications ainsi que l'environnement dans lequel elles seront exécutées. Ces recommandations permettent ainsi à des entreprises tierces de développer des serveurs d'application conformes aux spécifications ainsi définies, sans avoir à redévelopper les principaux services.
Des services, au travers d'API, c'est-à-dire des extensions Java indépendantes permettant d'offrir en standard un certain nombre de fonctionnalités. Sun fournit une implémentation minimale de ces API appelée J2EE SDK
HOUNGBEME Joseph http://master1istri.blogspot.com/ 50
(J2EE Software Development Kit).
Dans la mesure où J2EE s'appuie entièrement sur le Java, il
bénéficie des avantages et inconvénients de ce langage, en
particulier une bonne portabilité et une maintenabilité du code.
De plus, l'architecture J2EE repose sur des composants
distincts, interchangeables et distribués, ce qui signifie
notamment :
qu'il est simple d'étendre l'architecture ;
qu'un système reposant sur J2EE peut posséder des mécanismes de haute-disponibilité, afin de garantir une bonne qualité de service ;
que la maintenabilité des applications est facilitée.
Les API de J2EE
Les API de J2EE peuvent se répartir en trois grandes
catégories :
Les composants. On distingue habituellement deux familles de composants :
o Les composants web : Servlets et JSP (Java Server Pages). Il s'agit de la partie chargée de l'interface avec l'utilisateur (on parle de logique de présentation).
o Les composants métier : EJB (Enterprise Java Beans). Il s'agit de composants spécifiques chargés des traitements des données propres à un secteur d'activité (on parle de logique métier ou de logique applicative) et de l'interfaçage avec les bases de données.
Les services, pouvant être classés par catégories : o Les services d'infrastructures : il en existe un grand
HOUNGBEME Joseph http://master1istri.blogspot.com/ 51
nombre, définis ci-dessous : JDBC (Java DataBase Connectivity) est une API
d'accès aux bases de données relationnelles.
JNDI (Java Naming and Directory Interface) est une API d'accès aux services de nommage et aux annuaires d'entreprises tels que DNS, NIS, LDAP, etc.
JTA/JTS (Java Transaction API/Java Transaction Services) est un API définissant des interfaces standard avec un gestionnaire de transactions.
JCA (J2EE Connector Architecture) est une API de connexion au système d'information de l'entreprise, notamment aux systèmes dits «Legacy» tels que les ERP.
JMX (Java Management Extension) fournit des extensions permettant de développer des applications web de supervision d'applications.
o Les services de communication : JAAS (Java Authentication and Authorization
Service) est une API de gestion de l'authentification et des droits d'accès.
JavaMail est une API permettant l'envoi de courrier électronique.
JMS (Java Message Service) fournit des fonctionnalités de communication asynchrone (appelées MOM pour Middleware Object Message) entre applications.
RMI-IIOP est une API permettant la communication synchrone entre objets.
L'architecture J2EE permet ainsi de séparer la couche
présentation, correspondant à l'interface homme-machine
(IHM), la couche métier contenant l'essentiel des traitements
HOUNGBEME Joseph http://master1istri.blogspot.com/ 52
de données en se basant dans la mesure du possible sur des
API existantes, et enfin la couche de données correspondant
aux informations de l'entreprise stockées dans des fichiers,
dans des bases de données relationnelles ou XML, dans des
annuaires d'entreprise ou encore dans des systèmes
d'information complexes.
Les codes sources sont ci-joint Fin