diff --git a/b1-algo/c3-1-ALGORITHMIQUE-correction.md b/b1-algo/c3-1-ALGORITHMIQUE-correction.md index 6b02b82..601b477 100644 --- a/b1-algo/c3-1-ALGORITHMIQUE-correction.md +++ b/b1-algo/c3-1-ALGORITHMIQUE-correction.md @@ -115,7 +115,9 @@ La première est fausse : + n'est pas un opérande mais un opérateur ``` objet abstrait jouet - var protégée prix, poids, stock : chaînes; + var protégée prix, poids : décimal; + var protégée stock : entier; + methode constructeur(prix,poids,stock) ceci->prix = prix; ceci->poids = poids; @@ -144,36 +146,3 @@ objet nounours étend jouet fin methode; fin objet ``` - -### autre exemple pour le code d'avant avec un stock à initialiser : - -``` -objet abstrait jouet - var protégée prix, poids, stock : chaînes; - 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) */ -``` diff --git a/b1-algo/c3-2-ALGORITHMIQUE.md b/b1-algo/c3-2-ALGORITHMIQUE.md new file mode 100644 index 0000000..72edb02 --- /dev/null +++ b/b1-algo/c3-2-ALGORITHMIQUE.md @@ -0,0 +1,115 @@ + +## 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->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 + + methode donne_prix() + renvoyer ceci->prix; + fin methode; + + methode donne_stock() + renvoyer ceci->prix; + fin methode; +fin objet +``` + + +``` +var fini : booléen; +var nom, type, localisation, reponse_fin : chaine; +var tdj : tableau; +var nb_jouet, stock : entier; +ver prix : decimal; + +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 ~ " nommé " ~ tdj[i]->nom ~ " et est dans la " ~ tdj[i]->localisation; + Afficher "Il y en a " ~ tdj[i]->donne_stock() ~ " disponibles"; + +fin pour