# Corrigé test blanc du 4/1/2022 https://forms.gle/pYx83zfr1dz8dajk7 test 9h30 -> 11h (1h30) ## L'ensemble des méthodes et des propriétés d'un objet s'appelle : une interface ## Quelle est le nom de la méthode que l'on utilise pour initialiser un objet à partir de valeurs ? quelques réponses faites et leur validité ou non ... - initialisateur : dans l'idée pourquoi pas mais pas le bon terme - new Object() ou Object.create() : c'est des instructions dans un langage - encapsulation : le premier concept objet le fait d'avoir des méthodes privées ou public ou protégées - Une Variable : pas un concept spécifiquement objet - Constructeur : c'est bien le nom de la méthode, bonne réponse - l'instanciation : c'est effectivement le concept sous jacent mais pas la méthode - héritage : deuxième concept objet le fait de pouvoir hériter les propriétés et les méthodes d'un objet parent, exemple cercle étend forme. - Javascript : c'est un langage de programmation pas un concept objet. ## Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif ou négatif. Le cas du zéro étant gênant, votre algorithme doit afficher que la valeur est nulle. ``` variable nombre en entier; Afficher "Nombre ?"; Lire nombre; Si nombre > 0 alors Afficher "Le nombre est positif"; Sinon si nombre < 0 alors Afficher "le nombre est négatif"; Sinon Affciher "le nombe est 0"; Fin si ``` ## Un magasin de reprographie facture 0,10€ les dix premières photocopies, 0,09€ les vingt suivantes et 0,08€ au-delà. Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondante. ### Solution 1 en partant du haut vers le bas: ``` variable prix en décimal; variable nombre en entier; Afficher "Nombre ?"; Lire nombre; Si nombre > 30 Alors prix = (nombre-30 * 0.08) + 20*0.09 + 10*0.1 Sinon si nombre > 10 prix = (nombre-10 * 0.09) + 10*0.1 Sinon prix = nombre * 0.1 Fin si Afficher "Le prix total est: " ~ prix ``` ### Solution 2 en patant du bas vers le haut : ``` Variables n, p en Numérique Début Ecrire "Nombre de photocopies : " Lire n Si n <= 10 Alors p ← n * 0,1 SinonSi n <= 30 Alors p ← 10 * 0,1 + (n – 10) * 0,09 Sinon p ← 10 * 0,1 + 20 * 0,09 + (n – 30) * 0,08 FinSi Ecrire "Le prix total est: ", p Fin ``` ### Solution 3 en comptant copie par copie : ``` variable prix en décimal; variable nombre en entier; Afficher "Nombre ?"; Lire nombre; pour i =0, i var a, b entier; > ca = 2; > a = a+1; > b = -3; > a = a*b; ## Quelles sont les phrases vraies parmies celles-ci - `-` est un opérateur - sur la dernière ligne a et b sont des opérandes - à la fin du pseudo code a et b sont négatifs (respectivement ils valent -9 et -3) La première est fausse : + n'est pas un opérande mais un opérateur ## Ecrire le pseudo code définissant un objet abstrait jouet, avec un prix, un poids, un stock. Un jouet a deux fonctions, une pour ajouter du stock, un pour le diminuer. ``` objet abstrait jouet 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; ceci->stock = stock; 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 ``` ## Ecrie le pseudo code définissant un nounours comme un jouet avec une couleur et une matière ``` objet nounours étend jouet var couleur, matière chaînes; methode constructeur(prix,poids,stock,couleur,matière) parent->constructeur(prix,poids,stock); ceci->couleur = couleur; ceci->matière = matière; fin methode; fin objet ```