Exercices
Travail à réaliser sur le notebook Capytale du lien suivant:
Exercice 1
Définissez une fonction maxi(n1,n2)
qui renvoie le plus grand élément entre n1
et n2
.
Testez votre fonction maxi(n1,n2)
à l'aide d'une fonction test_maxi()
Vous pouvez utiliser la fonction de tests ci-dessous :
1 2 3 4 5 |
|
Exercice 2
Définissez une fonction decale(lettre)
qui décale de 3 rangs dans l'alphabet la lettre majuscule lettre
passée en argument (après Z, on recommencera à A..)
Testez votre fonction decale(lettre)
à l'aide d'une fonction test_decale()
Aide :
>>> ord('A')
65
>>> chr(65)
'A'
Vous pouvez utiliser la fonction de tests ci-dessous :
1 2 3 4 |
|
Exercice 3
Définissez une fonction decale_n(lettre, n)
en ajoutant un paramètre n
à la fonction précédente pour pouvoir décaler la lettre de n
rangs.
Testez votre fonction decale_n(lettre, n)
à l'aide d'une fonction test_decale_n()
Vous pouvez utiliser la fonction de tests ci-dessous :
1 2 3 4 5 |
|
Exercice 4
Utilisez la fonction précédente pour créer la fonction decale_phrase(p, n)
qui décale toutes les lettres d'une phrase p
de n
rangs.
Exercice 5
Décodez la phrase RT BTHHPVT CT RDCIXTCI GXTC S XCITGTHHPCI
.
Exercice 6
La conjecture de Syracuse (ou de Collatz) postule ceci :
Prenons un nombre \(n\) : si \(n\) est pair, on le divise par 2, sinon on le multiplie par 3 puis on ajoute 1. On recommence cette opération tant que possible. Au bout d'un certain temps, on finira toujours par tomber sur le nombre 1.
- Écrire une fonction
suivant(n)
qui renvoie le successeur du nombren
, suivant les règles énoncées ci-dessus. - Écrire une fonction
syracuse(n)
qui affiche tous les termes de la suite de Syracuse jusqu'à (on l'espère !) 1.
Exercice 7
- Écrire une fonction
temps_de_vol(n)
qui renvoie le nombre d'étapes pour arriver à 1, en partant den
- Écrire une fonction
temps_max(nmax)
qui affiche le plus grand temps de vol pour un nombre entre 1 etnmax
. - Modifier cette fonction pour afficher aussi le nombre de départ donnant ce plus grand temps de vol.