Quelques exercices de programmation classiques

Échauffement

Après :

   1 a = 1
   2 b = 'Ceci n’est pas un nombre.'
   3 a = b
   4 b = a

que valent a et b ?

Ce qui suit est une astuce pythonesque :

   1 a = 1
   2 b = 'Ceci n’est pas un nombre.'
   3 a,b = b,a

Pouvez-vous expliquer la différence ?

Fonctions de base

Écrivez une fonction :

   1 def max(a,b):
   2         ...

qui renvoie le plus grand des arguments (en supposant que ces arguments peuvent être comparés avec <).

Écrivez une fonction :

   1 def moy(a,b):
   2         ...

qui renvoie la moyenne des arguments (en supposant qu’il s’agit de nombres).

Un peu d’arithmétique

Écrivez une fonction :

   1 def fact(n):
   2         ...

qui renvoie la factorielle de l’entier naturel n.

Écrivez une fonction :

   1 def est_premier(n):
   2         ...

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 :

   1 def nb_premiers(n):
   2         ...

qui renvoie le nombre de nombres premiers strictement inférieurs à n.

Écrivez une fonction :

   1 def premier_suivant(n):
   2         ...

qui renvoie le premier nombre premier strictement supérieur à n.

Écrivez une fonction :

   1 def premier_numéro(n):
   2         ...

qui renvoie le n-ième nombre premier.

Écrivez une fonction :

   1 def pgcd(p,q):
   2         ...

qui renvoie le PGCD des entiers p et q.

Sommes

Écrivez une fonction :

   1 def somme_1(n):
   2         ...

qui renvoie la somme des entiers naturels de 1 à n.

Écrivez une fonction :

   1 def somme_2(n):
   2         ...

qui renvoie la somme des carrés des entiers naturels de 1 à n.

Écrivez une fonction :

   1 def somme_k(k,n):
   2         ...

qui renvoie la somme des puissances k-ièmes des entiers naturels de 1 à n.

Écrivez une fonction :

   1 def somme_f(f,n0,n1):
   2         ...

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 :

   1 def identite(x):
   2         return x
   3 def carre(x):
   4         return x*x
   5 somme_f(identite,0,10)==somme1(10)
   6 somme_f(carre,0,10)==somme2(10)

Écrivez une fonction :

   1 def integrale(f,x0,x1,n):
   2         ...

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.

EnsInfo: Algorithmique élémentaire en Python (last edited 2019-01-23 00:40:42 by LionelVaux)