0% ont trouvé ce document utile (0 vote)
6 vues11 pages

Sous Programmes

Ce document présente une leçon sur les sous-programmes en programmation, en mettant l'accent sur leur importance pour la modularité et la réduction de la redondance dans le code. Il inclut des activités pratiques pour écrire des programmes en Python, ainsi que des définitions et des exemples de fonctions et de procédures. Les concepts de passage de paramètres par valeur et par référence sont également abordés.

Transféré par

elaagharsellaoui12
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues11 pages

Sous Programmes

Ce document présente une leçon sur les sous-programmes en programmation, en mettant l'accent sur leur importance pour la modularité et la réduction de la redondance dans le code. Il inclut des activités pratiques pour écrire des programmes en Python, ainsi que des définitions et des exemples de fonctions et de procédures. Les concepts de passage de paramètres par valeur et par référence sont également abordés.

Transféré par

elaagharsellaoui12
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

3 éme Scientifiques Leçon 3 : Les sous programmes

Règles de jeu :
Deux joueurs veulent lancer le jeu des cartes. Ils doivent suivre les étapes suivantes :

Chaque joueur tire cinq cartes aléatoires ayant


les nombres entre 1 et 10,
Ils calculent chacun sa somme des nombres,
Celui qui a la somme la plus petite va donner à son
adversaire sa carte la plus grande.

Exemple :

Analyse :
Entrées Traitement Sorties

Prof : Nejla MAHJOUB ABDELLATIF


2
3 éme Scientifiques Leçon 3 : Les sous programmes

Prof : Nejla MAHJOUB ABDELLATIF


3
3 éme Scientifiques Leçon 3 : Les sous programmes

Activité 1 :
Charger les programmes "[Link]" et "[Link]" enregistrés dans votre dossier de travail puis les
exécuter.
1. Que remarquez-vous ?
……………………………………………………………………………………………………………………………………..
2. Quelles sont les points de différence entre les deux programmes ?
………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………..

Déduction :

L’utilisation des ……………….. dans le programme 2 a permis de ……………….. les lignes de code
et d’………………….. la redondance d’où ……………………………………..

Pour quoi les sous programmes (la modularité) ?


Certains problèmes conduisent à des …………………………., ……………….. à écrire et à comprendre. On les
………………. en des parties appelées ………………………… ou …………………………….
Les fonctions et les procédures sont des modules (suite d’instructions) …………………… désignés par un nom.
Elles ont plusieurs intérêts :
Permettent de ……………… les programmes, càd de mettre en commun les parties qui se ………………..
Permettent une ………………………. et une meilleure ……………………… des programmes.
Facilitent la …………………………. de code (il suffit de modifier une seule fois).
Ces procédures et fonctions peuvent éventuellement être ……………… dans d’autres programmes.

Programme
principal

Niveau 1 de
décomposition SP1 SP3
SP2

Niveau 2 de
SP3_2 décomposition
SP3_1

-Schéma 1 : décomposition modulaire—

Prof : Nejla MAHJOUB ABDELLATIF


4
3 éme Scientifiques Leçon 3 : Les sous programmes

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

Pour résoudre ce problème il faut


utiliser la fonction ……………..

Définition d’une fonction :

Une fonction est un ……………………….. qui retourne une valeur ……………. en fonction des valeurs passées
……………………….. :

Résultat
fonction
Paramètres d’entrée

Une fonction prend zéro ou plusieurs …………………….. et renvoie éventuellement ………………. résultat de
………………………………… (entier, réel, booléen, caractère ou chaine de caractères)
Une fonction qui ne retourne pas de résultat est ………………………………..

Comment définir une fonction ?

En Python la déclaration d’une fonction se fait toujours …………… le programme ……………………….. :

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

Prof : Nejla MAHJOUB ABDELLATIF


5
3 éme Scientifiques Leçon 3 : Les sous programmes

Solution :

Algorithme de programme principal : Algorithme de la fonction Cube :


Algorithme Volume_Sphère fonction CUBE (x : réel) :réel

début début

Ecrire ("Donner le rayon : ") c←x*x*x

Lire(R) retourner c

V←(4 * pi * cube ( R ) )/3 fin

Ecrire ("Le volume de sphère = " , V) T.D .O locaux :


fin Objet Type/Nature

T.D .O Globaux c Réel/variable

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 …………………………... et elle peut apparaître dans plusieurs
emplacements :

Variable…….. nom_fonction(parE1, …, parEn) Variable……. nom_fonction(parE1, …, parEn)


affectation

………………..(nom_fonction(parE1, …, parEn)) …………. (nom_fonction(parE1, …, parEn)


affichage

➢ ……. (nom_fonction(parE1, …, parEn) = valeur) ➢ …… (nom_fonction(parE1, …, parEn) = =valeur)


condition ➢ …………… (nom_fonction(parE1, …, parEn) = valeur) ➢ ………..(nom_fonction(parE1,…,parEn)== valeur)

➢ ……………… (nom_fonction(parE1,…, parEn) = valeur)

Prof : Nejla MAHJOUB ABDELLATIF


6
3 éme Scientifiques Leçon 3 : Les sous programmes

Application :
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.

Algorithme de programme principal : Algorithme de la fonction fact :

T.D .O Globaux
Objet Type/Nature
T.D .O locaux :
Objet Type/Nature

Programme en python :

Prof : Nejla MAHJOUB ABDELLATIF


7
3 éme Scientifiques Leçon 3 : Les sous programmes

Activité n°1 :

On désire écrire un programme Division qui permet de saisir deux entiers N et D avec D≠0 puis d’afficher
leur quotient et reste.
Décomposer le problème en module.

Pour résoudre ce problème on peut utiliser :


✓ Un module pour ……………………………………… qui prend deux objet …………………puis les …………………,
✓ Un module pour le ……………………………………….. qui renvoie …………………………………,
✓ Un module ……………………….. qui renvoie …………………………………..
Les modules proposés ne peuvent pas être des ………………….. donc ils seront déclarés comme étant

……………………………
..

Définition d’une procédure :

Une procédure est un sous-programme qui retourne ………………………. objets en fonction des valeurs
passées en entrée :

………………………………
Paramètres d’entrée …………… …………………….

Une procédure prend zéro ou plusieurs paramètres et renvoie éventuellement zéro résultat ou un seul
résultat de type simple ou ……………………. (exemple : ……………………….) ou plusieurs résultats.

Prof : Nejla MAHJOUB ABDELLATIF


8
3 éme Scientifiques Leçon 3 : Les sous programmes

Comment définir une procédure ?

En Python la déclaration d’une procédure se fait toujours …………………….le programme ………………………….. :

Procédure nom_procédure (parf1 : type1, parf2 :type2, …, parfn :typen) def nom_procedure (parf1, parf2, …, parfn) :
début Bloc d’instructions
bloc d’instructions ……
fin

Comment appeler une procédure ?

En algorithme ou en python, l’appel de la procédure se fait dans une ligne entière de la manière suivante :
…………………………………………………………………………………..
N.B : les paramètres formels et effectifs doivent s’accorder en …………………., ………………….. et ………………..

Solution :

Algorithme de programme principal : Algorithme de la procédure …………………… :

Prof : Nejla MAHJOUB ABDELLATIF


9
3 éme Scientifiques Leçon 3 : Les sous programmes

Algorithme de la procédure ………………..: Algorithme de la procédure …………………….:

Programme en python :

Prof : Nejla MAHJOUB ABDELLATIF


10
3 éme Scientifiques Leçon 3 : Les sous programmes

Activité n°1 :

Ecrire un programme maximum qui permet de saisir deux nombres (x et y) puis d’appeler une fonction max qui
retourne la valeur la plus grande.
…………………
Solution :

………………………………………… …………………………………………….
……………. ……………….
……………………………………………….. ……………….. ………….

………………… ………….
………
….. ………………………………………………………………. ………….
…………….. ……………………….. ………….

…………………… …… …………….

…………………………………………….. ………………….

………………. …………….

TDO Globaux : TDO Locaux :

Objet Type/Nature Objet Type/Nature

……………………. ………………………… …. ………………………….

………………. ………………………

Les paramètres formels :

Ils sont placés dans ……………………… d’un sous-programme, réellement ils n’ont pas de ………………… mais lors de
l’appel ils seront …………………………….. par les paramètres ……………….. Exemple : …….. et ……… de la fonction ………..

Les paramètres effectifs :

Ils sont placés dans ……………….. d’un sous-programme, ils contiennent de …………………..utilisées lors de traitement.
Exemple : ………. et………. du programme ……………………...

Prof : Nejla MAHJOUB ABDELLATIF


11
3 éme Scientifiques Leçon 3 : Les sous programmes

Selon …………………………… de déclaration, on peut avoir deux types de variables (objets) dans une fonction : des
variables …………………… ou des variables …………………………….
La portée désigne l’emplacement de définition et la ……………………………… d’une variable(objet).

Variable locale :

Elle est déclarée dans ………………………. d’un sous-programme. Elle ……………………….. qu’à l’intérieur de module dans
lequel a été déclarée.
Exemple : ………. de la fonction ……………….

Variable globale :

Elle est définie ……………………………. d’un sous-programme. Elle est visible et utilisable dans tout le programme mais
la fonction ne peut pas la ………………………..
Exemple : ………., ………… et ………… du programme ……………………….

Remarque : en python il est possible de modifier une variable globale dans un module si seulement si cette
variable est déclarée dans le sous-programme avec le mot ……………………………….
Voir solution 1 programme division

Les échanges d’informations entre un module et le programme principal se font par l’intermédiaire des
paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des usages différents :
Le passage par valeur et le passage par référence (adresse).

Le passage par valeur :

Dans ce type de passage, le paramètre formel reçoit uniquement une copie de la valeur du paramètre effectif. La
valeur de ce dernier ne sera jamais…………………………..
Les variables de types ……………………………………………. passent par valeur.

Le passage par référence :

Dans ce type de passage, la procédure utilise ……………………….. du paramètre effectif. Lorsqu’on utilise l’adresse du
paramètre, on accède directement à son contenu. La valeur de la variable effective sera donc ………………………….
Les variables modifiables (……………………………………………) passent par référence.

Prof : Nejla MAHJOUB ABDELLATIF

Vous aimerez peut-être aussi