Correction du DS0001⚓︎
Exercice 1 (flottants)⚓︎
-
En virgule fixe, l'erreur d'approximation est la même pour tous les nombres, de l'ordre de \(2^{-n}\) où \(n\) est le nombre de chiffres conservés après la virgule. Cette erreur, infime pour les très grands nombres, devient très importante pour les petits nombres.
-
En virgule flottante, l'erreur relative est la même pour tous les nombres.
-
Par exemple
0.1
.
Exercice 2 (algorithmique)⚓︎
-
La méthode par force brute consiste à envisager tous les cas possibles. L'avantage est qu'elle permet à coup sûr de trouver la solution optimale globale au problème. L'inconvénient est qu'elle peut prendre trop de temps si les données sont trop grandes.
-
La méthode gloutonne consiste à faire le meilleur choix local à chaque étape en espérant obtenir le meilleur choix global. L'avantage est que la solution s'obtient assez rapidement. L'inconvénient est qu'on n'est pas assuré d'obtenir la solution optimale au problème.
Exercice 3 (programmation générale)⚓︎
1.
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 |
|
Exercice 4 (POO)⚓︎
-
Décrire la classe
Coffre
en précisant ses attributs et ses méthodes. Préciser les types des attributs, des éventuels paramètres des méthodes et des valeurs éventuellement renvooyées par ces méthodes.Proposition de correction
Classe: Coffre
Attributs:
- code:
int
- ouvert:
bool
- montant:
int
Méthodes:
- ouvrir(
int
) ->None
- fermer() ->
None
- consulter() ->
str
- deposer(
int
) ->str
- retirer(
int
) ->str
- code:
-
Écrire un scénario utilisant cette classe pour tester les différentes méthodes.
Proposition de correction
>>> c = Coffre(1234) >>> c.consulter() 'Le coffre est fermé.' >>> c.ouvrir(1238) Mauvais code >>> c.ouvrir(1234) Coffre ouvert >>> c.consulter() 'Le coffre contient un montant de 0.' >>> c.deposer(100) 'montant déposé: 100 ' >>> c.consulter() 'Le coffre contient un montant de 100.' >>> c.retirer(20) 'montant retiré: 20 ' >>> c.retirer(200) "il n'y a pas assez d'argent dans le coffre" >>> c.fermer() >>> c.deposer(50) 'montant déposé: 0' >>> c.retirer(30) 'montant retiré: 0'
Partie machine⚓︎
Un coffre fort contient un montant d'argent. Ce montant est nul si le coffre est vide. Le coffre peut être ouvert ou fermé. Pour ouvrir le coffre, on doit saisir un code (entier à 4 chiffres), mais ce code n'est pas nécessaire pour le fermer. Si le coffre est ouvert, on peut le consulter, y déposer de l’argent ou en retirer. Si le coffre est fermé, ces opérations sont impossibles. On ne peut pas retirer plus que ce que contient le coffre.
Proposition de correction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|