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.
cours-MDS/b1-algo/c3-1-ALGORITHMIQUE-correcti...

151 lines
4.1 KiB

# Corrigé test blanc du 4/1/2022
3 years ago
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 à lutilisateur, et linforme 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 à lutilisateur 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
3 years ago
var protégée prix, poids : décimal;
var protégée stock : entier;
3 years ago
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
```