Home Python Introduction

Menu principal

Informatique

Mathématiques

Introduction à Python - 12 - Quelques exercices de synthèse
Informatique - Python
Écrit par Arnaud Kientz   
Index de l'article
Introduction à Python
1 - Généralités
2 - Premiers pas en console
3 - Un premier programme
4 - Structure de contrôle : IF
5 - Structure de contrôle : WHILE
6 - Structure de contrôle : FOR...IN
7 - Synthèse sur les variables
8 - Utilisation des modules
9 - Structure fonctionnelle
10 - Un peu de dessin avec Turtle
11 - Faire une interface graphique avec Tkinter
12 - Quelques exercices de synthèse
Toutes les pages

 

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 :

chiffrement_Csar

 

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 :planeur

  • 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 Formula.
  • 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...

 

 

 

 

 

 

 




Mise à jour le Jeudi, 06 Mai 2010 12:09