Vous êtes sur la page 1sur 2

Université de Nouakchott Al Asriya

Licence Mathématiques Informatique


MI S5
Contrôle continu
INF 5100 - Programmation objet
Documents non autorisés
Exercice-1
Soit la « class Monnaie » ci-dessous :
public class Monnaie {
public static void usage() {
System.err.println(" Usage : <somme >");
}

public static void afficheMonnaie(int[] rep, int[] val) {


for (int i = 0; i < rep.length; ++i) {
if (val[i] < 5) {
System.out.println(" Nbre de pieces de " + val[i] + " euros :
" + rep[i]);
} else {
System.out.println(" Nbre de billets de " + val[i] + " euros :
" + rep[i]);
}
}
}

public static int[] calculMonnaie(int somme, int[] val) {


int n = val.length;
int[] r = new int[n];
for (int i = 0; (i < n && somme != 0); i++) {
while (somme >= val[i]) {
r[i]++;
somme = somme - val[i];
}
}
return r;
}

public static void main(String[] argv) {


if (argv.length == 0) {
usage();
} else {
int[] val = { 100, 50, 20, 10, 5, 2, 1 };
int a = Integer.parseInt(argv[0]);
int[] t = calculMonnaie(a, val);
afficheMonnaie(t, val);
}
}
}

Questions :
— Qu'affiche le programme si on lui passe en paramètre la valeur 587 ?
— De façon générale, à quoi sert la classe Monnaie ?

Page 1 sur 2
Université de Nouakchott Al Asriya
Licence Mathématiques Informatique
MI S5

Exercice-2
Dans cet exercice, vous allez créer une classe Point2DCartesien qui permet la
représentation d'un point dans un plan grâce à des coordonnées cartésiennes
(abscisse « x » et ordonnée « y ») et qui inclut un compteur « cpt » de type
« int » qui permet de compter le nombre d’objets peints déjà créés.

1. Écrire un premier constructeur public Point2DCartesien () qui crée un


point placé au centre du repère et inclémente le nombre d’objets créés.
2. Écrire un constructeur plus général public Point2DCartesien (double x ,
double y) , permettant de construire un point de coordonnées x et y et
incrémentant le nombre d’objets créés.
3. Ajouter les accesseurs en lecture public double getAbscisse () et public
double getOrdonnee ()
qui retournent respectivement l'abscisse et l'ordonnée de l'objet dans un repère
cartésien.
4. Ajouter les accesseurs en écriture public void set Abscisse (double x) et
public void setOrdonnee (double y) qui modifient les valeurs de l'abscisse
et de l'ordonnée de l'objet.
5. Ajouter une méthode public boolean equals (Point2DCartesien p) qui
teste l'égalité entre l'objet auquel s'applique la méthode et l'objet passé en
paramètre.
6. Ajouter une méthode public Point2DCartesien clone () qui réalise une
copie de l'objet auquel s'applique la méthode.
7. Ajouter une méthode public String toStringO qui donne la transformation
en chaîne de caractères de l'objet auquel s'applique la méthode.
8. Ajouter une méthode public void translation (double dx , double dy)
qui applique au point une translation d'un vecteur de coordonnées dx et dy.
9. Ajouter la méthode public void homothetie (double f acteur) qui applique
au point une homothétie en utilisant comme centre le centre du repère.
Soit M ( x , y ) un point dans un repère cartésien. Soit M'( x' , y' ) l'image de M par
l'homothétie de centre C( Xe , Ye) et de facteur k, alors
x' =k * ( x - X e) + X e
y' =k * (y -Y e) + Y e
10. Ajouter la méthode public void rotation (double alpha) qui applique au
point une rotation d'angle alpha en utilisant comme centre le centre du repère.
Soit M ( x , y ) un point dans un repère cartésien. Soit M'( x' , y' ) l'image de M par
la rotation de centre C( xe , Ye) et d'angle a , alors
x' = cos a * ( x - Xe ) - sin a * ( y - Ye) + X e

y' = sin a * ( x - X e) + cos a * ( y - Ye) + Ye

Page 2 sur 2

Vous aimerez peut-être aussi