Énoncés - Température - Porte-monnaie
Cl_PorteMonnaie
est une classe
prive
Montant est un réel
CodeSecret est une chaine de 20 car
PorteMonnaieActif est un booléen
public
constructeur Creer
propriété Solde est un réel
lecture Montant
fonction InitCodeSecret (E: Code est une chaine de 20 car) renvoie un booléen
fonction ChangerCode (E: AncienCode, NouveauCode sont des chaines de 20 car) renvoie un booléen
fonction Payer (E: Code est une chaine de 20 car, Prix est un réel) renvoie un booléen
procedure Remplir (E: MontantApporté est un réel positif)
fin classefonction ValidationCode retourne un booléen
(E: CodeTest est une chaine de 20 car)
DONNEE
Resultat est un booléen
début
Resultat <-- VRAI
si (LongueurChaine (CodeTest) < 4) alors
Resultat <-- FAUX
sinon
pour IndexCar <-- 1 à LongueurChaine (CodeTest) faire
si PAS (((CodeTest[IndexCar] >= "a") ET (CodeTest[IndexCar] <= "z")) OU
((CodeTest[IndexCar] >= "A") ET (CodeTest[IndexCar] <= "Z")) OU
((CodeTest[IndexCar] >= "0") ET (CodeTest[IndexCar] <= "9"))) alors
Resultat <-- FAUX
fin si
fin pour
fin si
retourner Resultat
finconstructeur Cl_PorteMonnaie.Creer
début
Creer hérité
Montant <-- 0
MotPasse <-- ""
PorteMonnaieActif <-- FAUX
finfonction Cl_PorteMonnaie.InitCodeSecret renvoie un booléen
(E: Code est une chaine de 20 car)
début
si PAS PorteMonnaieActif alors
si ValidationCode (Code) alors
MotPasse <-- Code
PorteMonnaieActif <-- VRAI
sinon
retourner FAUX
fin si
sinon
retourner FAUX
fin si
finfonction Cl_PorteMonnaie.ChangerCode renvoie un booléen
(E: AncienCode, NouveauCode sont des chaines de 20 car)
début
si (PorteMonnaieActif ET (MotPasse = AncienCode)) alors
MotPasse <-- NouveauCode
retourner VRAI
sinon
retourner FAUX
fin si
finfonction Cl_PorteMonnaie.Payer renvoie un booléen
(E: Code est une chaine de 20 car, Prix est un réel)
début
si (PorteMonnaieActif ET (MotPasse = Code) ET Montant >= Prix) alors
Montant <-- Montant - Prix
retourner VRAI
sinon
retourner FAUX
fin si
finprocedure Cl_PorteMonnaie.Remplir (E: MontantApporté est un réel positif)
début
si (MontantApporte > 0) alors
Montant <-- Montant + MontantApporte
fin si
fin