Accueil › Cours › Fonctions et procédures
Fonctions et procédures en Python et algo : cours 2ème TI
Découpe un gros problème en petits morceaux réutilisables.
Les leçons de ce chapitre
- Les fonctions
- Les procédures
- Analyse modulaire
Leçon 10.1 : Les fonctions
Un sous-programme est un petit programme qui a un nom et qu'on peut appeler quand on veut, autant de fois qu'on veut. Il évite de recopier le même code. Il existe deux sortes : les fonctions (elles renvoient une valeur) et les procédures (elles font une action).
Écrire une fonction
- Algorithme :
DEF FN nom (paramètre : Type) : Type du résultat, un corps entreDébutetFin, etRetourner valeur. - Python :
def nom(paramètre):suivi d'un bloc décalé avecreturn valeur. - Appel :
carre(7): la valeur renvoyée remplace l'appel dans l'expression.
Paramètres
Les paramètres sont les valeurs que la fonction reçoit (les entrées). return donne le résultat et termine la fonction : les lignes après un return exécuté ne sont pas lues.
Attention : Une fonction qui n'a pas de return renvoie None (rien). Si ton programme affiche None, tu as sûrement oublié le return.
En Python
On définit la fonction avant de l'utiliser. Le programme principal est en dessous.
def carre(x):
return x * x
print("Donner un nombre :")
n = int(input())
print("Son carré est", carre(n))
En algorithme
La fonction s'écrit avant l'algorithme principal.
DEF FN carre (x : Entier) : Entier
Début
Retourner x * x
Fin
Algorithme Principal
Début
Ecrire("Donner un nombre :")
Lire(n)
Ecrire("Son carré est ", carre(n))
Fin
TDO
Objet | Type/Nature
n | Entier
Leçon 10.2 : Les procédures
Une procédure fait une action (afficher, modifier…) mais ne renvoie rien. On l'appelle comme une instruction. En algorithme : DEF PROC nom (paramètres). En Python, c'est une fonction sans return.
- Fonction : on s'en sert dans une expression (
x ← carre(3) + 1). - Procédure : on l'appelle seule (
bonjour("Amira")).
Astuce : Question de méthode : si le sous-programme doit donner un résultat au programme principal, c'est une fonction. S'il doit seulement afficher ou changer quelque chose, c'est une procédure.
Attention : Les variables créées dans un sous-programme sont locales : elles n'existent que pendant son exécution. Le programme principal ne les voit pas.
En Python
La procédure bonjour est appelée deux fois, avec deux paramètres différents.
def bonjour(nom):
print("Bonjour", nom)
bonjour("Amira")
bonjour("Sami")
En algorithme
Une procédure s'appelle simplement par son nom.
DEF PROC bonjour (nom : Chaîne)
Début
Ecrire("Bonjour ", nom)
Fin
Algorithme Principal
Début
bonjour("Amira")
bonjour("Sami")
Fin
Leçon 10.3 : Analyse modulaire
L'analyse modulaire consiste à découper un problème en modules : chaque module est un sous-programme qui fait une seule chose. Le programme principal les appelle dans le bon ordre. C'est plus facile à écrire, à tester et à corriger.
La méthode
- Lis l'énoncé et note ce qu'il faut calculer et ce qu'il faut afficher.
- Cherche les petites tâches qui reviennent : « est-ce que ce nombre est premier ? » est un bon module.
- Écris chaque module et teste-le seul avant de l'assembler.
Astuce : Dans un devoir, on te demande souvent de donner le TDO et le rôle de chaque module. Prends l'habitude d'écrire en une phrase ce que fait chaque sous-programme.
En Python
Le module est_premier répond à une seule question. Le programme principal compte les nombres premiers de 1 à n.
def est_premier(n):
if n < 2:
return False
for d in range(2, n):
if n % d == 0:
return False
return True
n = int(input())
c = 0
for k in range(1, n + 1):
if est_premier(k):
c = c + 1
print("Nombre de premiers :", c)
En algorithme
Les variables locales du module sont déclarées dans son propre TDO, avant son Début.
DEF FN est_premier (n : Entier) : Booléen
TDO
Objet | Type/Nature
d | Entier
Début
Si n < 2 Alors
Retourner faux
FinSi
Pour d de 2 à n - 1 Faire
Si n mod d = 0 Alors
Retourner faux
FinSi
FinPour
Retourner vrai
Fin
Algorithme Premiers
Début
Lire(n)
c ← 0
Pour k de 1 à n Faire
Si est_premier(k) Alors
c ← c + 1
FinSi
FinPour
Ecrire("Nombre de premiers : ", c)
Fin
TDO
Objet | Type/Nature
n, c, k | Entier
S'entraîner gratuitement
Chaque leçon a 3 exercices gratuits avec indices pour appliquer ce chapitre avec Hannibot.
← Chapitre précédent : Les tableaux · Chapitre suivant : Pages web : HTML →
Tous les chapitres · Voir les devoirs corrigés de 2ème TI
Cours écrit pour Mission Carthage d'après le programme officiel. Ton professeur reste la référence.