Vous êtes sur la page 1sur 6

REPUBLIC OF CAMEROON

REPUBLIQUE DU CAMEROUN
Peace-Work-Fatherland
Paix-Travail-Patrie
--------------
--------------
NATIONAL ADVANCED SCHOOL OF
ECOLE NATIONALE SUPERIEURE DES POSTES,
POSTS,
DES TELECOMMUNICATIONS ET DES TIC
TELECOMMUNICATIONS AND ICT
-------------
----------------

ANNEE ACADEMIQUE 2020 -2021


SEMESTRE 3
EVALUATION DE PROGRAMMATION ORIENTEE OBJET
ELEMENTS DE CORRECTION CONTROLE CONTINU
ALTERNANCE
CLASSE : ITT 2

EXERCICE 1.QUESTIONS DE COURS (0,5 pt x 6+0,5 x 2+1pt = 5 points)


1. Quels sont les 3 principes importants de la POO ?
a. Classe b. Encapsulation c. Héritage d. Polymorphisme e. composition f.
agrégation
2. Un attribut statique est aussi appelé :
a. Variable d'instance b. variable d'interface c. variable de classe d. variable
locale
3. Un champ static indique que le champ est commun à toutes les instances de la classe.
a. Vrai b. Faux
4. Une méthode statique peut être invoquée avant même qu’une seule instance de la
classe ne soit construite a. Vrai b. Faux
5. Il peut exister plusieurs instances d’une classe abstraite. a. Vrai b. Faux
6. Remplir les vides avec un seul mot.
- L'héritage correspond le plus souvent à la relation « est un », alors que l’interface
la correspond à la relation « se comporte comme ».
7. Une classe qui implémente une interface... :
a) est obligatoirement une interface elle aussi
b) est obligatoirement une classe concrète
c) peut être une classe concrète à condition de définir toutes les méthodes de l'interface
d) est obligatoirement une classe concrète si elle définit toutes les méthodes de
l'interface
EXERCICE 2 : LES BATIMENTS (1pt+2pt+2pt=05 points)
1. La classe bâtiment
class Batiment
{
private string adresse;
public string get()
{ return adresse; }
public void set(string adresse)
{ this.adresse = a; }
public Batiment()
{adresse= "Cradat";}
public Batiment(string adresse)

SUP’PTIC 2020-2021 -CC -ELEMENTS-CORRECTION -POO– ALTERNANCE -SYG


1/6
{this.adresse = adresse;}  }

2. La classe Maison
class Maison extends Batiment
{ private int nbPiece;
Public int getnbPiece ()
{ return nbPiece; }
Public void setnbPiece (int nb)
{ nbPiece = nb; }
}
public Maison()
{
Super() ;
nbPiece=4;
}
public Maison(string adresse, int nb)
{
super(adresse) ;
nbPiece = nb;
}
}

3. Le programme test
class Program
{
static void Main(string[] args)
{
Batiment B = new Batiment("Marrakech");
Maison M1 = new Maison("Marrakech", 4) ;
Maison M2 = new Maison();
/tester getters, setters et afficher …./
}
}
EXERCICE 3 : LES ROBOTS (04pt+3pt+3pt=10points)
4. Définition de la classe ROBOT
public class Robot
{
private String nom;
private int x;
private int y;
private String direction;
public Robot(String nom)
{
this.nom = nom;

SUP’PTIC 2020-2021 -CC -ELEMENTS-CORRECTION -POO– ALTERNANCE -SYG


2/6
x = y = 0;
direction = "Est";
}
public Robot(String nom, int x, int y, String direction)
{
This.nom=nom;
this.x = x;
this.y = y;
if (direction.equals("Nord") || direction.equals("Sud")||direction.equals("Ouest"))
this.direction = direction; // garder "Est" si direction invalide
}
/**
* avance d'un pas
*/
public void avance()
{
if (direction.equals("Nord"))
y++;
else if (direction.equals("Est"))
x++;
else if (direction.equals("Sud"))
y--;
else // (direction.equals("Ouest"))
x--;
}
/**
* tourne à droite de 90°
*/
public void droite()
{
if (direction.equals("Nord"))
direction = "Est";
else if (direction.equals("Est"))
direction = "Sud";
else if (direction.equals("Sud"))
direction = "Ouest";
else // (direction.equals("Ouest"))
direction = "Nord";
}
/*** affiche l'état du robot*/
public void afficher()
{
System.out.println("nom : " + nom);
System.out.println("position : (" + x + "," + y +")");
System.out.println("direction : " + direction);
}}
5. ROBOTSNG
SUP’PTIC 2020-2021 -CC -ELEMENTS-CORRECTION -POO– ALTERNANCE -SYG
3/6
a. Avancer pas à pas
public class RobotNG extends Robot
{
public RobotNG(String nom)
{
super(nom);
}
public RobotNG(String nom, int x, int y, String direction)
{
super(nom, x, y, direction);
}
/*** avance de plusieurs pas
* pas c’est le nombre de pas*/
public void avance(int pas)
{
for (int i = 0 ; i < pas ; ++i) {
avance();
}}
/*** tourne à gauche de 90°*/
public void gauche()
{
droite();
droite();
droite();
}
/*** fait demi-tour*/
public void demiTour()
{
droite();
droite();
}}

b. Changement total
 Pour le faire il faut donc des getters et setters dans la classe ROBOT
/** getter pour x*/
protected int getX()
{
return x;
}
/** setter pour direction*/
protected void setDirection(String)
{
if (direction.equals("Nord") || direction.equals("Sud")|| direction.equals("Ouest"))
this.direction = direction; // garder "Est" si direction invalide
}

SUP’PTIC 2020-2021 -CC -ELEMENTS-CORRECTION -POO– ALTERNANCE -SYG


4/6
/* etc. */
 Changement total
public class RobotNG extends Robot
{
public RobotNG(String nom)
{
super(nom);
}
public RobotNG(String nom, int x, int y, String direction)
{
super(nom, x, y, direction);
}
/*** avance de plusieurs pas*
* pas est le nombre de pas*/
public void avance(int pas)
{
if (getDirection().equals("Nord"))
setY(getY() + pas);
else if (getDirection().equals("Est"))
setX(getX() + pas);
else if (getDirection().equals("Sud"))
setY(getY() - pas);
else // "Ouest"
setX(getX() - pas);
}
/*** tourne à gauche de 90°*/
public void gauche()
{
if (getDirection().equals("Nord"))
setDirection("Ouest");
else if (getDirection().equals("Est"))
setDirection("Nord");
else if (getDirection().equals("Sud"))
setDirection("Est");
else // "Ouest"
setDirection("Sud");
}
/*** fait demi-tour*/
public void demiTour()
{
if (getDirection().equals("Nord"))
setDirection("Sud");
else if (getDirection().equals("Sud"))
setDirection("Nord");
else if (getDirection().equals("Ouest"))
setDirection("Est");

SUP’PTIC 2020-2021 -CC -ELEMENTS-CORRECTION -POO– ALTERNANCE -SYG


5/6
else // "Est"
setDirection("Ouest");
}}

SUP’PTIC 2020-2021 -CC -ELEMENTS-CORRECTION -POO– ALTERNANCE -SYG


6/6

Vous aimerez peut-être aussi