Ceci est une ancienne révision du document !
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Trying to access array offset on value of type null in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 149
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Exercices - Algorithmes
Exercice 1
Un point est sur une grille,
- sa position est donnée par ses coordonnées $(x; y)$ avec des axes évidents :
- l'axe $x$ pointe vers la droite,
- l'axe $y$ pointe vers le haut,
- la position initiale du point est toujours $(0; 0)$,
- les instructions disponibles consistent à déplacer le point vers la gauche, la droite, le
haut, le bas,
- dans tous les cas dites les coordonnées du point en fin d'algo.
algo a)
DÉBUT
haut 1
droite 2
bas 3
FIN
algo b)
DÉBUT
RÉPÉTER 10 FOIS
haut 1
droite 2
bas 3
FIN
haut 5
FIN
algo c)
DÉBUT
TANT QUE y du point < 100 RÉPÉTER
haut 3
droite 5
FIN
gauche 9
FIN
algo d)
DÉBUT
POUR i ALLANT DE 1 À 10 FAIRE
SI i pair ALORS
haut i
SINON
droite i
FIN
FIN
FIN
Remarque : Ces algorithmes précédent font toujours la même chose. Ils n'ont pas d'entrées.
Exercice 2
La Logo est un langage de programmation pédagogique dans lequel on anime la pointe d'un crayon qui dessine. Le crayon commence à la position (0,0) et il est orienté vers l'Est (droite). Il peut avancer et tourner à gauche ou à droite. Que font les programmes suivants ?
algo a)
DÉBUT
avancer de 100
tourner gauche de 90 degrés
avancer de 100
tourner gauche de 90 degrés
avancer de 100
tourner gauche de 90 degrés
avancer de 100
tourner gauche de 90 degrés
FIN
algo b)
DÉBUT
RÉPÉTER 6 FOIS
avancer de 100
tourner à droite de 60 degrés
FIN
FIN
algo c)
DÉBUT
RÉPÉTER 3 FOIS
RÉPÉTER 3 fois
avancer de 100
tourner à droite de 120 degrés
FIN
tourner à droite de 120 degrés
FIN
FIN
Exercice 3
Que font les deux algorithmes suivants ?
ENTRÉES n, entier > 0
DÉBUT
Soit t = 0,
POUR i ALLANT DE 1 À n FAIRE
ajouter i à t
FIN
RENVOYER t
FIN
ENTRÉES n, entier > 0
DÉBUT
POUR i ALLANT DE 2 À n-1 FAIRE
SI i est diviseur de n ALORS
RENVOYER non
FIN
FIN
RENVOYER oui
FIN
Exercice 4
On suppose que l'on peut utiliser un ensemble d'éléments, par exemple quelque chose comme $\left\lbrace 1, 14, 25, 8, 17\right\rbrace$. Il est notamment possible de parcourir cet ensemble pour en lire les éléments un à un.
ENTRÉES ensemble e
DÉBUT
soit n = 0
POUR CHAQUE élément DE e FAIRE
ajouter 1 à n
FIN
RENVOYER n
FIN
- Que renvoie l'algorithme pour
e = {1, 14, 25, 8, 17}? - Que renvoie l'algorithme en général ?
- Dans le cas où
ene contient que des nombres, écrivez un algorithme semblable qui renvoie le total des éléments dee. - Dans le cas où
ene contient que des nombres, écrivez un algorithme semblable qui renvoie la valeur maximum dee. - Indiquez une précondition pour ce dernier cas.
Remarque : Cette structure permettant le parcours de tous les éléments d'un ensemble n'est pas présente dans tous les langages de programmation. Elle est par exemple absente en C. C'est en revanche la forme unique choisie pour la bouclePOURde Python.
Exercice 5 : Zune
Zune est le nom donné par Microsoft à son logiciel de gestion et de lecture de fichiers musicaux dans les baladeurs du même nom, commercialisé entre 2006 et 2011.
Le 31 décembre 2008, une grande partie des Zune de première génération a subi une panne critique bloquant le démarrage du lecteur. Le problème venait du module de mise à jour, contenant une conversion de date.
ENTRÉE jour: représente le numéro de jour à partir du 1er janvier 1980 (jour 1)
SORTIE année, jour: paire fournissant l'année et et le jour dans l'année
par ex: le 14/01/1981 est le jour 380 en comptant à partir du 01/01/1980
et la fonction doit renvoyer 1981, 14
DÉBUT
soit année = 0
TANT QUE jour > 365 RÉPÉTER
SI année bissextile ALORS
SI jour > 366 ALORS
enlever 366 à jour
ajouter 1 à année
FIN
SINON
enlever 365 à jour
ajouter 1 à année
FIN
FIN
RENVOYER année, jour
FIN
- Pourquoi l'application a-t-elle subi une panne le 31/12/2008 ?
- Pourquoi pas avant ?
- Que faudrait-il changer pour éviter le problème ?
