Les Sous Programmes
Les Sous Programmes
Les Sous Programmes
MINI PROJET
On définit une suite suivante :U0=1
Un+1= 2*Un+1
Le jeu est simple :
• Tu joue contre l’ordinateur deviner un terme de la suite :
• Tu donne une valeur x1 (entre 100 et 1000)
• l’ordinateur la même chose x2
3 points si la valeur est un terme de la suite
1 points si la différence entre les deux valeurs(valeur donnée et terme le
plus proche) ne dépassera pas 5
0 sinon
• On répété l'étape ci-dessus n fois avec 3<=n<=20
• On affiche le gagnant après les N fois
Saisir n x1 est terme de la suite
(nombre de Nombre de points=3
fois ) ou la différence entre les
termes successive avec
Calculer le
x1<=5 nombres de
nombre de
Utilisateur points=1
points
saisie un Sinon 0
obtenus
nombre x1
avec cette
valeur x1
Calculer un
terme de la suite Afficher le
Comment ? comment? résultat qui à
gagner ou
partie nul
L’ordinate
ur choisie Calculer le x2 est terme de la suite
un nombre nombre de Nombre de points=3
au hasard points ou la différence entre les
x2 obtenus avec termes successive avec
cette valeur x2<=5 nombres de
x2 points=1
Sinon 0
REMARQUES
• Plusieurs traitement se répètent c’est-à-dire qui nécessite le
même code ou les mêmes actions (redondance)
• Le code sera encombré et même illisible( lisibilité)
Donc quel sera la meilleur solution pour résoudre le problème
solution
ANALYSE MODULAIRE
MODULE???
Les objets
retournés
par la
fonction
Liste des paramètre
formels
La déclaration Algorithmique
Fonction Nom_fonction (pf1 : type1, pf2 : type2, … , pfn : typen) : type_résultat
DEBUT
Variable Traitement
résultat à Retourner Résultat FIN
retourner
• L’appel algorithmique
Objet Nom_fonction (pe1, pe2, …, pen) Liste des
paramètres
Objet de effectifs
type • La déclaration en Python
résultat • L’appel en Python
que la
fonction def Nom_fonction (pf1, pf2, …, pfn ) : Objet = Nom_fonction (pe1, pe2, …, pen)
Traitement
return resultat
LES PROCÉDURE EN ALGORITHME
Répéter
Lire (n1,n2)
Jusqu’à n1>0 et N2>0 et N1>n2
LE PROGRAMME DEVIENT
Le module
Saisie
retourne 2
Appel du résultat
module
saisie pour n
et k
LES PROCÉDURES
s’appelle passage de paramètres. Il s’agit d’un appel entre PP et les sous programmes appelé.
Si le programme appelé ne change par la valeur d’un paramètre formel c’est mode de
passage par valeur.
Remarque : (algorithme )
• Chaque paramètre formel passé par variable doit être précédé par le symbole @ en
algorithme,
• Chaque paramètre formel doit être précéder par son mode de passage et suivi par
Tab=tableau de 5 entier
Algorithme :deviner
Lire (N) Objets Type /nature
remplir ( TDOG T
N
Tab
Entier
……………………) saisir procédure
remplir procédure
Fin Affiche procédure
Questions:
1-Compléter les parties manquantes du programme
2- modifier la saisie de l’objet N en module avec N dans [5,20] et
apporter les modifications nécessaire au programme,
3- Développer le module remplir qui permet de remplir un tableau
dont les éléments sont dans l’intervalle [-20..20]
5-Ajouter au programme pour qu’il calcul et affiche le produit
cartésien entre deux tableau T1 et T2 = ∑ T1[i] * T2[i](avec i[0..n-
1])
Avec T1 et T2 deux tableaux d’entier de même taille,