|
|
|
|
# Corrigé test blanc du 4/1/2022
|
|
|
|
|
|
|
|
|
|
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<nombre, i ++
|
|
|
|
|
si i < 10
|
|
|
|
|
prix = prix + 0.10;
|
|
|
|
|
sinon si i < 30
|
|
|
|
|
prix = prix + 0.09;
|
|
|
|
|
sinon
|
|
|
|
|
prix = prix + 0.08;
|
|
|
|
|
fin pour
|
|
|
|
|
Afficher "Le prix total est: " ~ prix
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Au vu de ce pseudo code :
|
|
|
|
|
|
|
|
|
|
> 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, stock : chaînes;
|
|
|
|
|
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
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 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) */
|
|
|
|
|
```
|