Pour aller plus loin…

Voici des problèmes plus difficiles que ceux rencontrés jusqu'à présent. Ils sont à peu près classés par ordre de difficulté croissante (le plus facile en premier) mais vous pouvez les faire dans l'ordre de votre choix.

QCM, deuxième version

On souhaite faire un QCM (comme dans la partie précédente), mais cette fois-ci :

  • le programme ne demande qu'une seule fois la réponse à chaque question (si la réponse est fausse, il affiche Raté… et passe à la question suivante) ;
  • il affiche à la fin le nombre de bonnes réponses obtenues.
  1. Écrivez ce programme.
  2. ✋ Appelez le professeur pour vérifier votre travail (et commencez la résolution d'un autre problème en attendant).

Tables de multiplications, deuxième version

Dans la partie sur les boucles, vous avez étudié un programme qui affiche la table de multiplication d'un seul nombre. Par exemple, pour le nombre 6, ce programme affichait la liste de nombres 0, 6, 12, 18, etc.

On souhaite écrire un programme qui affiche la table de multiplication de tous les nombres de 0 jusqu'à 10 : lorsqu'on le fait fonctionner, il devra afficher ce qui suit (en remplaçant évidemment les points de suspension par la suite des tables de multiplication).

Table de multiplication de 0
0
0

Table de multiplication de 1
0
1
2

10
Table de multiplication de 2
0
2
4

20
Table de multiplication de 3
0
3
6


Table de multiplication de 10
0
10
20

100

  1. Écrivez le programme demandé.
  2. ✋ Appelez le professeur pour vérifier votre travail (et commencez la résolution d'un autre problème en attendant).

Suite de Fibonacci, version itérative

La suite de Fibonacci est la suite de nombres commençant par 0 et 1, et dont chaque nombre est la somme des deux précédents. Ainsi, les premiers termes sont : 0 1 1 2 3 5 8 13…

On souhaite écrire une fonction qui prend en argument un nombre entier n, et qui renvoit le nième terme de la suite de Fibonacci : ainsi, en complétant le programme suivant, il doit afficher les nombres 3 et 218922995834555169026.

def fibonacci(n):
    XXX
    XXX
    return XXX

print("Le cinquième terme est", fibonacci(5))
print("Le centième terme est", fibonacci(100))
  1. Complétez le programme précédent.
  2. ✋ Appelez le professeur pour vérifier votre travail (et commencez la résolution d'un autre problème en attendant).

Suite de Fibonacci, version récursive

On souhaite à nouveau calculer les termes de la suite de Fibonacci. Cette fois-ci, puisque chaque terme est la somme des deux précédents, la fonction va s'appeler elle-même pour calculer les deux termes précédents. Cela donne le programme suivant.

def fibonacci(n):
    XXX
    XXX
    return fibonacci(XXX) + fibonacci(XXX)

print("Le cinquième terme est", fibonacci(5))
print("Le centième terme est", fibonacci(20))
  1. Complétez le programme pour qu'il fonctionne (il devrait afficher 3 et 4181.
  2. Calculez le 100e terme de la suite de Fibonacci. Expliquer pourquoi votre programme ne fonctionne plus.
  3. ✋ Appelez le professeur pour vérifier votre travail (et commencez la résolution d'un autre problème en attendant).

Projet Euler

Si vous en êtes arrivé jusqu'ici, vous pouvez vous faire plaisir avec les problèmes du projet Euler. Bon courage !