Mini-Projets

MODALITES:

Écrire un programme sous Python répondant à des consignes précisées dans les documents ci-dessous (ajouter des commentaires explicatifs dans vos programmes ).

Vous écrirez une page HTML mettant en évidence votre démarche et expliquant la stratégie utilisée  (algorigramme ou schéma) et montrant tout ou partie de votre code.

Première série de mini-projets:

 

  • Tir de canon:

Un boulet de canon est tiré dans le but d’atteindre une cible située à l’opposé d’un carré de 600 pixels par 600 pixels. Le mouvement du boulet est situé dans le référentiel terrestre, galiléen. Le boulet de masse M est supposé ponctuel, l’action de l’air est supposée négligeable, l’accélération de pesanteur sera prise égale à 9,8 m/s².

  1. Au cours du mouvement, le boulet n’est soumis qu’à son poids. Écrire un programme qui place à droite une cible de hauteur aléatoire et à gauche la tortue, à une hauteur fixée au hasard.
  2. Faire un programme qui, après avoir demandé l’angle avec l’horizontale de tir, ainsi que la vitesse initiale du boulet, trace la trajectoire du boulet et repère si oui ou non la cible est touchée. La partie est nulle si le boulet sort du cadre ou ne touche pas la cible.

  • Code César (codage et décodage):
  1. Étude du code César.
  2. Écriture d’un programme permettant le codage d’un texte donné.
  3. + Écriture d’un programme permettant le décodage d’un texte codé dont on connaît la clé de codage.
  4. ++ trouver une méthode de décodage d’un texte écrit français sans connaitre la clé.

  • Le scrabble :

Jeu de société où l’objectif est de cumuler des points, sur la base de tirages aléatoires de lettres, en créant des mots sur une grille carrée dont certaines cases sont primées. La version française comprend 102 jetons. Le joueur dispose de 7 lettres pour constituer un mot ou en compléter un.

0 Point

Joker (x2)

1 Point

E(x15), A(x9), I(x8), N(x6), O(x6), R(x6), S(x6), T(x6), U(x6), L(x5)

2 Point

D(x3), M(x3), G(x2)

3 Point

B(x2), C(x2), P(x2)

4 Point

F(x2), H(x2), V(x2)

8 Point

J(x1), Q(x1)

10 Point

K(x1), W(x1), X(x1), Y(x1), Z(x1)

    1. On place dans une chaîne 7 lettres tirées au hasard correspondantes au tirage du jeu d’un joueur de scrabble.   Écriture d’un programme qui demande au joueur un mot et lui dit s’il peut en effet le former avec ses 7 lettres.
    2. + Réaliser un programme qui compte le nombre de points que rapporte le mot proposé.
    3.  ++ Tenir compte de la probabilité de tirage des lettres.
chaine.upper() Renvoie la chaîne en majuscules
chaine.lower() Renvoie la chaîne en minuscules
  len(chaine) Renvoie la longueur de la chaîne
chaine [ i ] Renvoie le caractère situé au rang i dans la chaîne
Lettre in (chaine) Renvoie True si la lettre apparait dans chaîne
chaine.count(Lettre) Renvoie le nombre de fois ou la lettre est présente dans la chaîne
chaine.find(Lettre) Indique la position dans la chaîne où se trouve la lettre et renvoie -1 si la lettre n’apparait pas
chaine.replace(texte1,texte2) Remplace par texte2 chaque fois qu’il trouve texte1 dans la chaîne
  • Simulation d’un billard à deux bandes (module tortue):
  1. Tracer une zone rectangulaire.
  2. Positionner au hasard un disque de rayon fixe, positionner au hasard la tortue dans la zone, hors disque.
  3. L’utilisateur choisit une direction et doit toucher le disque après deux bandes minimum, 4 maximum.  Avancer par petits pas…
  4. + afficher la distance parcourue

Aide

  • Problème de Josèphe: 

Objectif: des soldats juifs, cernés par des soldats romains, décident de former un cercle. Un premier soldat est choisi au hasard et est exécuté, le troisième à partir de sa droite  est ensuite exécuté. Tant qu’il y a des soldats, la sélection continue. Le but est de trouver à quel endroit doit se tenir un soldat pour être le dernier. Josèphe, peu enthousiaste à l’idée de mourir, parvint à trouver l’endroit où se tenir.  Quel est-il ?

  1. Créer un programme qui résout le problème de Josephe dans le cas de 40 soldats.
  2. +Généraliser avec N soldats exécutés de p en p.
  3. ++ Nous sommes 70, je suis le 33ième et je peux choisir le pas  p , alors… ?

  • Nombres premiers:
  1. Écrire un programme permettant de déterminer si un nombre entier est premier ou non.
    Si le nombre n’est pas premier donner sa décomposition en facteurs premiers.
  2. + Ecrire un programme déterminant si deux nombres entiers sont premiers entre eux.

  • Aire d’un polygone:

Objectif  :  Créer un programme permettant de dessiner un polygone et de calculer une  valeur approchée de son aire.

  1. Le polygone est défini par les coordonnées de ses sommets.
  2. Dessiner le polygone.
  3. On pourra se renseigner sur un certain Héron.
  4. + mettre en évidence la méthode sur le graphique.

  • Analyse d’un fichier texte:
  1. Écrire un programme qui ouvre un fichier texte et l’analyse en affichant le nombre de mots contenus dans le fichier, le nombre de paragraphes, …
  2. + Le programme doit faire une étude statistique afin de reconnaître dans quelle langue est écrit le texte analysé.

  • Encadrement d’une racine d’une fonction par dichotomie et/ou méthode de newton:
  1. Recherche sur ces deux méthodes.
  2. Écriture d’un programme donnant un encadrement d’une racine avec la précision demandée

  • Écriture d’un entier (binaire, décimale, hexadécimale):
  1. L’utilisateur entre la base d’écriture du nombre (décimal, binaire, hexadécimale).
  2. Le programme affiche les écritures complémentaires (dans les bases non donnée par l’utilisateur).
  3. +++ affichage en chiffres romains

  • Création d’un site internet à l’aide d’un système de gestion de contenu:
  1.  Trouver un hébergeur (gratuit!!).
  2. Installer et configurer selon utilisation souhaitée.
  3. + Modifier à la main des fichiers css ou autres pour personnaliser.
  4. Utiliser ce site pour présenter vos travaux

  • Palindrome:

Objectif: a palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.  Find the largest palindrome made from the product of two 3-digit numbers.

  1. Créer un programme qui génère les palindromes produits de deux nombres à trois chiffres.
  2. + Optimiser la vitesse de calcul.++ Généraliser à plus de 3 chiffres.

  • Calcul d’une aire par la méthode de Monte Carlo:

Obectif: calcul d’une aire définie par une courbe de fonction.

  1. Tracer la courbe d’une fonction positive (librairie pylab).
  2. L’encadrer dans un rectangle, bombarder ce rectangle de points aléatoires, et par méthode statistique donner une valeur approchée de l’aire sous la courbe.
  3. Animer graphiquement.
  4. + estimer pi.
  5. ++ comparer avec la méthode des rectangles.

 

Deuxième série de mini-projets:

Listes miniprojets vague2_2017

  • Fonctions sur les rationnels

  • Robot suiveur de ligne

  • Fonctions sur les nombres complexes

  • Stéganographie (image dans image)

  • Stéganographie (texte dans image)

  • Bataille navale

  • Analyse d’un texte
  • …..