La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les sous-programmes I. Objectifs : Décomposer un problème en sou-problèmes élémentaires. Présenter les solutions sous formes de procédures et de fonctions.

Présentations similaires


Présentation au sujet: "Les sous-programmes I. Objectifs : Décomposer un problème en sou-problèmes élémentaires. Présenter les solutions sous formes de procédures et de fonctions."— Transcription de la présentation:

1 Les sous-programmes I. Objectifs : Décomposer un problème en sou-problèmes élémentaires. Présenter les solutions sous formes de procédures et de fonctions. Présenter les solutions sous formes d'algorithmes puis de programmes Pascal. II. Activité: Deux entiers naturels m et n strictement positifs sont dits nombres amis si et seulement si : La somme des diviseurs de m sauf lui-même est égale à n. La somme des diviseurs de n sauf lui-même est égale à m. Écrire un programme permettant de déterminer si deux entiers naturels m et n strictement positifs sont dits nombres amis ou non. Chapitre n° 5:

2 Les sous-programmes Solution: Analyse du programme "amis": Résultat = Ecrire(m, " et ", n, message) Chapitre n° 5: ObjetTypeRôle m n Message sdm sdn i Entier Chaîne de caractères Entier Un entier strictement positif Message amis ou non Somme des diviseurs de m Somme des diviseurs de n compteur sdn = [sdn 0] pour i de 1 à (n div 2) faire si n mod i = 0 alors sdn sdn + i finsi fin pour Tableau de déclaration des objets: 3 sdm = [sdm 0] pour i de 1 à (m div 2) faire si m mod i = 0 alors sdm sdm + i finsi fin pour 1 m = [ ] répéter m = donnée ("introduire un entier positif") jusqu'à (m > 0) 2 n = [ ] répéter n = donnée ("introduire un entier positif") jusqu'à (n > 0) Fin amis 7 Message = [ ] si (sdm = n) et (sdn = m) alors Message "sont amis" sinon Message " ne sont pas amis" finsi

3 Les sous-programmes III. Introduction : Lorsqu'un problème devient de plus en plus ……… et/ou …….,on doit le décomposer en ………… Indépendants et de tailles réduites qu'on appelles……………………… Il existe deux types de sous programmes : Les …………. IV.Les fonctions : 1. Définition : Une fonction est un…………………… Qui renvoie au programme principal une seule valeur de type simple (entier, réel, caractère, chaîne ou booléen). Chapitre n° 5: complexe long modules Sous-programmes fonctions procédures Sous-programme

4 Les sous-programmes 2. Déclaration d'une fonction : Une fonction est constituée de trois parties : La partie entête : où nous trouvons son nom qui est suivi entre parenthèses des paramètres en entrées, puis du type résultat. La partie déclarative : où tous les objets locaux de la fonction sont déclarés. La partie instruction : où nous trouvons les actions de la fonction. En PASCAL, la déclaration d'une fonction se trouve dans la partie déclarative d'un programme principal (après la déclaration des constantes, des types et des variables). Chapitre n° 5:

5 Les sous-programmes 3. Vocabulaire et syntaxe : a. Au niveau Analyse et algorithme: 0) DEFFN Nom_fonction(paramètre formel1 : type1;….; paramètre formeln : typen): typerésultat 1) { bloc d'instruction de la fonction} n-1) Nom_fonction var_résultat n) FIN Nom_fonction. b. En Pascal FUNCTION Nom_fonction(paramètre formel1 : type1;…; paramètre formeln : typen) : typerésultat ; VAR {déclaration des variables locales} BEGIN { bloc d'instruction de la fonction} Nom_fonction := var_résultat ; END ; Chapitre n° 5:

6 Les sous-programmes Revenons à l'activité 1, on va analyser à part la partie qui est répété deux fois dans le programme "Amis" et pour but de faire la somme de tous les diviseurs d'un entier positif. Analyse de la fonction "som_div": DEF FN som_div(x:entier):entier Résultat= som_div som_div sd sd = [sd 0] pour i de 1 à (x div 2) faire si x mod i = 0 alors sd sd + i finsi fin pour Fin som_div Chapitre n° 5: ObjetTypeRôle sd i Entier Somme des diviseurs de x Compteur Tableau de déclaration des objets locaux:

7 Les sous-programmes Algorithme: 0) DEFFN som_div(x:entier):entier 1) sd = [sd 0] pour i de 1 à (x div 2) faire si x mod i = 0 alors sd sd + i finsi fin pour 2) som_div sd 3) Fin som_div. Chapitre n° 5: Pascal: FUNCTION som_div(x:integer):integer; var sd,i:integer; begin sd:=0; for i:=1 to x div2 do begin if (x mod i =0) then begin sd:=sd+i; end; som_div:=sd; End;

8 Les sous-programmes 4. Appel d'une fonction : L'appel d'une fonction figure obligatoirement dans une expression (affectation, instruction d'affichage, condition, boucle pour, …), en utilisant le nom de la fonction suivi de la liste des paramètres effectifs. Au niveau analyse et algorithme Var_résultat FN Nom_fonction (liste des paramètres effectifs) En pascal Var_résultat:=Nom_fonction (liste des paramètres effectifs) ; Chapitre n° 5:

9 Les sous-programmes Revenons à l'activité 1, le programme principal deviendra comme suit : Analyse du programme "amis": Résultat = Ecrire(m, " et ", n, message) m = [ ] répéter m = donnée ("introduire un entier positif") jusqu'à (m > 0) n = [ ] répéter n = donnée ("introduire un entier positif") jusqu'à (n > 0) Message = [ ] si (sdm = n) et (sdn = m) alors Message "sont amis" sinon Message "est ne sont pas amis" finsi …………………………… Fin amis Chapitre n° 5: Tableau de déclaration des objets globaux: ObjetTypeRôle m n Message sdm Sdn Som_div Entier Chaîne de caractères Entier Fonction Un entier strictement positif Message amis ou non Somme des diviseurs de m Somme des diviseurs de n Calcule la somme des diviseurs strictes dun entier sdn FN som_div(n) sdm FN som_div(m)

10 Les sous-programmes 5. Types des objets La variable sd est utilisée uniquement au niveau de la fonction som_div, on l'appelle variable ………… Contrairement aux variables sdn et sdm, sont utilisées dans le programme principal Amis on les appelle variables …………….. Dans notre exemple: sdn et sdm : ces sont des variables ……………. sd et i : ces sont des variables ……………. A retenir: Tous les objets (constantes, variable, types) qui sont déclarés dans un sous- programme, sont utilisés qu'à l'intérieur de celui-ci : sont dit ………………… Tous les objets (constantes, variable, types) qui sont déclarés dans le programme principal, sont utilisés par le programme principal et par les sous programmes qui le forment: sont dit ……………. Chapitre n° 5: locale globales locales globales objets locaux objets globaux

11 Les sous-programmes 6. Types de paramètres On distingue deux types de paramètres : Les paramètres formels : Ce sont des paramètres qui figurent dans l'entête d'un sous-programme et sont utilisés dans les instructions de celui-ci et là seulement. Les paramètres effectifs : Ce sont des paramètres qui figurent dans le programme principal. Ces paramètres sont substitués aux paramètres formels au moment de l'appel du sous-programme. Donc ceux qui seront manipulés effectivement par le programme. Dans notre exemple : x : paramètre …………….. m, n : paramètres ………….. Remarque : Les paramètres effectifs et les paramètres formels doivent s'accorder du point de vue nombre et ordre. Leurs types doivent être identiques ou compatibles, selon le mode de passage des paramètres. Chapitre n° 5: formel effectifs

12 Les sous-programmes 7. Mode de passage des paramètres Il existe deux modes de passages des paramètres : Mode de passage par …………. Mode de passage par..………… Définition du mode de passage par valeur : Au moment de l'appel, seulement la valeur du paramètre effectif est copiée dans la variable du paramètre formel. Dans notre exemple, lors de l'appel de la fonction som_div (n) (ou som_div (m)), le paramètre effectif n (ou m) est transmis par valeur Chapitre n° 5: valeur variable

13 Les sous-programmes Retenons : Lors de l'utilisation d'une fonction il faut : Spécifier le type de la fonction (type du résultat retrouvé) Déclaré, si nécessaire une variable locale de même type que la fonction pour faire les calculs intermédiaires. (exemple : var_resultat). Obligatoirement d'affecter le résultat du traitement de la fonction au nom de celle ci avant la fin du bloc. L'appel d'une fonction se fait obligatoirement dans une expression. Chapitre n° 5:

14 Les sous-programmes IV. Les procédures 1. Définition: Contrairement aux fonctions, la procédure ne fournit pas un résultat mais crée une action ou une suite d'actions(instructions) exécutées à l'appel dans le programme appelant. 2. Activité 2 (mode de transfert par variable) Dans l'analyse de l'activité 1 correspondant au programme principal, on remarque qu'il y'a une suite d'instructions de lecture qui figure plusieurs fois. Ce bloc peut construire un programme qu'on appel un sous-programme/module. 3. Déclaration d'une procédure : Une procédure est constituée de trois parties : La partie entête : où nous trouvons son nom qui est suivi entre parenthèses des paramètres en entrées. La partie déclarative : où tous les objets locaux de la procédure sont déclarés. La partie instruction : où nous trouvons les actions de la procédure. En PASCAL, la déclaration d'une procédure se trouve dans la partie déclarative d'un programme principal. Chapitre n° 5:

15 Les sous-programmes Revenons à l'activité 1, on va analyser à part la partie qui est répéter deux fois dans le programme Amis et pour but de faire la saisie des deux entier m et n. Analyse de la procédure "saisie": DEF PROC saisie(var y :entier) y = [ ] répéter y = donnée ("introduire un entier positif") jusqu'à (y > 0) Fin saisie Chapitre n° 5: 1 2

16 Les sous-programmes Algorithme: 0 ) DEF PROC saisie( var y :entier) 1 ) y = [ ] répéter y = donnée ("introduire un entier positif") jusqu'à (y > 0) 2 ) Fin saisie Chapitre n° 5: Traduction en Pascal: procedure saisie(var y :integer) ; begin repeat writeln(Introduire un entier) ; readln(y) ; until (y>0) ; end ;

17 Les sous-programmes 4. Appel d'une procédure L'appel d'une procédure se fait généralement, en utilisant son nom suivi entre parenthèses de la liste des paramètres effectifs. Au niveau analyse et algorithme PROC Nom_procédure (liste des paramètres effectifs) En pascal Nom_procédure (liste des paramètres effectifs) ; Chapitre n° 5:

18 Les sous-programmes Revenons à l'activité 1, le programme principal Amis deviendra comme suit : Analyse du programme "amis": Résultat = Ecrire(m, " et ", n, message) …………………………… Message = [ ] si (sdm = n) et (sdn = m) alors Message "sont amis" sinon Message "est ne sont pas amis" finsi …………………………… Fin amis Chapitre n° 5: Tableau de déclaration des objets globaux: ObjetTypeRôle m n Message sdm Sdn Som_div saisie Entier Chaîne de caractères Entier Fonction Procédure Un entier strictement positif Message amis ou non Somme des diviseurs de m Somme des diviseurs de n Calcule la somme des diviseurs strictes dun entier Saisie des variables m et n. sdn FN som_div(n) sdm FN som_div(m) PROC saisie(n) PROC saisie(m) 4. Types des objets Dans notre exemple : sdm, sdn, m, et n sont des …………….. 5. Types des paramètres y : est un ……………….... déclaré dans l'entête de la procédure. m et n : …………………. variables globales. paramètre formel paramètres effectifs.

19 Les sous-programmes 5. Mode de passage des paramètres par variable Les paramètres transmis par variable font communiquer l'information dans les deux sens: A l'appel, l'appelant transmet une ou plusieurs valeurs à l'appelé, de même l'appelé rend un ou plusieurs résultats à l'appelant au moment du retour. Ce mode de transmission par variable est utilisé chaque fois que le paramètre représente un résultat calculé par le sous programme appelé et transmis au programme appelant. Chapitre n° 5:

20


Télécharger ppt "Les sous-programmes I. Objectifs : Décomposer un problème en sou-problèmes élémentaires. Présenter les solutions sous formes de procédures et de fonctions."

Présentations similaires


Annonces Google