Aller au contenu principal

Travail 3 : TODO

  • Plusieurs fichiers

autre possibilité

faire une visualisation de données sur le rechauffement https://www.youtube.com/watch?v=uhxiXOTKzfs

autre possibilité distance entre chaine de caractères

  • trouver des mots avec une distance d'édition de 1, 2 etc.
  • trouver des anagrammes dans un fichier dictionnaire

tri de crepes pancake sorting

On imagine qu'on a une pile de crepes de différentes tailles et qu'on veut les trier en ordre croissant. On peut retourner la pile de crepes à un certain endroit pour les trier.

Algorithme de tri de base

Dans un fichier de code, on peut écrire un algorithme de tri de crepes de base suivant :

def trierCrepe(crepes: List[int]) -> List[int]:
for i in range(len(crepes), 0, -1):
maxIndex = crepes.index(max(crepes[:i]))
crepes = crepes[:maxIndex + 1][::-1] + crepes[maxIndex + 1:]
crepes = crepes[:i][::-1] + crepes[i:]
return crepes

visualisation

On voudrait avoir une methode pour visualiser les crepes dans la console pour pouvoir comprendre le fonctionnement de l'algorithme.

def visualiserCrepe(crepes: List[int]):
for crepe in crepes:
print(crepe * "*")

Variante des crepes brulees

Ici chaque crepe a un côté brulé et un côté non brulé. On veut trier les crepes de manière à ce que les crepes brulées soient en bas et les crepes non brulées en haut.

  • visualiser une crepe
  • implanter un algorithme de tri et visualiser les étapes

Le jeu de la vie

Dans ce dernier TP, nous allons regarder comment produire un projet avec plusieurs fichiers.

Trop dur à intégrer

La plupart des fonctions sont difficiles à intégrer. On sait dériver mais intégrer des fois, c'est trop dur.

En physique, on néglige souvent une force parce qu'on n'est pas capable de l'intégrer.

Voici un code pour tenter d'intégrer la fonction x^2 sur un intervalle allant de a à b en utilisant la méthode des trapèzes.

def integrale(a: float, b: float, n: int) -> float:
h = (b - a) / n
somme = 0
for i in range(n):
somme += (a + i * h) ** 2 + (a + (i + 1) * h) ** 2
return somme * h / 2

On peut regarder à quel point cette méthode s'approche de la réelle valeur pour n valant 10, 100, 1000, 10000, 100000, 1000000.

http://hplgit.github.io/prog4comp/doc/pub/p4c-sphinx-Python/._pylight004.html

Trouver la trajectoire d'une balle de densité d lancée a une certaine vitesse avec du vent en bas contraire et du vent en haut favorable