100% ont trouvé ce document utile (3 votes)
2K vues3 pages

Sous-programmes en Python pour l'informatique

Le document décrit la décomposition modulaire d'un algorithme calculant la moyenne et le maximum de notes d'élèves. L'algorithme est décomposé en plusieurs modules tels que saisie, remplissage de tableau, calcul de moyenne et maximum. Le document explique également les concepts de paramètres formels et effectifs.

Transféré par

Zeid Issaoui
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
100% ont trouvé ce document utile (3 votes)
2K vues3 pages

Sous-programmes en Python pour l'informatique

Le document décrit la décomposition modulaire d'un algorithme calculant la moyenne et le maximum de notes d'élèves. L'algorithme est décomposé en plusieurs modules tels que saisie, remplissage de tableau, calcul de moyenne et maximum. Le document explique également les concepts de paramètres formels et effectifs.

Transféré par

Zeid Issaoui
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

Année 2022-2023- bac Techniques Les sous programmes Matière : Informatique

Point d'information
Exercice : réécrire le programme (algorithme +
implémentation python) de l’exercice 3 de la série1 (rappel et Intérêts de la décomposition modulaire :
évaluation) en le Décomposant en modules • Plus d’organisation en séparant les
difficultés et les taches.
Point d'information • S’occuper d’un seul problème à la fois.
La décomposition modulaire consiste à diviser un problème • En cas d’erreur la division en module
en sous problème de difficultés moindres. Ces derniers sont permet de savoir quel module à corriger
aussi soumis à cette division jusqu'à ce qu’on arrive à un • Plus facile à faire évoluer.
niveau abordable de difficulté. • Permet d’éviter la répétition d’un même
traitement dans un programme.
On peut utiliser les modules suivants : n
T,n Point d'information
PP
saisir
T La décomposition modulaire
T,n T,n permet de diviser un programme
remplir maximum en plusieurs sous-programmes.
moyenne
(procédures ou une fonctions).
On va avoir la solution suivante :
Algorithmes
Algorithme du programme principal : Algorithme de la fonction moyenne :
Algorithme Classe: fonction moyenne(T:tab,n :entier) :réel
DEBUT Début
Appel d’une
Saisir(n) procédure S0
Appel Remplir(T1, n) Pour i de 0 à n-1 faire
d’une SS+T[i] Type de retour
Moymoyenne(T1,n)
fo nction Paramètres effectifs FinPour de la fonction
Mmaximum(T1,n)
MoyS/n
Ecrire("moy classe=",Moy, "Meilleure moy=",M)
Retourner Moy
FIN Fin
Nouveaux Types [Link]
TAB= tableau de 39 réels Objets Types/Nature
[Link]
i Entier
Objet Type/Nature
s,moy réel
n Entier Algorithme de la fonction maximum :
moy, M réel fonction maximum(T:tab,n :entier) :réel
T1 TAB Début
Saisir, remplir Procédures XT[0] Paramètres formels
Moyenne,maximum fonctions Pour i de 1 à n-1 faire
Si T[i]>M alors XT[i] Finsi
Algorithme de la procédure saisir : FinPour
Procédure saisir(@n :entier)
Retourner X
DEBUT
Fin [Link]
Répéter
Ecrire("Nbre d’élèves="), lire(n) Objets Types/Nature
Jusqu’à 10<=n<=39 i Entier
FIN X réel
Point d'information
Algorithme de la procédure remplir : On distingue deux types de paramètres :
Procédure Remplir(@T:tab,n :entier) 1- Les paramètres formels : qui figurent dans la
Début définition de la procédure ou la fonction.
Pour i de 0 à n-1 faire 2- Les paramètres effectifs : qui figures dans l'appel
Répéter de la procédure ou la fonction et qui sont manipulés
Ecrire("moyenne",i+1,"="), Lire(T[i]) par celle-ci.
Jusqu’à 0<=T[i]<=20
Point d'information
Finpour
Fin Il y a deux modes de passage par (valeur/adresse).
[Link] Si le mode de passage est par référence (par
Objets Types/Nature adresse), on ajoutera le symbole @ avant le nom du
i Entier paramètre.

Page 1
Année 2022-2023- bac Techniques Les sous programmes Matière : Informatique
Point d'information
Remarque : Les paramètres formels et les paramètres effectifs doivent s'accorder de point de vue nombre et ordre
et leurs types doivent être identiques ou compatibles.
Point d'information
En Algorithmique :
Les procédures sont des sous-programmes qui peuvent avoir plusieurs résultats.
Une fonction est un sous-programme qui renvoie une valeur de type simple, ce type sera le type de la fonction..

Implémentations en python

Méthode 1 Méthode 2
from numpy import * from numpy import *
T1=array([float()]*25) T1=array([float()]*25)

def saisir(): def saisir():


valide=False global n
while valide==False : valide=False
n=int(input('Nombres élèves=')) while valide==False :
valide=(10<=n<=39) n=int(input('Nombres élèves='))
return n valide=(10<=n<=39)

def remplir(T,n): def remplir(T,n):


for i in range(n): for i in range(n):
valide=False valide=False
while valide==False : while valide==False :
print("moy", i+1, '=', end=' ') print("moy", i+1, '=', end=' ')
T[i]=float(input()) T[i]=float(input())
valide=(0<=T[i]<=20) valide=(0<=T[i]<=20)

def moyenne(T,n): def moyenne(T,n):


s=0 s=0
for i in range(n): for i in range(n):
s=s+T[i] s=s+T[i]
moy=s/n moy=s/n
return moy return moy

def maximum(T,n): def maximum(T,n):


X=T[0] X=T[0]
for i in range(1,n) : for i in range(1,n) :
if T[i]>X : if T[i]>X :
X=T[i] X=T[i]
return X return X

#programme principal #programme principal


n=saisir() saisir()
remplir(T1,n) remplir(T1,n)
moy=moyenne(T1,n) moy=moyenne(T1,n)
M=maximum(T1,n) M=maximum(T1,n)
print('moy de la classe=',moy,'\nMeilleure moy =',M) print('moy de la classe=',moy,'\nMeilleure moy=',M)

Point d'information Point d'information


La portée des variables en python :
En Python : Un • Toute variable déclarée au sein d’un module a une portée locale.
module (fonction ou • Toute variable déclarée au sein d’un module précédée par le mot clé global a une
procédure) se définit portée globale. Par conséquent, elle ne devra pas figurer parmi les paramètres de ce
en utilisant le mot clé module.
def - Il est possible de définir un sous-programme sans paramètres. La communication
avec l'appelant se produit grâce aux ressources (objets) communes partagées entre
l'appelé et l'appelant.

Page 2
Année 2022-2023-Bac Techniques Matière : Informatique

Rappel et Evaluation de niveau.

SERIE D’EXERCICES - 1

EXERCICE1 : (sans décomposition modulaire)


On désire écrire un programme qui permet de calculer le volume ( V ) d’un cylindre

Sachant que : V= H*S ,

S = la surface de la base =Π * r2

H=la hauteur du cylindre

Exemple :
Pour un cylindre de :
rayon= 2.5 cm

 hauteur = 3 cm
le programme doit afficher : le volume du cylindre = 58.875 cm3

EXERCICE2 : (sans décomposition modulaire)


Écrire programme intitulé CUBIQUE qui saisit un entier de 3 chiffres et de vérifier si l’entier saisie estcubique ou non. Un
entier est dit cubique s’il est égal à la somme des cubes de ses chiffres.
Exemple :
L’entier 153 et un entier cubique car 13+53+33 = 153
TAF :
Donner l’algorithme du programme précèdent

EXERCICE3 :
Écrire un programme nommé Classe qui permet de faire les tâches suivantes :
 Saisir le nombre d’élèves N (avec 10 ≤ N < 40).
 Remplir un tableau T par les moyennes générales des N élèves
 Chercher et afficher la meilleure moyenne de la classe.
 Calculer et afficher la moyenne de toute la classe.

Page 3

Vous aimerez peut-être aussi