24
u’est ce qu’une structure de contrôle itérative ? u’est ce qu’une structure de contrôle itérative ? and on utilise la structure de contrôle itérative complète ? and on utilise la structure de contrôle itérative complète ? and on utilise la structure de contrôle itérative Tant que ? nd on utilise la structure de contrôle itérative Tant que ? and on utilise la structure de contrôle itérative Répéter? and on utilise la structure de contrôle itérative Répéter? Diviser pour régner

Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Embed Size (px)

Citation preview

Page 1: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Qu’est ce qu’une structure de contrôle itérative ?Qu’est ce qu’une structure de contrôle itérative ?

Quand on utilise la structure de contrôle itérative complète ?Quand on utilise la structure de contrôle itérative complète ?

Quand on utilise la structure de contrôle itérative Tant que ?Quand on utilise la structure de contrôle itérative Tant que ?

Quand on utilise la structure de contrôle itérative Répéter?Quand on utilise la structure de contrôle itérative Répéter?

Diviser pour régner

Page 2: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Chapitre 12 : Chapitre 12 : Les sous Les sous

programmesprogrammes   

Page 3: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Objectifs

Décomposer un problème en module Présenter les solutions sous forme de sous

programmes (procédure et fonction)Enfin écrire des algorithmes et des programmes

solutions

Diviser pour régner

Page 4: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

IntroductionJusqu'ici nous avons vu comment résoudre des problèmes plus

moins simples faisant appel à la structure de contrôle conditionnelle et a la structure de contrôle itérative au répétitive à savoir les boucles : pour ,répéter, tan que .

Mais pour résoudre des problèmes complexes et/ou de grande taille, il est souvent préférable de les décomposer en sous problèmes indépendante et de taille réduite, par la suite on associe à chaque sous problème un module assurant sa résolution.

Aujourd'hui nous allons voir comment:Décomposer un problème en module Présenter les solutions sous forme de sous programmes

(procédure et fonction)Enfin écrire des algorithmes et des programmes solutions

Diviser pour régner

Page 5: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

ExemplesNotre classe veut organiser une fêté de fin

d'année .il est alors nécessaire de se partager le travail afin de réussir ce projet .dans ce but, un chef de projet et des groupes d'élèves seront constitués. Chaque groupe aura une tache bien précise et devra la programmer. Un groupe s'occupe de la décoration de la salle ; un autre s'occupe des invités ; ainsi de suite .le chef de projet synchronise et pilote l'ensemble des groupes.

Diviser pour régner

Page 6: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

A travers cet exemple, des notations importantes apparaissent tel que chef de projet est représenter en programmation par programme principale et les groupes par des sous programmes.

Cette approche s’appelle analyse modulaire, qui présente les avantages suivantes:

Éviter les redondances Concentrer sur la résolution d’un sous problème à la fois Détecter facilement les parties à modifier Réutiliser les modulesOn distingue deux types de sous programmes: Les fonctions Les procédures

Diviser pour régner

Page 7: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Partie 1 : Partie 1 : Les fonctionsLes fonctions

Diviser pour régner

Page 8: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

activité1

Citez des fonctions standard que vous avez déjà utilisez , ainsi que ses paramètres.

Que remarquez-vous?Pouvez-vous donner une définition d’une fonction?

Diviser pour régner

Page 9: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Une fonction est un sous programme permettant de retourner un

résultat unique à partir d’un ou plusieurs paramètres donnés.

1.Définition : 1.Définition :

Diviser pour régner

Page 10: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

1) Activit1) Activitéé 2 2  ::

On se propose d'écrire un programme intitulé somme_fact qui permet de calculer et d'afficher la somme des Factorielle des chiffres d'un entier n (0 ≤n<50)

Exemple Soit n=31 : 3!+1!=7Soit n=5: 5!=120

Diviser pour régner

Page 11: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Analyse

Algorithme:

Diviser pour régner

Page 12: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

on a remarque la redondance de la partie calcul de la factorielle :

celle ou on calcule la factorielle de n, puis celle du chiffre des

dizaines D et enfin celle du chiffre des unités U. on peut éviter une

telle redondance en définissant une fonction permettant de

calculer la factorielle de n'importe quel entier naturel. Cette

fonction sera appelée en cas de besoin

Remarque :Remarque :

Diviser pour régner

Page 13: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

2. Vocabulaire et syntaxe : 2. Vocabulaire et syntaxe :

Analyse et AlgorithmeAnalyse et AlgorithmeAlgorithme de la fonction Nom-FonctionAlgorithme de la fonction Nom-Fonction

0- Fonction Nom_Fonction (Liste des paramètres formels) : type 0- Fonction Nom_Fonction (Liste des paramètres formels) : type du résultatdu résultat

1- ……………………………..1- ……………………………..

2- …………………………….. Instructions de la fonction2- …………………………….. Instructions de la fonction

..

..

n-1 - Nom_Fonction n-1 - Nom_Fonction résultat résultat

N- Fin Nom_FonctionN- Fin Nom_Fonction

Diviser pour régner

Page 14: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

1414

PascalPascal

Function Nom_Fonction (Liste des paramètres formels) : type du résultat;{Déclarations locales} ; Begin ………………………….; ………………………….; ( Instructions de la fonction ) …….Nom_Fonction := résultat ; End ;

Diviser pour régner

Page 15: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Diviser pour régner

Résultat = écrire (" la Factorielle de", n,"est =", SF) SF= [ ] si (n dans [0..9]) alors SFFactorielle (n) SinonDn div 10U n mod 10SFFactorielle (D) +Factorielle (U)Fin sin = [ ] Répéter n = Donnée //saisi contrôler on utiliser répéter Jusqu’à n dans [0..50]Fin som_Fact

ANALYSE DU PROGRAMME PRINCIPALE:

Page 16: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Tableau de déclaration des objets

Objet Type / Nature

FactorielleSFDUN

FonctionEntierEntierEntierentie

Diviser pour régner

Page 17: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

• Algorithme du programme principal0)début som_Fact1)Répéter Ecrire ("introduire un entier compris entre 0 et 50"); Lire (n) Jusqu’à n dans [0..50]2)si (n dans [0..9]) alors SFFN Factorielle (n) Sinon Dn div 10 Un mod10 SF FN Factorielle (D) + FN Factorielle (U)Fin si3)écrire (" la factorielle de", n,"est =", SF)4)fin som_Fact

Diviser pour régner

Page 18: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Diviser pour régner

Résultat = fact[fact1] Pour i De 1 A x Répéter factfact*i Fin pourfactorielle fact Fin factorielle

Analyse de chaque moduleLa fonction factorielle

Page 19: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Tabl eau de déclaration des objets locaux

Objet Type / Nature

factI

entierentier

Diviser pour régner

Page 20: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Algorithme de la fonction factorielle

0)DEF FN factorielle (x : entier) : entier1)Fact12)Pour i de 2 A x répéter FactFact*iFin Pour3)factorielle fact4)Fin factorielle

Diviser pour régner

Page 21: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Traduction en Pascal:Program som_fact;Uses wincrt;Var n,u,d,sf: integerFunction factorielle( x:integer):integer;Var i,fact:integer;BeginFact:=1;For i:=2 to x doFact:=fact*i;Factorielle:= fact;End;{******* p p**********}RepeatWrite ("donnée un entier ");Read (n);Until (n in [0..50]);If n in [0..9] thenSf:= factorielle (n);ElsebeginD:=n div 10U:= n mod 10Sf:=Factorielle (D) +Factorielle (U)End;Writeln (' la Factorielle de', n,'est =', Sf);End;

Diviser pour régner

Page 22: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Remarques:Une fonction est constituée de trois partiesLa partie entête: de la fonction ou nous trouvons son nom qui est

suivi, entre Parenthèses, des paramètres en entrée et leur mode de passage, puis du type du résultat. Ce type est un scalaire simple soit un entier, booléen, chaîne de caractère mais ne peut jamais être de type complexe comme les tableaux.

La partie déclarative : ou tous les objets locaux de la fonction sont déclarés

La partie instruction : où nous trouvons les instructions propres à la fonction

Exemple: Function moyenne (coef1, note1, coef2, note2 : real) : real ;

Toute objet utiliser dans une fonction est appelé objet local (i, f). Par contre toute objet déclaré dans le programme principale appelé objet global(n, u, d)

Diviser pour régner

Page 23: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Appel d'une fonction provoque l'activation de celle-ci . Appel d'une fonction provoque l'activation de celle-ci . * une fonction dans son appel se comporte comme une * une fonction dans son appel se comporte comme une

variable. l’appel d’une fonction doit nécessairement se variable. l’appel d’une fonction doit nécessairement se faire dans une expression : faire dans une expression :

affichage :affichage : writeln(‘la moyenne de Ali est :‘ ,moyenne(c1,n1,c2,n2) ) ;writeln(‘la moyenne de Ali est :‘ ,moyenne(c1,n1,c2,n2) ) ;condition :condition : if moyenne (c1, n1, c2, n2)>10 thenif moyenne (c1, n1, c2, n2)>10 then

writeln(‘passable’) ;writeln(‘passable’) ;end ; end ;

Affectation :Affectation : x := moyenne (c1, n1, c2, n2) ; x : est une x := moyenne (c1, n1, c2, n2) ; x : est une variable de type réel.variable de type réel.

Nom_Fonction (Liste des paramètres effectifs) Nom_Fonction (Liste des paramètres effectifs) Les paramètres effectifs et les paramètres formels doivent Les paramètres effectifs et les paramètres formels doivent

s’accorder du point de vue nombre, ordre, type.s’accorder du point de vue nombre, ordre, type.

3. L'appel d'une fonction : 3. L'appel d'une fonction :

Diviser pour régner

Page 24: Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle

Application:

Diviser pour régner