You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
2.5 KiB

## 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
```