Application 1
1. Définir une classe publique Calcul qui contient:
▪ Une méthode statique puissance qui calcule xn. Cette méthode retourne un réel et
prend en paramètre un réel x et un entier n
▪ NB. Sans utiliser la méthode [Link]()
public class Calcul {
public static float puissance(float x, int n) {
float result=1;
if (n == 0) {
result=1;
} else {
for(int i=0;i<n;i++) {
result = result*x;
}
}
return result;
}
}
Dr. Hajer Nabli ISIMM -- 2022/2023 186
Application 1
2. Ecrire une classe Monome permettant de mémoriser un monôme a*xn défini par le couple
d’attributs coefficient (de type réel) et degre (de type entier)
▪ Ecrire le constructeur Monome(float coef , int degre) permettant d’initialiser un objet
de cette classe
▪ Ecrire la méthode float calculMonome(float x) calculant la valeur du monôme pour le
paramètre x en utilisant la fonction puissance définie à la question 1
public class Monome {
public float coef;
public int degre;
Monome(float coef, int degre) {
[Link] = coef;
[Link] = degre;
}
float calculMonome(float x){
return coef * [Link](x, degre);
}
}
Dr. Hajer Nabli ISIMM -- 2022/2023 187
Application 2
1. Créer une classe publique TableauEntier qui contient:
▪ Un attribut privé n (de type entier)
▪ Un attribut protégé T (tableau d’entiers)
▪ Un constructeur comportant la taille du tableau n comme paramètre
▪ Une méthode statique saisir() qui retourne la valeur de n saisie au clavier
▪ Une méthode remplir() qui retourne un tableau T rempli par des entiers saisis au clavier
▪ Une méthode afficher (int[] Tab) qui affiche le tableau d’entiers passé en paramètre
▪ Une méthode somme (int[] Tab) retourne la somme des éléments du tableau d’entiers
▪ Un e méthode maximum (int[] Tab) retourne le maximum d’un tableau d’entiers
▪ Une méthode minimum (int[] Tab) retourne le minimum d’un tableau d’entiers
Dr. Hajer Nabli ISIMM -- 2022/2023 188
Application 2
import [Link]; public static int saisir() {
public class TableauEntier { [Link]("Donner la taille du Tableau");
private int n; Scanner input = new Scanner([Link]);
protected int[] T; return [Link]();
public int getN() { }
return n; public int[] remplir() {
} [Link]("Saisir les elements du Tableau");
public void setN(int n) { Scanner input = new Scanner([Link]);
this.n = n; for(int i=0;i<[Link];i++) {
} T[i]= [Link]();
public TableauEntier(int n) { }
T = new int[n]; return T;
} }
Dr. Hajer Nabli ISIMM -- 2022/2023 189
Application 2
public int maximum(int[] T) {
int max=T[0];
[Link]("Le maximum est:");
public void afficher(int[] Tab) {
for(int i=1;i<[Link];i++) {
[Link]("Les valeurs du Tableau sont: ");
if(T[i]>max)
for(int i=0;i<[Link];i++) {
max=T[i];
[Link]("T["+i+"]="+ Tab[i]);
}
}
return max;
}
}
public int somme(int[] T) {
public int minimum(int[] T) {
int s=0;
int min=T[0];
[Link]("La somme est:");
[Link]("Le minimum est:");
for(int i=0;i<[Link];i++) {
for(int i=1;i<[Link];i++) {
s+=T[i];
if(T[i]<min)
}
min=T[i];
return s;
}
}
return min;
}
}
Dr. Hajer Nabli ISIMM -- 2022/2023 190
Application 3
1. Soit la classe Analyse suivante:
public class Analyse {
public static void modif1(int x) {
x+=2; }
public static void modif2(int x) {
x=5; }
public static String ajoute1(String s) {
s+=" tout le monde";
return s; }
public static String ajoute2(String s) {
s="Salut";
return s; }
public static StringBuffer concat1(StringBuffer sb) {
[Link](" +++");
return sb; }
public static StringBuffer concat2(StringBuffer sb) {
sb= new StringBuffer("+++");
return sb; }
}
Dr. Hajer Nabli ISIMM -- 2022/2023 191
Application 3
o Indiquer l’affichage produit par le programme suivant:
public static void main(String[] args) {
int x=24;
Analyse.modif1(x);
Résultat d’affichage
[Link](x);
x=24; 24
Analyse.modif2(x);
24
[Link](x);
String s="Bonjour"; Bonjour tout le monde
[Link](Analyse.ajoute1(s)); Bonjour
[Link](s);
[Link](Analyse.ajoute2(s)); Salut
[Link](s); Bonjour
StringBuffer sb=new StringBuffer("---"); --- +++
[Link](Analyse.concat1(sb));
[Link](sb); --- +++
sb=new StringBuffer("---"); +++
[Link](Analyse.concat2(sb));
---
[Link](sb);
}
Dr. Hajer Nabli ISIMM -- 2022/2023 192
Application 4
1. Définir une classe publique Personne qui contient:
▪ Trois attributs publics nom, prenom (de type String) et cin (de type entier)
▪ Un attribut privé anciennete (de type entier)
▪ Un constructeur comportant les différents attributs
▪ Une méthode publique affiche() qui per met d’afficher les caractéristiques d’une
personne
Dr. Hajer Nabli ISIMM -- 2022/2023 193
Application 4
public class Personne {
public String nom;
public String prenom;
public int cin;
private int anciennete;
public int getAnciennete() {
return anciennete;
}
public void setAnciennete(int anciennete) {
[Link] = anciennete;
}
Personne(String nom, String prenom, int cin, int anciennete){
[Link] = nom;
[Link]=prenom;
[Link]=cin;
[Link]=anciennete; }
public void affiche() {
[Link]("Nom: "+nom);
[Link]("Prénom: "+prenom);
[Link]("CIN: "+cin);
[Link]("Ancienneté: "+anciennete); }
}
Dr. Hajer Nabli ISIMM -- 2022/2023 194
Application 4
2. Définir une classe publique Professeur qui hérite de la classe Personne et qui inclut:
▪ Deux attributs publics specialite (de type String) et nbcours (de type entier)
▪ Un attribut privé anciennete (de type entier)
▪ Le constructeur correspondant
▪ La méthode affiche() redéfinie
▪ Une méthode score() qui calcule le score d’un professeur sachant que:
• score = anciennete*3+nbcours*2 (si nbcours > 5)
• Score = anciennete*3 (sinon)
Dr. Hajer Nabli ISIMM -- 2022/2023 195
Application 4
public class Professeur extends Personne {
public String specialite;
public int nbcours;
public Professeur(String nom, String prenom, int cin, int anciennete,String specialite, int nbcours) {
super(nom,prenom,cin,anciennete);
[Link]=specialite;
[Link]=nbcours; }
public void affiche() {
[Link]("Caractéristiques Professeur");
[Link]();
[Link]("Specialité: "+specialite);
[Link]("Nombre Cours: "+nbcours); }
public int score() {
int s = 0;
if(nbcours>5)
s= [Link]() *3 + [Link]*2;
else
s=[Link]()*3;
return s; }
}
}
Dr. Hajer Nabli ISIMM -- 2022/2023 196
Application 4
3. Définir une classe publique Etudiant qui hérite de la classe Personne et qui inclut:
▪ Un attribut privé cin (de type entier)
▪ Le constructeur correspondant
public class Etudiant extends Personne {
private int cin;
public int getCin() {
return cin;
}
public void setCin(int cin) {
[Link] = cin;
}
public Etudiant(String nom, String prenom, int cin, int anciennete) {
super(nom,prenom,cin,anciennete);
[Link]=cin;
}
}
Dr. Hajer Nabli ISIMM -- 2022/2023 197
Application 4
3. Définir une classe principale Test qui permet de:
▪ Construire un tableau de T de N Personnes (N étant fixé par l’utilisateur). Le tableau
peut donc inclure des professeurs et des étudiants
▪ Calculer et afficher les scores des professeurs
▪ Saisir au clavier un cin
▪ Afficher les caractéristiques de l’étudiant correspondant
Dr. Hajer Nabli ISIMM -- 2022/2023 198
Application 4 import [Link];
public class Test {
public static void main(String[] args) {
// Tableau de N Personne
Personne[] T = {new Professeur("ben salah","ali",123,10,"info",6),
new Professeur("omar","yassine",456,4,"info",2),
new Etudiant("mohamed","yahia",147,1),
new Etudiant("khlifa","faten",258,3),
new Professeur("ahmed","mohamed",256,5,"physique",7) };
// Calcul et Affichage des scores des professeurs
for(int i=0;i<[Link];i++) {
if(T[i] instanceof Professeur) {
[Link](((Professeur) T[i]).score()); } }
// Saisie au clavier d'une CIN
[Link]("Saisir le CIN: ");
Scanner input = new Scanner([Link]);
int cin = [Link]();
// Affichage des caractéristiques de l'étudiant correspondant
for(int i=0;i<[Link];i++) {
if(T[i] instanceof Etudiant) {
if(((Etudiant)T[i]).getCin()==cin)
T[i].affiche(); }}
}}
Dr. Hajer Nabli ISIMM -- 2022/2023 199