Exercices 5

  1. Écrire une fonction nommée fibo() qui prend un entier n en paramètre et qui renvoie le nième terme de la suite de Fibonacci. La suite de Fibonacci est une suite où chaque terme est égal à la somme des deux termes précédents. Les deux premiers termes sont égaux à 1. Les termes sont numérotés à partir de 1.

  2. Écrire une fonction nommée pgcd() qui prend deux entiers en paramètres et renvoie le “Plus Grand Commun Diviseur”. Le PGCD peut être calculé en utilisant les relations suivantes:

    pgcd(a,b)={asi b=0,pgcd(b,a%b)sinon. pgcd(a, b) = \begin{cases} a & \text{si } b = 0, \\ pgcd(b, a \% b) \: & \text{sinon}. \end{cases}

  3. Écrire une fonction nommée sqrt() qui calcule la racine carrée intérativement. Pour calculer la racine carrée, on peut utiliser le principe suivant: si rr est une approximation de la racine carrée de xx alors r+xr2\frac{r + \frac{x}{r}}{2} est une meilleure approximation. Comment contrôler la précision du résultat ?

  4. Écrire un programme qui affiche la figure suivante avec turtle:

    Le flocon de Koch

    Cette figure est composée de trois courbes construites selon le principe suivant :

    Construction d’un segment

Défis

  1. Écrire un programme qui résout le problème des Tours de Hanoï.

    Les tours de Hanoï

    Le problème consiste en trois poteaux (A, B et C) et un certain nombre de disques de différentes tailles, empilés par ordre décroissant de taille sur le poteau A. L’objectif est de déplacer tous les disques du poteau A vers le poteau C, en suivant les règles suivantes :

    • Vous ne pouvez déplacer qu’un disque à la fois.
    • Un disque ne peut être placé que sur un autre disque plus grand ou sur un poteau vide.

    Votre programme doit demander le nombre de disques à déplacer n et afficher la séquence de mouvements nécessaires pour résoudre le problème, en respectant les règles ci-dessus.

    Votre programme doit afficher chaque mouvement sous la forme “Déplacez un disque de A vers C”.

    Exemple de sortie pour n = 3 :

    Déplacez un disque de A vers C Déplacez un disque de A vers B Déplacez un disque de C vers B Déplacez un disque de A vers C Déplacez un disque de B vers A Déplacez un disque de B vers C Déplacez un disque de A vers C

    Ce qui correspond aux étapes suivantes :

    Resolution pour trois disques