Quelques exercices de programmation classiques
Échauffement
Après :
que valent a et b ?
Ce qui suit est une astuce pythonesque :
Pouvez-vous expliquer la différence ?
Fonctions de base
Écrivez une fonction :
qui renvoie la moyenne des arguments (en supposant qu’il s’agit de nombres).
Écrivez une fonction :
qui renvoie le plus grand des arguments (en supposant que ces arguments peuvent être comparés avec <).
À l’aide de max2, écrivez une fonction
qui renvoie le plus grand des arguments parmi trois.
Écrivez une fonction :
qui renvoie l’élément médian.
Boucles
Voici une fonction qui calcule quelque chose :
Sans rien comprendre à ce que fait cette fonction, vous devriez pouvoir en écrire une qui fait exactement la même chose, en utilisant une boucle while au lieu de la boucle for.
Voici une autre fonction :
Essayez de deviner ce que renvoie g(5,2), puis vérifiez. Même question pour g(0,2), puis g(100,3). Que fait g(1,0) ? Et finalement que fait g(x,y) quand x et y sont des entiers positifs et y est non nul. Savez-vous le prouver ?
Un peu d’arithmétique
Écrivez une fonction :
qui renvoie la factorielle de l’entier naturel n.
Écrivez une fonction :
qui renvoie True si l’entier naturel n est premier et False sinon (on ne vous demande pas quelque chose d’astucieux ou d’efficace).
Écrivez une fonction :
qui renvoie le nombre de nombres premiers strictement inférieurs à n.
Écrivez une fonction :
qui renvoie le premier nombre premier strictement supérieur à n.
Écrivez une fonction :
qui renvoie le n-ième nombre premier.
Écrivez une fonction :
qui renvoie le PGCD des entiers p et q.
Sommes
Écrivez une fonction :
qui renvoie la somme des entiers naturels de 1 à n.
Écrivez une fonction :
qui renvoie la somme des carrés des entiers naturels de 1 à n.
Écrivez une fonction :
qui renvoie la somme des puissances k-ièmes des entiers naturels de 1 à n.
Écrivez une fonction :
qui renvoie la somme des valeurs de f(n) pour n0 <= n <= n1. Notez que le deuxième argument attendu est une fonction, ce qui ne pose aucun problème à python: c’est une valeur comme les autres.
Testez par exemple :
Écrivez une fonction :
qui calcule une valeur approchée de l’intégrale de f sur l’intervalle [x0,x1] en suivant la méthode des trapèzes, avec n+1 subdivisions.
La suite
À partir de ce point, les boucles ne devraient plus avoir de secrets pour vous. Travaillons sur des structures de données séquentielles : Autour des listes.