Pour Quoi Les Sous Programmes ?: La Modularité
Pour Quoi Les Sous Programmes ?: La Modularité
Pour Quoi Les Sous Programmes ?: La Modularité
Activité 1 :
Charger les programmes "jc1.py" et "jc2.py" enregistrés dans votre dossier de travail puis les
exécuter.
1. Que remarquez-vous ?
Les deux programmes jouent le même rôle.
2. Quelles sont les points de différence entre les deux programmes ?
Le programme 1 contient des parties répétées (similaires) et il est plus long et plus
compliqué.
Le programme 2 contient moins de lignes de code avec moins de redondance et il est
plus clair.
Le programme 2 utilise des nouveaux termes comme def et return pour implémenter
des modules (sous programmes).
Déduction :
L’utilisation des modules dans le programme 2 a permis de diminuer les lignes de code et
d’éviter la redondance d’où la simplicité de résolution.
Programme
principal
Niveau 1 de
décomposition SP1 SP3
SP2
Niveau 2 de
SP3_2 décomposition
SP3_1
Activité n°1 :
Ecrire un programme volume_sphère qui permet de saisir un rayon R puis de retourner le volume de
sphère sachant que : volume sphère = (4 * pi * cube ( R ) )/3
Une fonction est un sous-programme qui retourne une valeur générée en fonction des valeurs
passées en entrée :
Résultat
Paramètres d’entrée fonction
Une fonction prend zéro ou plusieurs paramètres et renvoie éventuellement un seul résultat de
type simple (entier, réel, booléen, caractère ou chaine de caractères)
Une fonction qui ne retourne pas de résultat est une procédure.
Fonction nom_fonction (parf1 :type1, parf2 :type2, …, parfn :typen) :type résultat def nom_fonction (parf1, parf2, …, parfn) :
début Bloc d’instructions
bloc d’instructions ……
retourner résultat Return expression
fin
Solution :
début début
Lire(R) retourner c
Objet Type/Nature
Pi Constante=3,14
R,V Réel/variable
Cube fonction
En python :
Fonction
CUBE
Programme
Comment appeler une fonction ? principal
L’appel d’une fonction se fait toujours après sa déclaration et elle peut apparaître dans plusieurs
emplacements :
Application 1 :
Ecrire un algorithme intitulé Combinaison qui affiche le nombre de combinaisons de p objets parmi n avec
n et p deux entiers naturels strictement positifs et n≥p.
fin
T.D .O Globaux
Objet Type/Nature
n,p,c Entier/variable
fact fonction
Application 2 :
On désire implémenter une dérivée de jeu MOTUS en suivant les règles suivantes :
L’ordinateur commence par choisir aléatoirement une chaine alphabétique composée de 8 lettres
majuscules puis affiche sa première lettre.
L’utilisateur va tenter au maximum 8 fois pour deviner la chaîne, à chaque fois l’ordinateur :
Vérifie que la chaîne est valide ou non, dans le cas contraire il lui affiche un message
d’erreur,
Si la chaine saisie est la même choisie par l’ordinateur alors il lui affiche un message de
félicitations,
Sinon il cherche les lettres correctes et les affiche à leurs places puis remplace celles
incorrectes par des étoiles "*".
Exemple 1 :
Mot de l’ordinateur : CALCULER Le mot commence par : C
Premier essai camionnette la chaine doit être formée de 8 lettres majuscules
Deuxième essai CANICHES CA****E*
Troisième essai CALIBRES CAL***E*
Quatrième essai CHALLETS C*******
Cinquième essai CASTINGS CA******
Sixième essai CAILLOUX CA******
Septième essai COLAGENE C*L*****
Huitième essai CALEMERO ;( jeu perdu le mot était CALCULER
Exemple 2 :
Mot de l’ordinateur : GENERALE Le mot commence par : G
Premier essai GENETIKE GENE****
Deuxième essai GOULOIRE G******E
Troisième essai GENERALE Bravoooo
Travail demandé :
1. Décomposer le problèmes en utilisant des fonctions,
2. Ecrire l’algorithme du programme principal ainsi que les algorithmes de chaque fonction,
3. Implémenter le programme en python.
Analyse de problème :
Motus
sinon
écrire(commun(mot,ch))
fin si
jusqu’à (nb>8)ou(mot=ch)
si nb>8 alors
écrire("jeu perdu et le mot était ", mot)
fin si
fin
T.D.O. globaux
objet Type/nature
Mot,ch Chaîne de caractères/var
Nb Entier/variable
Generer, verif, commun fonction