|
|
|
|
|
|
|
## Exemple partant de la dernière question du test.
|
|
|
|
|
|
|
|
```
|
|
|
|
objet abstrait jouet
|
|
|
|
var protégée prix, poids : décimal;
|
|
|
|
var protégée stock : entier;
|
|
|
|
|
|
|
|
methode constructeur(prix,poids)
|
|
|
|
ceci->prix = prix;
|
|
|
|
ceci->poids = poids;
|
|
|
|
ceci->stock = 0;
|
|
|
|
fin methode
|
|
|
|
|
|
|
|
methode ajouter(nombre=1)
|
|
|
|
ceci->stock = ceci->stock + nombre;
|
|
|
|
fin methode
|
|
|
|
|
|
|
|
methode diminuer(nombre=1)
|
|
|
|
ceci->stock = ceci->stock - nombre;
|
|
|
|
fin methode
|
|
|
|
|
|
|
|
fin objet
|
|
|
|
|
|
|
|
objet nounours étend jouet
|
|
|
|
var couleur, matière chaînes;
|
|
|
|
methode constructeur(prix,poids,couleur,matière)
|
|
|
|
parent->constructeur(prix,poids);
|
|
|
|
ceci->couleur = couleur;
|
|
|
|
ceci->matière = matière;
|
|
|
|
fin methode;
|
|
|
|
fin objet
|
|
|
|
|
|
|
|
/* pseudo code pour l'utiliser (cf image) */
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
## Exemple étendu pour gérer le stock d'un magasin de jouets
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
objet jouet
|
|
|
|
var nom, type, localisation : chaîne;
|
|
|
|
var privée prix : décimal;
|
|
|
|
var privée stock : entier;
|
|
|
|
|
|
|
|
methode constructeur(nom,type,localisation,prix);
|
|
|
|
ceci->nom = nom;
|
|
|
|
ceci->type = type;
|
|
|
|
ceci->localisation = localisation;
|
|
|
|
ceci->prix = prix;
|
|
|
|
ceci->stock = 0;
|
|
|
|
fin methode
|
|
|
|
|
|
|
|
methode ajouter(nombre=1)
|
|
|
|
ceci->stock = ceci->stock + nombre;
|
|
|
|
fin methode
|
|
|
|
|
|
|
|
methode diminuer(nombre=1)
|
|
|
|
ceci->stock = ceci->stock - nombre;
|
|
|
|
fin methode
|
|
|
|
|
|
|
|
methode donne_prix()
|
|
|
|
renvoyer ceci->prix;
|
|
|
|
fin methode;
|
|
|
|
|
|
|
|
methode donne_stock()
|
|
|
|
renvoyer ceci->stock;
|
|
|
|
fin methode;
|
|
|
|
fin objet
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
## pseudo code pour l'utiliser :
|
|
|
|
|
|
|
|
```
|
|
|
|
var fini : booléen;
|
|
|
|
var nom, type, localisation, reponse_fin : chaine;
|
|
|
|
var tdj : tableau;
|
|
|
|
var nb_jouet, stock : entier;
|
|
|
|
var prix : decimal;
|
|
|
|
|
|
|
|
nb_jouet = 0;
|
|
|
|
|
|
|
|
Tant que fini != vrai
|
|
|
|
Afficher "Nom du jouet ?"
|
|
|
|
Lire nom;
|
|
|
|
|
|
|
|
Afficher "Type ?"
|
|
|
|
Lire type;
|
|
|
|
|
|
|
|
Afficher "Cave ou salle ?"
|
|
|
|
Lire localisation;
|
|
|
|
Si localisation != "cave" Alors
|
|
|
|
localisation = "salle";
|
|
|
|
Fin si
|
|
|
|
|
|
|
|
Afficher "Stock ?"
|
|
|
|
Lire stock;
|
|
|
|
|
|
|
|
Afficher "Prix ?"
|
|
|
|
Lire prix;
|
|
|
|
|
|
|
|
tdj[nb_jouet] = nouveau jouet(nom,type,localisation,prix);
|
|
|
|
tdj[nb_jouet]->ajouter(stock);
|
|
|
|
|
|
|
|
nb_jouet = nb_jouet + 1;
|
|
|
|
|
|
|
|
Afficher "Jouet " ~ nb_jouet ~ " créé !";
|
|
|
|
|
|
|
|
Afficher "fini ?"
|
|
|
|
Lire reponse_fin
|
|
|
|
Si reponse_fin == "oui" Alors
|
|
|
|
fini = vrai
|
|
|
|
Fin si
|
|
|
|
Fin tant que
|
|
|
|
|
|
|
|
pour i = 0 ; i < nb_jouets ; i++
|
|
|
|
Afficher "Le jouet " ~ i ~ " est un " ~ tdj[i]->type
|
|
|
|
Afficher " nommé " ~ tdj[i]->nom
|
|
|
|
Afficher " et est dans la " ~ tdj[i]->localisation;
|
|
|
|
Afficher "Il y en a " ~ tdj[i]->donne_stock() ~ " disponibles";
|
|
|
|
fin pour
|
|
|
|
|
|
|
|
```
|