Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 : Exercice 4 :
Ecrire un programme Java qui vérifie si un nombre Réaliser une classe Point permettant de
entier à 3 chiffres fourni au clavier est un nombre représenter un point sur un axe. Chaque point
Armstrong ou non, sera caractérisé par un nom (de type char) et
une abscisse (de type double).
Il affiche en sortie :
On prévoira :
Le nombre x est un nombre Armstrong
• un constructeur recevant en arguments le
Ou : le nombre x n’est pas un nombre Armstrong nom et l’abscisse d’un point,
Déf d’un nombre Armstrong : • une méthode affiche imprimant (en fenêtre
console) le nom du point et son abscisse,
153 et 371 sont dits nombres Armstrong car :
• une méthode translate effectuant une
153= (1*1*1)+(5*5*5)+(3*3*3) translation définie par la valeur de son
argument.
371=(3*3*3)+(7*7*7)+(1*1*1)
Écrire un petit programme utilisant cette
221 n’est pas un nombre Armstrong car classe pour créer un point, en afficher les
caractéristiques, le déplacer et en afficher à
221 !=(2*2*2)+(2*2*2)+(1*1*1) nouveau les caractéristiques
Exercice 2 :
Exercice 5 :
Déclarer la classe Student avec les 2 attributs
name et college (de type chaine de caractères) Ecrire un programme java qui permet
d’inverser une chaine ce caractère (utiliser
Définir tous les constructeurs possibles de plusieurs méthodes)
cette classe,
Résultat d’exécution
On fait un test d'exécution en instanciant et
ENSAM 3A
initialisant des objets de type Student en A3 MASNE
utilisant à chaque fois un constructeur
différent. Exercice 6 :
Exercice 7: 1
2
Ecrire un programme Java qui vérifie si 10
un mot donné est palindrome ou non. 20
30
Un mot est dit palindrome si il est 40
lisible de gauche à droite comme de 50
droite à gauche (exp :radar)
Exercice 10
Résultat d’exécution :
Que fournit le programme suivant ?
madam is palindrome = true
abcba is palindrome = true class Entier {
public Entier (int nn) { n = nn ; }
abc is palindrome = false
public void incr (int dn) { n += dn ;
}
Exercice 8 : public void imprime () {
System.out.println (n) ; }
Ecrire un programme Java qui private int n ;
permet de permuter deux chaines }
de caractères, et affiche le public class TstEnt {
contenu résultat. public static void main (String
args[]) { Entier n1 = new Entier (2) ;
System.out.print ("n1 = ") ;
Résultat d’exécution n1.imprime() ;
Entier n2 = new Entier (5) ;
before swapping two strings System.out.print ("n1 = ") ;
s1 => ENSAM n2.imprime() ;
s2 => Meknes n1.incr(3) ;
after swapping two strings System.out.print ("n1 = ") ;
s1 => Meknes n1.imprime() ;
s2 => ENSAM System.out.println ("n1 == n2 est " +
(n1 == n2)) ;
Exercice 9 n1 = n2 ;
n2.incr(12) ;
Ecrire un programme Java qui vérifie si System.out.print ("n2 = ") ;
deux tableaux sont identiques et n2.imprime() ;
affiche le résultat de la vérification. System.out.print ("n1 = ") ;
n1.imprime() ;
Résultat d’exécution : System.out.println ("n1 == n2 est " +
(n1 == n2)) ;
Two Integers are Equal :: false }
}
Exercice 9:
Exercice 11 :
Ecrire un programme Java qui permet de
trier un tableau d’entiers donné, On suppose qu’on dispose de la classe A ainsi
supprime les doublons et affiche le définie :
tableau résultat.
Exercice 1 :
import java.util.Scanner;
/**
* Java Program to Check Armstrong Number
*
*
*/
public class ArmstronNombre {
public static void main(String[] args) {
if (total == num) {
System.out.println(num + " est un nombre Armstrong");
} else {
System.out.println(num + " n'est pas un nombre Armstrong");
}
}
}
Exercice 2 :
public class Student {
private String name;
private String college;
return college;
}
Exercice 3 :
import java.util.Scanner;
public class PGCD {
public static void main(String[] args) {
Exercice 4
class Point {
public Point (char c, double x) // constructeur
{ nom = c ; abs = x ; }
public void affiche () {
System.out.println ("Point de nom " + nom + " d'abscisse " + abs) ;
}
public void translate (double dx) {
abs += dx ;
S.Amri & M.Hosni P a g e 5 | 12
TD_TP_1 (Corrigé exercices de base) POO JAVA
Université Moulay Ismaïl 2021-2022
ENSAM – Meknès S2– TC3A
}
private char nom ; // nom du point
private double abs ; // abscisse du point
}
public class TstPtAxe {
public static void main (String args[]) {
Point a = new Point ('C', 2.5) ;
a.affiche() ;
Point b = new Point ('D', 5.25) ;
b.affiche() ;
b.translate(2.25) ;
b.affiche() ;
}
}
Exercice 5 :
/* 5 ways to reverse a String in Java
/* @author java ENSAM 3A
*
*/
public class ReverseString5Ways {
display(string, output);
return output;
}
char c;
for (int i = length; i >= half; i--) {
c = array[length - i];
array[length - i] = array[i];
array[i] = c;
}
display(string, String.valueOf(array));
return String.valueOf(array);
}
Exercice 6
public class CountOccuranceOfSubString {
int count = 0;
int pos = 0;
int idx;
while ((idx = str.indexOf(sub, pos)) != -1) {
++count;
pos = idx + sub.length();
}
return count;
}
Exercice 7
public class StringPalindromeProgram {
if (input.equals(reverse)) {
System.out.println(input + " is palindrome = " + true);
} else {
System.out.println(input + " is palindrome = " + false);
}
return false;
}
Exercice 8
public class PermutTwoChaines {
String s1 = "ENSAM";
String s2 = "Meknes";
Exercice 9
public class CheckTwoArraysAreEqual {
return true;
}
Exercice 10
import java.util.Arrays;
final int[] a = { 50, 30, 1,10, 20, 30,2, 40,1, 50, 2,10, 20 };
Arrays.sort(a);// sorting array
removeDuplicate(a);
}
int j = 0;
for (int i = 0; i < a.length - 1; i++) {
if (a[i] != a[i + 1]) {
temp[j++] = a[i];
}
}
temp[j++] = a[a.length - 1];
Exercice 11
n1 = 2
n1 = 5
n1 = 5
n1 == n2 est false
n2 = 17
S.Amri & M.Hosni P a g e 10 | 12
TD_TP_1 (Corrigé exercices de base) POO JAVA
Université Moulay Ismaïl 2021-2022
ENSAM – Meknès S2– TC3A
n1 = 17
n1 == n2 est true
L’opérateur == appliqué à des objets compare leurs références (et non leurs valeurs). C’est pourquoi
la première comparaison (n1 == n2) est fausse alors que les objets ont la même valeur. La même
réflexion s’applique à l’opérateur d’affectation. Après exécution de n1 = n2, les références contenues
dans les variables n1 et n2 sont les mêmes.
L’objet anciennement référencé par n2 n’étant plus référencé par ailleurs, il devient candidat au
ramasse-miettes. Dorénavant n1 et n2 référencent un seul et même objet. L’incrémentation de sa
valeur par le biais de n1 se retrouve indifféremment dans n1.imprime et dans n2.imprime.
Exercice 12 :
Exercice 12 :
L’abscisse de l’origine courante est une information qui concerne tous les points de la classe. On en
fera donc un champ de classe en le déclarant static. De la même manière, les méthodes setOrigine et
getOrigine concernent non pas un point donné, mais la classe.
class Point {
public Point (int xx) { x = xx ;
}
public void affiche ()
{ System.out.println ("abscisse = " + (x-origine)) ;
System.out.println (" relative a une origine d'abscisse " + origine) ;
}
public static void setOrigine (int org) { origine = org ; }
public static int getOrigine() { return origine ; }
private static int origine ; // abscisse absolue de l'origine courante
private int x ; // abscisse absolue du point
}