|
Page 13 sur 13
Quelques exercices de synthèse
Chacun des exercices peut être fait avec ou sans interface graphique, le but étant que chacun travaille à son niveau.
Les exercices sont de niveaux variés, et il n'y a pas de progression dans la difficulté.
Exercice n° 1 : Le chiffre de César
Le chiffre de César est une méthode ancienne et simple pour crypter des phrases. Dans cet exercice, on on travaillera qu'avec des phrases ne comportant pas de caractères spéciaux ( accents, tréma, etc.... ). Pour crypter chaque lettre, il faut faire un choix de nombre au départ, entre 1 et 26, ensuite on associe à chaque lettre un indice ( 1 pour a, 2 pour b, etc... ) décaler les indices avec le nombre choisit, et retranscrire le tout en lettre.
Pour en savoir plus : Chiffre de César sur Wikipédia
L'exercice consiste à écrire un programme qui code ou décode une phrase suivant un nombre choisit.
Un exemple parle peut-être plus :
Grâce à la possibilité du 0, on affiche tous les décalages possibles, pratique lorsque l'on ne connait pas le chiffre de départ.
Exercice n° 2 : la suite de Conway
Connaissez-vous la suite de Conway ? Voici les premiers termes :
1
11
21
1211
111221
312211
...
Ecrire un programme qui génère les n premiers termes de la suite de Conway, n étant choisi par l'utilisateur.
Exercice n° 3 : le jeu de la vie
Imaginons un plateau rectangulaire ayant des cases carrées. Une cellule est représentée par un carré ( ou un point, comme on veut ), et son cycle de vie est défini par :
- toute cellule ayant au plus une voisine meurt d'isolement,
- toute cellule ayant au moins quatre voisines meurt d'étouffement,
- toute case vide voisine d'exactement trois cellules donne naissance à une cellule.
Toutes ces règles s'appliquent au même moment sur toutes les cases du plateau et donne lieu à une ronde de la vie des cellules.
Pour des explications plus détaillées, voir l'article sur wikipédia.
Il s'agit d'un exercice classique de programmation, qui demande tout de même pas mal de travail.
La solution peut être en console ( avec des 0 et des 1 ), mais c'est clairement plus appréciable de donner une solution avec une interface graphique, soit à l'aide de tkinter, soit à l'aide de pygame.
Exercice n° 4 : les annagrammes
L'utilisateur donne une chaine de caractères, et le programme doit pouvoir afficher tous les annagrammes existants.
La chaine de caractères peut très bien comporter des espaces ou autres caractères spéciaux, et dans ce cas les annagrammes devront comporter exactement les mêmes caractères.
Une petite précision nécessaire : le but de l'exercice n'est pas de chercher une fonction dans un module particulier qui pourrait régler tout ça en deux lignes ( oui oui, elle existe cette fonction ), le but est d'écrire l'algorithme soi-même.
Cela dit, quand vous aurez brillamment réussi cet exercice, n'hésitez pas à regarder cette fonction :).
Exercice n° 5 : le problème du sac à dos
Dans sa version complète, ce problème est d'un niveau NP-Complet.
Etant donné un poids maximal que pourrait supporter le sac, et étant donnés plusieurs objets de poids différents, comment les choisir afin d'optimiser le contenu du sac sans en dépasser le poids maximal.
Voici une version un peu différente pour cet exercice :
- on fixe le poids maximal du sac à 35 kgs ( c'est déjà un bon sac à dos ),
- le début du programme doit générer une liste de 20 poids ( donc pour 20 objets ), avec éventuellement des égalités, allant de 0,1 kg jusqu'à 10 kgs, avec une précision de
.
- l'algorithme tente de faire le meilleur choix en présentant la solution proprement.
Exercice n° 6 : l'algorithme de Kaprekar
Prenons un nombre à quatre chiffres, par exemple 4259. On ordonne ses chiffres dans l'ordre croissant, puis décroissant pour former deux nombres dont on calcule la différence : 9542 - 2459 = 7083. Puis on recommence avec 7083, et ainsi de suite...
Que se passe-t-il au bout d'un certain moment ?
Evidemment, on peut travailler avec 2, 3 chiffres, ou plus, rien n'est fixé.
Réaliser un programme qui simule les résultats de cet algorithme, en attendant de l'utilisateur le nombre de départ ainsi que le nombre de tentatives à faire.
Bon, là je vous sens super motivés, alors je donne encore des liens utiles pour assoiffer votre envie d'exercices :
- Exercices Python sur le site Calque : ou comment un professeur se donne des devoirs de vacances pour apprendre un nouveau langage. Comme il est sympa, il fournit les réponses.
- Le Projet Euler : quelques centaines de problèmes de type mathématiques à résoudre à l'aide de la programmation.
- Le challenge Python : je crois que tout est dit, bon courage...
|