• Aucun résultat trouvé

6. Les sous programmes :

N/A
N/A
Protected

Academic year: 2022

Partager "6. Les sous programmes :"

Copied!
6
0
0

Texte intégral

(1)

20

6. Les sous programmes :

En programmation, il est nécessaire ……… les grands programmes en sous programmes indépendants et de difficultés moindres appelés ………... Un module peut être ………. ou une ……….. (algorithmiquement) .

6.1

– Les fonctions :

En Algorithmique

Fonction nom_fonction (pf1 : type, pf2 :type, …, pfn : type) : type résultat Début

Traitement

Retourner (résultat) Fin

En python

Traitement

return (résultat(s))

1- Pour exécuter une fonction, il faut ………..

2- Toutes les instructions qui suivent l’instruction return constitue un code mort c'est-à-dire non exécutable par la fonction.

3- Une fonction peut ne pas avoir de paramètres au moment de la définition, dans ce cas il ne faut pas oublier les deux parenthèses ().

4- En python, une fonction peut renvoyer une ou plusieurs valeurs de types différents dans la même instruction return.

5- En algorithmique, une fonction doit retourner une seule valeur.

Type de résultat retourné par la fonction Les avantages de la décomposition

d’un grand problème en sous problèmes :

Réduire (décomposer) la difficulté Partager le travail pour gagner le temps

Plus de clarté, simplicité, …

………...……….

def nom_fonction (pf1 : type, pf2 :type, …, pfn : type) :

………..

(2)

21 Exercice 19

Soit le programme python suivant à compléter :

Exercice 20

La factorielle d’un entier n noté n! est égal à 1*2* ... n

1- Calculer : 4 != ……….. et 5 != ……… et 0 !=……….

2- Donner l’algorithme d’une fonction nommée fact qui prend en paramètre un entier n afin de calculer et renvoyer sa factorielle.

3- Traduire l’algorithme de la fonction en python

Exercice 21

1- Donner l’algorithme de la fonction nommée « premier » qui prend en paramètre un entier x et vérifie s’il est premier ou non.

NB : un nombre premier s’il n’a que deux diviseurs distincts 1 et lui-même.

Exemples : 2,3,5,7,11,13,…

2- Traduire la fonction en python

Qu’appelle-t-on cette instruction ?

……….

Compléter les pointillés par un message convenable Qu’appelle-t-on cette instruction ?

……….

x est un paramètre ………

y est un paramètre ………

La fonction factorial est une fonction prédéfinie dans la bibliothèque math

(3)

22 Exercice 22

1- Donner l’algorithme de la fonction nommée « parfait » qui prend en paramètre un entier x et vérifie s’il est parfait ou non.

NB : un nombre est dit parfait s’il est égal à la somme de ses diviseurs autre que lui-même.

Exemples : 6 car 6=1+2+3 2- Traduire la fonction en python

Exercice 23

1- Soit T un tableau de type TAB rempli par N réels positifs et la fonction Quoi suivante : Fonction Quoi(T :TAB, N :entier) : ……….

Début S0

Pour i de 0 à N-1 Faire S S+ T[i]

Fin Pour Retourner (S) Fin

2- Compléter par le type de résultat retourné par la fonction.

3- Dresser le TDOL de la fonction Quoi

4- Pour le tableau T suivant quelle est la valeur retournée par la fonction ?

5- Quel est le rôle de la fonction Quoi ?

6- Donner la traduction python de la fonction Quoi.

Exercice 24

Voici un bêtisier qui génère à chaque fois une erreur, donner la cause de l’erreur dans chaque cas.

def f() Maque les deux points : en fin de ligne

def fonction () : return ('Python')

……….

def puis(x,y):

i=1 p=1

for i in range (1,y+1):

p=p*x

……….

……….

……….

……….

def pair(x):

if k%2 == 0:

return True else:

return False

……….

……….

……….

……….

14. 5.5 2.5 3.2 0.8 10.

(4)

23

6.2

– Les procédures :

En Algorithmique

Procédure nom_procédure (pf1 : type, pf2 :type, …, pfn : type) Début

Traitement Fin

En python

Traitement

1- Pour exécuter une procédure, il faut ………

2- Une procédure peut retourner 0, 1 ou plusieurs valeurs.

3- En algorithmique, si on veut faire un passage par variable d’un paramètre formel il faut le précéder par « ……… » dans l’entête de la procédure.

6.3

– Les variables locales et globales:

Variable locale :

Déclarée ……… et n’est visible (utilisable) qu’à l’intérieur de de celui-ci.

Variable globale :

Déclarée ………. d’un sous-programme et visible (utilisable) dans tous le programme.

Exemple :

Soit le programme python suivant :

………..……..

def nom_procédure (pf1 : type, pf2 :type, …, pfn : type) :

L’entête de la procédure

Questions :

1- Quelles sont le(s) variable(s) globale(s) du programme?

2- Quelles sont le(s) variable(s) locale(s) du module1?

3- Quelles sont le(s) variable(s) locale(s) du module2?

4- Pourquoi le programme affiche le message d’erreur : dans la ligne 7

(5)

24 Exemple :

→ Ce programme affiche : ………. → Ce programme affiche : ……….

6.4

Paramètres formels et effectifs:

Paramètre formel :

Se trouve dans ……… d’un sous-programme.

Paramètre effectif :

Se trouve dans ……… d’un sous-programme.

6.5

Mode de passage des paramètres:

Passage par valeur :

la valeur du paramètre effectif ne sera jamais modifiée après l’exécution d’un sous-programme . En python, les types (entier, réel, booléen, chaine de caractères, … passent par valeur)

Passage par adresse (par référence) :

la valeur du paramètre effectif sera modifiée après l’exécution d’un sous-programme . En python, les types (liste, dictionnaire, …) passent par adresse.

Exemple :

Pour chaque programme, donner le résultat affiché :

Programme 1 : Programme2 :

……….. ………..

Une variable globale ne peut pas être modifiée à l’intérieur d’un module que si

on ajoute le mot clé global

n est une variable globale

a est une variable locale

Les paramètres formels et effectifs doivent s’accorder : 1- ……… 2- ……… 3- ……….

Les paramètres formels et effectifs peuvent avoir des noms différents mais il vaut mieux avoir les mêmes noms si possibles.

En algorithme, si le mode de passage est par adresse, on ajoutera le symbole @ avant le nom du paramètre.

(6)

25 Exercice 25

On desire faire un programme nommé « travail » qui permet de faire les tâches suivantes : 1- Saisir un entier n (avec 2<n<10).

2- Rremplir un tableau t par n entiers.

3- Afficher le tableau t après le remplissage.

4- Calculer et afficher la moyenne du tableau t.

5- Chercher et afficher le maximum du tableau t.

NB: il faut décomposer votre programme en modules

Travail demandé :

1- Faire l’algorithme du programme principal (n’oublier pas le TDNT et le TDOG).

2- Faire les algorithmes des modules envisagés (n’oublier pas les TDOLs).

3- Donner la traduction python de votre programme.

Exercice 26

On désire faire un programme nommé « som_matrice » qui permet de :

1- Remplir une matrice carrée M d’ordre N par des entiers de façon aléatoire

N [2..10]

M[i,j] [1..100].

2- Afficher la matrice M ligne par ligne.

3- Calculer et afficher la somme des éléments de la matrice M.

Travail demandé :

1- Faire l’algorithme du programme principal (n’oublier pas le TDNT et le TDOG).

2- Faire les algorithmes des modules envisagés (n’oublier pas les TDOLs).

Exercice 27

On désire faire un programme intitulé « Tab_premiers » qui remplit un tableau T par N entiers strictement positifs (avec 5 ≤ N ≤ 50) puis d’afficher tous les entiers premiers qui se trouvent dans le tableau T.

NB : Un entier est dit premier s’il n’a que deux diviseurs distincts 1 et lui-même.

Exemples de nombres premiers : 2,3,5,7,11,13,…

Travail à faire :

1- Donner le code Python pour résoudre le problème précédent.

Références

Documents relatifs

Montrer que A est local si et seulement si la somme de deux éléments non inversibles de A est non inversible... tel que tout polynôme de K[X].. de degré &gt; 1 admette au moins

une factorielle plus 1 ou moins 1 et qui est aussi un nombre premier.. Devoirs et examens sur

une factorielle plus 1 ou moins 1 et qui est aussi un

(2) En d´ eduire la fonction supprime qui prend en arguments une liste L et un nombre n et supprime le premier ´ el´ ement de la liste ´ egal ` a n.. Cette fonction renverra True si

[r]

• Dans l’exercice, on devait démontrer la convergence de la suite (u n ) vers un réel ` (qu’il ne fallait pas déterminer).. • On décrit ici de manière précise les

De la mˆ eme fa¸ con que les colonnes “proviennent” d’extensions (au sens de la th´ eorie des langages) de colonnes de diff´ erentes matrices de nombres plus petits, les

A ce sujet, nous allons démontrer un théorème de la dernière importance dans cette matière et dont l’énoncé suit : “Étant donnée une équation avec un certain nombre