Académique Documents
Professionnel Documents
Culture Documents
Module :
Les sous programmes
Objectif :
Décomposer un problème en sous-problèmes élémentaires
Présenter les solutions sous forme de procédures et de fonctions
Présenter les solutions sous forme d'algorithmes
Implémentation des algorithmes sous Python programmes.
Plan :
I Analyse modulaire.........................................................................................................................1
II Les procédures...............................................................................................................................3
II.1 Définition..................................................................................................................................3
II.2 Déclaration................................................................................................................................3
II.3 Appel.........................................................................................................................................3
III Les fonctions.................................................................................................................................3
III.1 Définition..................................................................................................................................3
III.2 Déclaration................................................................................................................................3
III.3 Appel.........................................................................................................................................3
IV Application :..................................................................................................................................3
Série n°1.................................................................................................................................................6
Série n°1 : correction..............................................................................................................................7
Prof : Mme RIAHI Wafa Classe : 3 SC
Matière : Programmation
Module :
Lycée : M’ghira / Fouchena
Les sous programmes Année : 2020 / 2021
I Analyse modulaire
Exercice :
Analysez puis déduisez l’algorithme d’un programme qui permet de remplir un tableau T de N entiers
positif, avec N [5..20], calcul et affiche la somme des éléments paire du tableau.
1
Prof : Mme RIAHI Wafa Classe : 3 SC
Matière : Programmation
Module :
Lycée : M’ghira / Fouchena
Les sous programmes Année : 2020 / 2021
3. écriture des sous-algorithmes : en définissant pour chacun les paramètres et les informations locales.
La structure d’un sous-programme ressemble à celle d’un programme : en-tête, déclarations, bloc
d’instructions.
Algorithme de la procédure SAISIE
0) def PROC SAISIE (var x: entier; var V: tableau de 20 entiers)
1) répéter
Ecrire (``Donner un entier n dans [5..20] :``)
Lire (x)
Jusqu'à x dans [5..20]
2) Pour i de 1 à x faire
Répéter
Ecrire (``Donner V[``,i,``] : ``)
Lire (V[i])
Jusqu’à V[i]>=0
Fin pour
3) fin SAISIE
T.D.O locaux
objet Type _ nature rôle
i Entier Compteur
2
Prof : Mme RIAHI Wafa Classe : 3 SC
Matière : Programmation
Module :
Lycée : M’ghira / Fouchena
Les sous programmes Année : 2020 / 2021
II Les procédures
II.1 Définition
Les procédures sont des sous-programmes qui peuvent avoir zéro, un ou plusieurs résultats.
II.2 Déclaration
La définition d’une procédure est constituée de trois parties :
a) L’en tête : Cette partie comporte le descripteur Proc, le nom de la procédure suivie de l’ensemble des
paramètres formels qui sont mis entre parenthèses. Chaque paramètre sera précédé par son mode de passage
et suivi du type qui lui correspond.
b) La déclaration : Cette partie sera réservée à la déclaration des objets locaux (sils existent) propre à la
procédure.
c) Le corps : qui contient l’ensemble des instructions de développement de la procédure.
Syntaxe en algorithmique
0) Def Proc Nom_procédure (paramètres formels)
1) Instruction1
2) Instruction2
…
n) Fin Nom_procédure
- C'est le mot-clé var qui dit si le passage se fait par valeur (pas de var) ou par variable (présence du var).
Pas de var = donnée ; présence du var = donnée/résultat.
- Si plusieurs paramètres ont le même type, on peut écrire leur identificateur séparé par une virgule et suivi
du type commun ; un point virgule sépare la déclaration de chaque paramètre.
- Attention : redéclarer un paramètre comme variable locale provoque une erreur à la compilation.
II.3 Appel
L’appel d’une procédure se fait simplement en indiquant son nom suivi entre parenthèses de la liste des
paramètres effectifs séparés par une virgule : Nom_procédure (paramètres effectifs) ;
III Les fonctions
III.1 Définition
Les fonctions sont des sous-programmes qui fournissent un seul résultat de type simple (entier, réel,
caractère, chaine de caractères, booléen) à partir d’une liste de paramètres par valeur
III.2 Déclaration
a) L’en tête : Cette partie comporte le descripteur FN, le nom de la fonction suivi de l’ensemble des
paramètres formels qui sont mis entre parenthèses. Chaque paramètre sera suivi du type qui lui correspond.
Puis le type du résultat renvoyé par cette fonction précédé par le signe :.
b) La déclaration : Cette partie sera réservée à la déclaration des objets locaux propre à la fonction.
c) Le corps : qui contient l’ensemble des instructions de développement de la fonction.
Syntaxe en algorithmique
0) Def Fn Nom_fonct (p formels) : type_résultat
1) Instruction1
2) Instruction2
…
n-1) Fn Nom_fonct résultat
n) Fin Nom_fonct
- Il existe de nombreuses fonctions prédéfinies qu’il n’est pas besoin de déclarer (exemple ORD (car),
ABS(x), SQR(x)…).
III.3 Appel
L’appel d’une fonction se fait toujours dans :
- une expression d’affectation : Nom_variable FN Nom_fonction (paramètres effectifs)
- instruction d’écriture : Ecrire (FN Nom_fonction (paramètres effectifs))
- ou condition : Si FN Nom_fonction (paramètres effectifs) = …
IV Application :
Série n° 1 : Exercice n° 1 .. Exercice n° 5
3
Prof : Mme RIAHI Wafa Classe : 3 SC
Matière : Programmation
Module :
Lycée : M’ghira / Fouchena
Les sous programmes Année : 2020 / 2021
Python
Fonctionnement :
en Python, l'écriture d'une fonction commence toujours par le mot def.
vous pouvez choisir le nom que vous voulez pour la fonction.
les variables sont déclarées entre parenthèses, séparées par des virgules, juste
après le nom de la fonction.
comme les instructions if, for ou while, l'instruction def est une instruction
composée : la ligne démarrant l'instruction def est terminée par deux points « : »,
lesquels introduisent un bloc d'instructions qui doit être indenté.
La fonction s'utilise ensuite dans le reste du programme par un simple appel :
Nom_De_La_Fonction(Valeurs_des_Variables)
Remarques :
Des fonctions, nous en utilisons depuis le premier module : l'instruction «
print("Bonjour") » n'est autre que l'appel de la fonction print, avec en argument
la valeur de variable « "Bonjour" ».
En effet, Python comprend un très grand nombre de fonctions prédéfinies : des
fonctions déjà définies par les développeurs de Python.
A celles-ci, nous allons maintenant en ajouter d'autres, que nous coderons nous-
mêmes en fonction de nos besoins.
4
Prof : Mme RIAHI Wafa Classe : 3 SC
Matière : Programmation
Module :
Lycée : M’ghira / Fouchena
Les sous programmes Année : 2020 / 2021
5
Prof : Mme RIAHI Wafa Module : Les sous programmes Classe : 3 SC
Matière : Programmation Lycée : M’ghira / Fouchena
Série n° 1 Année : 2020 / 2021
Série n°1
Exercice n° 1
Analysez puis déduisez l’algorithme d’un programme qui permet de remplir un tableau T de N entiers
positif, avec N [5..20], calcul et affiche la somme des éléments paire du tableau.
N.B Appliquer l’analyse modulaire pour résoudre ce problème.
Exercice n° 2
Ecrire une analyse un algorithme d’un programme intitulé DUREE qui permet de convertir une durée d
donnée en secondes (avec 400 <= d <=70 000) en heures, minutes et seconde, et d’afficher les résultats.
N.B : La solution doit comporter au moins deux modules.
Exercice n° 3
Exercice n° 4
Exercice n° 5
6
Prof : Mme RIAHI Wafa Module : Les sous programmes Classe : 3 SC
Matière : Programmation Lycée : M’ghira / Fouchena
Série n°1 : Correction Année : 2020 / 2021
Exercice n° 2
1. analyse du programme principal :
NOM : DUREE
Résultat : PROC affiche (d,hr,min,sec)
[hr, min, sec] = PROC conversion(d,hr,min,sec)
[d] = PROC saisie(d)
Fin DUREE
7
Prof : Mme RIAHI Wafa Module : Les sous programmes Classe : 3 SC
Matière : Programmation Lycée : M’ghira / Fouchena
Série n°1 : Correction Année : 2020 / 2021
Exercice n°3
Exercice n°4
8
Prof : Mme RIAHI Wafa Module : Les sous programmes Classe : 3 SC
Matière : Programmation Lycée : M’ghira / Fouchena
Série n°1 : Correction Année : 2020 / 2021
Exercice n°5