| cours numéro 11 | |
|
+65faycal belhocine abdelrahman latroch tabti abdesselem khalil sadi oudia moh modta nounou(saiad a.e.k) amell kharoubi korichi ahmed islam maghnia meddah ziane karima haddar meriem tayeb pacha ramadhan fatima bahloul asma benabderrahmane hasnia mehidi grine mawloud nedjar mansour coucou oueld coucou Belbachir fatima benadjaimia ahmed boukhatem hayet siham louati hadjoudj zakaria bachir bouiadjera bennouna fatiha khelifa kherroubi Yahia Hynd Bachir Elezaar Faiza Benanteur soumia Bakreti amina lahouel aicha messaoudi ali BENACER BOUZID mohamed20 haroual sofiane denden touir youcef KRICHICHE benalioua yasmine benchendikh mohamed Bendref Belkacem DAOUD HINDA lahcene.seddik213 chenine afif nouredine cherif_nawal benslimane fatima zohra BOUHENNI_SOUMIA MEDDAH AMINE azzedine aicha nabila fadel MEHIDI CHAREF hachelaf hayet BenBerber Hind wiam daadoua kacher zoubida larabi*maamar fatima abbou DJEFFAL KHEIR EDDINE Benhalima fatima Bouziane Mohamed CHERFAOUI DJAKMINE ABDELFATEH Cherifi Mohammed Amine Admin 69 participants |
|
Auteur | Message |
---|
Admin Admin
Messages : 23 Points : 39 Réputation : 16 Date d'inscription : 15/03/2008 Age : 63 Localisation : MOSTAGANEM
| Sujet: cours numéro 11 Dim 16 Mar - 19:14 | |
| 5) Le passage des paramètres :
Il existe deux manières d'échange des données entre une procédure et le programme qui l'appelle
* A l'aide des variables globales: c'est ce que nous avons fait jusqu'à maintenant. Cette méthode ne permet pas de faire vraiment de la programmation paramétrée. Si on revient au premier exemple et on considère que l'on a deux factions à réduire ( A/B ET E/F), l’utilisation de la procédure « Reduction » telle qu'elle est écrite nécessite une manipulation assez délicate.
* A travers des arguments transmis à la procédure au moment de l'appel. Ceci va nous permettre de paramétrer la procédure pour permettre une utilisation plus simple de la procédure en question.
Le programme du premier exemple (réduction de fraction) peut être réécrit comme suit:
Program PremiereProcedure; Var A, B : Integer ; (* Variables globales *) Procedure Reduction (var X :Integer ; var Y: Integer) ; Var D : Integer ; (* Variables locales à la procédure Reduction *) T1, T2: Integer; Begin (*copie des valeurs de X et Y*) T1 := X ; T2 := Y ; (*Calcul de PGCD de T1 et T2*) Repeat D := T1 mod T2 ; T1 := T2 ; T2:=D Until D=0 ; (* Réalisation de la réduction *) X := X div T1 ; Y := Y div T1 End; (* Fin de le procédure Réduction*) Begin (* Début. du programme principal *) Writeln ('Donner la fraction A/B :') ; Readln (A, B) ; (* Appel de la procédure Reduction *) Reduction (A B); (* Affichage du résultat *) Writeln (‘La réduction de la fraction A/B a donné :’ A, ‘/’,B) ; End. (* Fin du programme principal *)
Remarqes: * Les variables (X, Y) de la procédures « Reduction » sont les paramètres formels de la procédure. * Lors de l'appel de la procédure, les paramètres (A ,B) sont appelés les paramètres effectifs. * Il est évident, que dans cette nouvelle formulation, il est possible d'appeler la même procédure (reduction) pour réduire d'autres fractions en ajoutant simplement un appel de la procédure avec d'autres paramètres effectifs. * Lors de l'appel de la procédure on dit qu'un passage de paramètres a eu lieu. Les paramètres formels deviennent alors des paramètres effectifs pour lesquels la procédure va être exécutée.
Pascal permet deux modes de passage de paramètres: le passage des paramètres par adresse (par référence où par variable) et le passage de paramètres par valeur. a) Passage de paramètre par adresse:
Un paramètre est passé par adresse s'il est précédé du mot 'Var' dans la définition de la procédure (voir l'exemple réduction d'une fraction). Dans ce cas, le passage de paramètre lors de l'appel se passe comme suit: * Le paramètre effectif doit être obligatoirement une variable de même type que le paramètre formel. * Le paramètre formel et le paramètre effectif représentent alors deux identificateurs de la même variable, et toute manipulation du paramètre formel est en fait une manipulation du paramètre effectif. On dit aussi que le paramètre formel devient un alias du paramètre effectif. * Lors de la fin d'exécution de la procédure, le paramètre effectif garde la dernière valeur qui lui a été affectée pendant l'exécution de la procédure en question.
* Le passage d'un paramètre par adresse permet au programme appelant de communiquer une valeur à la procédure, et à la procédure de communiquer un résultat.
Exemple : program PassageParAdresse; Var Pe : Integer ; Procédure Proc (var Pf: Integer) ; Begin Write (Pf) ; Pf := Pf + 1 ; Write (Pf) : ; End ; Begin Pe:= 0 ; Write (Pe) ; Proc (Pe) ; Write (Pe) ; End. Lors de son exécution, ce programme affichera les valeurs 0 0 1 1.
b) Le passage de paramètres par valeur :
Un paramètre est passé par valeur s'il n'est pas précédé du mot 'var' dans la définition de la procédure. Dans ce cas, le paramètre lors de l'appel se passe comme suit:
* Le paramètre effectif doit être une expression de type compatible avec le paramètre formel.
* Le paramètre formel se comporte exactement comme une variable locale de la procédure.
* Avant l'exécution de la première instruction de la procédure, la valeur du paramètre effectif est affectée au paramètre formel.
* La manipulation du paramètre formel pendant l'exécution de la procédure n'affecte en rien le paramètre effectif.
*Le passage d'un paramètre par valeur permet au programme appelant de communiquer une valeur à la procédure, mais ne permet pas à la procédure de communiquer un résultat à travers ce paramètre.
Exemple: On peut reprendre l'exemple précédent en utilisant un passage de paramètre par valeur.
Program PassageParValeur; Var Pe : Integer ; Procédure Proc (Pt: Integer) ; Begin Write (Pf) ; Pf := Pf + 1 ; Write (Pf) ; End; Begin Pe:=0; Write (Pe) ; Proc (Pe) ; Write (Pe) ; End.
Lors de son exécution, ce programme affichera les valeurs 0 0 1 0, | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Dim 21 Mar - 12:36 | |
| | |
|
| |
DJAKMINE ABDELFATEH
Messages : 112 Points : 117 Réputation : 0 Date d'inscription : 05/01/2010 Age : 35 Localisation : mostaganem
| Sujet: slt Dim 21 Mar - 12:51 | |
| djakmine abdelfateh g04 | |
|
| |
CHERFAOUI
Messages : 38 Points : 65 Réputation : 0 Date d'inscription : 12/03/2010
| Sujet: SALUT Dim 21 Mar - 14:44 | |
| salam cherfaoui fouzia G03 | |
|
| |
Bouziane Mohamed
Messages : 107 Points : 167 Réputation : 0 Date d'inscription : 15/01/2010 Age : 33 Localisation : Oued Rhiou
| Sujet: Re: cours numéro 11 Dim 21 Mar - 16:22 | |
| | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Dim 21 Mar - 17:22 | |
| | |
|
| |
Benhalima fatima
Messages : 34 Points : 51 Réputation : 1 Date d'inscription : 10/03/2010 Age : 34
| Sujet: saluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuut Dim 21 Mar - 20:35 | |
| | |
|
| |
DJEFFAL KHEIR EDDINE
Messages : 133 Points : 136 Réputation : -2 Date d'inscription : 15/01/2010 Age : 35
| |
| |
DJAKMINE ABDELFATEH
Messages : 112 Points : 117 Réputation : 0 Date d'inscription : 05/01/2010 Age : 35 Localisation : mostaganem
| |
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Lun 22 Mar - 20:39 | |
| | |
|
| |
DJEFFAL KHEIR EDDINE
Messages : 133 Points : 136 Réputation : -2 Date d'inscription : 15/01/2010 Age : 35
| Sujet: salut Mar 23 Mar - 12:41 | |
| bon jour (djeffal kheir eddine G04) | |
|
| |
DJAKMINE ABDELFATEH
Messages : 112 Points : 117 Réputation : 0 Date d'inscription : 05/01/2010 Age : 35 Localisation : mostaganem
| |
| |
fatima abbou
Messages : 41 Points : 62 Réputation : 0 Date d'inscription : 16/01/2010 Localisation : mostaganem
| Sujet: Re: cours numéro 11 Mar 23 Mar - 14:10 | |
| | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Mar 23 Mar - 14:23 | |
| | |
|
| |
Benhalima fatima
Messages : 34 Points : 51 Réputation : 1 Date d'inscription : 10/03/2010 Age : 34
| |
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Mer 24 Mar - 21:40 | |
| | |
|
| |
Benhalima fatima
Messages : 34 Points : 51 Réputation : 1 Date d'inscription : 10/03/2010 Age : 34
| Sujet: saluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuut Jeu 25 Mar - 11:49 | |
| | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Jeu 25 Mar - 11:51 | |
| | |
|
| |
Benhalima fatima
Messages : 34 Points : 51 Réputation : 1 Date d'inscription : 10/03/2010 Age : 34
| Sujet: saluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuut Jeu 25 Mar - 11:52 | |
| bonjouuuuuuuuuuuuuuuuuur attttttttttttttttttt | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Jeu 25 Mar - 12:01 | |
| | |
|
| |
Bouziane Mohamed
Messages : 107 Points : 167 Réputation : 0 Date d'inscription : 15/01/2010 Age : 33 Localisation : Oued Rhiou
| Sujet: Re: cours numéro 11 Jeu 25 Mar - 13:25 | |
| | |
|
| |
Bouziane Mohamed
Messages : 107 Points : 167 Réputation : 0 Date d'inscription : 15/01/2010 Age : 33 Localisation : Oued Rhiou
| Sujet: Re: cours numéro 11 Jeu 25 Mar - 19:51 | |
| | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Jeu 25 Mar - 19:53 | |
| | |
|
| |
Bouziane Mohamed
Messages : 107 Points : 167 Réputation : 0 Date d'inscription : 15/01/2010 Age : 33 Localisation : Oued Rhiou
| Sujet: Re: cours numéro 11 Jeu 25 Mar - 22:11 | |
| Bonjour à tous, vous êtes toujours absent | |
|
| |
Cherifi Mohammed Amine
Messages : 27 Points : 52 Réputation : 0 Date d'inscription : 22/12/2009 Age : 37
| Sujet: Re: cours numéro 11 Ven 26 Mar - 11:29 | |
| | |
|
| |
Contenu sponsorisé
| Sujet: Re: cours numéro 11 | |
| |
|
| |
| cours numéro 11 | |
|