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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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 à 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
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
```