| cours numéro 10 | |
|
+52maghnia meddah seddak yacine tabti abdesselem haddar meriem ziane karima boukhatem hayet cherif gueddl chams eddine amell kharoubi faycal belhocine abdelrahman latroch modta nounou(saiad a.e.k) khalil sadi oudia moh maissour abdala benklouz Belbachir fatima siham louati lalia marroki Yahia Hynd coucou oueld coucou benadjaimia ahmed Bachir Elezaar Faiza Benanteur soumia lahouel aicha hadjoudj messaoudi ali haroual benchendikh mohamed lahcene.seddik213 DAOUD HINDA beladjal KRICHICHE BENACER BOUZID BOUHENNI_SOUMIA CHERFAOUI wiam daadoua BenBerber Hind Benhalima fatima larabi*maamar Cherifi Mohammed Amine tawfik Benziane DJEFFAL KHEIR EDDINE benalioua yasmine chenine afif nouredine kacher Bouziane Mohamed DAOUD HINDA G 4 Benalioua Yahya DJAKMINE ABDELFATEH zoubida Bendref Belkacem Admin 56 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 10 Dim 16 Mar - 19:09 | |
| Quatrième pas dans Pascal: Les Procédures et Les Fonctions
1) Introduction:
Pascal, ainsi que la majorité des langages de programmation, donne la possibi1ité de découper un programme en plusieurs parties (nommées souvent «modules »). Cette «programmation modulaire» se justifie pour différentes raisons :
*Dès qu'un programme dépasse une ou deux pages de texte, il devient difficile de le comprendre, et ainsi d'assurer sa maintenance (correction d'erreurs, modification, mise à jour). Une écriture modulaire permet de diviser le programme en plusieurs parties fonctionnelles et de regrouper dans le «programme principal» les instructions qui décrivent l'enchaînement. Cette notion de découpage peut ensuite être appliqué à chacune des parties (modules) du Programme ce qui permet d'avoir affaire toujours à des modules très simples qu'il est facile d’isoler et de réutiliser . *La programmation modulaire permet d'éviter des Séquences d'instructions répétitives. En particulier, la notion d'argument permet de « paramétrer » les modules.
2) Notion de Procédure et de fonction :
Pascal permet la manipulation de deux types de modules: les procédures et les fonctions. Nous avons déjà eu l'occasion d'utiliser des « fonctions prédéfinies» telle que «ord, pred, succ, sqr ». Cette notion de fonction est très proche de la notion de fonction mathématique. Une fonction possède généralement un ou plusieurs arguments et elle fournit un résultat. Le corps d'une fonction à la même structure que le corps de tout programme Pascal.
La procédure peut être considéré comme une généralisation de la notion de fonction. Elle possède généralement des arguments et peut retourner un ou plusieurs résultats, ou même aucun. Pascal intègre un nombre très important de procédures, nous pouvons citer « read, write ». Nous pouvons dire qu'en général une fonction permet de réaliser un calcul et une procédure permet de réaliser une action.
3) Une première procédure :
Pour illustrer cette notion de procédure nous allons traiter un premier exemple dans lequel il s’agit de réduire une fraction A/B (A et B sont des entiers). Rappelons que cette réduction consiste à calculer le plus grand diviseur commun des entiers A et B puis de les diviser par ce diviseur. Pour cela nous allons écrire une procédure réduction qui se chargera de la réduction.
Le programme principal se chargera de la lecture des données et de l’affichage des résultats.
Remarque : *Le corps de la procédure est écrit dans la section de déclaration de procédures et fonctions (après la section de déclaration de variables). *L'exécution du programme débute toujours à la première instruction exécutable du programme principal. *L'appel d'une procédure consiste à écrire sont nom au début d'une instruction. *L'exécution de la procédure « Reduction » (ou d’une fonction) n'a lieu que lors de l'appel de celle-ci dans le programme principal. *Après l'exécution d'une procédure, l'exécution reprend à l'instruction qui suit de la procédure.
Program PremiereProcedure; Var A, B, X, y : Integer ; (*Variables globales*) Procedure Reduction; Var D: Integer; (*Variable locale à la procédure Reduction *) Begin (*Copie de A et B dans X et Y*) X:=A; Y:=B; (* Calcul du PGCD de X et Y ) Repeat D:=X mod Y; X:=Y; Y:=D Until D=0; (* Réduction de la fraction A/B*) A := A div X; B := B div X End; (* Fin de la 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 ; (* Affichage du résultat *) Writeln(‘La réduction de la fraction A/B a donné : ‘, A, '/’, B) ; End. (* Fin du programme principal *) 4) Notion de variable locale et de variable globale :
Une procédure (ou une fonction) a la même structure qu'un programme Pascal. En particulier, elle contient, généralement, sa propre section de déclaration de variables. Dans cet exemple, les variables « A, B, X, y » sont des variables globales et la variable «D» est une variable locale à la procédure « Reduction ». D’une manière générale, les variables (locales et g1obales) obéissent aux règles suivantes : * Une procédure ou fonction peut utiliser toutes les variables déclarées dans le programme Principal (variables globales) et peut aussi contenir ses propres déclarations de variables (variables locales). * La durée de vie d'une variable locale débute à l'instant où la procédure (ou fonction) est appelée et se termine quand l'exécution du corps de la procédure est achevée, alors que la durée de vie d'une variable globale commence au début de l'exécution du programme et se termine quand l'exécution du programme est totalement achevée. * Une variable locale est une variable propre au bloc (procédure ou fonction) dan laquelle est définie et il est incorrect de l’utiliser en dehors de ce bloc. Ce bloc constitue la « portée » de cette variable. * Lorsqu’une variable locale porte le même nom qu’une variable globale l'utilisation de ce nom de variable à l’intérieur de la procédure implique qu’il s’agit de la variable locale. | |
|
| |
Bendref Belkacem
Messages : 41 Points : 58 Réputation : 0 Date d'inscription : 16/11/2009
| Sujet: Re: cours numéro 10 Sam 30 Jan - 16:11 | |
| | |
|
| |
Bendref Belkacem
Messages : 41 Points : 58 Réputation : 0 Date d'inscription : 16/11/2009
| Sujet: Re: cours numéro 10 Sam 30 Jan - 16:12 | |
| | |
|
| |
Bendref Belkacem
Messages : 41 Points : 58 Réputation : 0 Date d'inscription : 16/11/2009
| Sujet: Re: cours numéro 10 Sam 30 Jan - 16:12 | |
| | |
|
| |
Bendref Belkacem
Messages : 41 Points : 58 Réputation : 0 Date d'inscription : 16/11/2009
| Sujet: Re: cours numéro 10 Sam 30 Jan - 16:14 | |
| bonne journée!!! | |
|
| |
zoubida
Messages : 33 Points : 39 Réputation : 0 Date d'inscription : 25/11/2009
| Sujet: HI Lun 1 Fév - 10:54 | |
| bnj prof c bouhkoudmi zoubida G 03 | |
|
| |
DJAKMINE ABDELFATEH
Messages : 112 Points : 117 Réputation : 0 Date d'inscription : 05/01/2010 Age : 35 Localisation : mostaganem
| Sujet: Re: cours numéro 10 Lun 1 Fév - 13:16 | |
| BNJ PROF C DJAKMINE ABDELFATEH G 04 | |
|
| |
kadri is Invité
| Sujet: mostamerci Lun 1 Fév - 17:53 | |
| merci beaucoup prof.kadri G05 |
|
| |
berrezou Invité
| Sujet: Re: cours numéro 10 Mar 2 Fév - 17:10 | |
| salut prof je suis de g02. |
|
| |
CHERFAOU Invité
| Sujet: salam Mar 2 Fév - 17:47 | |
| slt c cherfaoui fouzia G03 |
|
| |
CHERFAOU Invité
| |
| |
b yassin Invité
| Sujet: slt Mar 2 Fév - 18:37 | |
| |
|
| |
med sekf Invité
| Sujet: slt Mar 2 Fév - 19:09 | |
| j suis sekfal mohamed g 07 |
|
| |
Benalioua Yahya
Messages : 71 Points : 139 Réputation : 1 Date d'inscription : 28/01/2010
| Sujet: Re: cours numéro 10 Mar 2 Fév - 19:20 | |
| bonne journée | |
|
| |
DJAKMINE ABDELFATEH
Messages : 112 Points : 117 Réputation : 0 Date d'inscription : 05/01/2010 Age : 35 Localisation : mostaganem
| Sujet: Re: cours numéro 10 Mar 2 Fév - 21:49 | |
| SLT PROF C DJAKMINE ABDELFATEH G04 | |
|
| |
*tima* Invité
| Sujet: salutation Mar 2 Fév - 22:02 | |
| salut monsieur; c'est Benhalima fatima zahra groupe 2 |
|
| |
DAOUD HINDA G 4
Messages : 24 Points : 26 Réputation : 0 Date d'inscription : 31/01/2010
| Sujet: re Mar 2 Fév - 22:09 | |
| bonne révision les amis (daoud hinda g 4) | |
|
| |
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 10 Mar 2 Fév - 22:17 | |
| | |
|
| |
b yassin Invité
| Sujet: slllllt Jeu 4 Fév - 17:15 | |
| boubegra yassine g03 |
|
| |
CHERFAOU Invité
| Sujet: salam Jeu 4 Fév - 17:28 | |
| salut merci monsieur cherfaoui fouziade G03 |
|
| |
CHERFAOU Invité
| Sujet: salam Jeu 4 Fév - 17:32 | |
| salut merci monsieur cherfaoui fouziade G03 |
|
| |
*tima* Invité
| Sujet: slt Jeu 4 Fév - 19:19 | |
| salut att.; benhalima fatima zahra gn 02 |
|
| |
kacher
Messages : 57 Points : 100 Réputation : 0 Date d'inscription : 07/12/2009 Localisation : Mostaganem
| Sujet: Salut! Jeu 4 Fév - 19:21 | |
| Slt; c'est KACHER de groupe "05" | |
|
| |
Bendref Belkacem
Messages : 41 Points : 58 Réputation : 0 Date d'inscription : 16/11/2009
| Sujet: Re: cours numéro 10 Sam 6 Fév - 14:04 | |
| | |
|
| |
bouzidi Invité
| Sujet: slm Dim 7 Fév - 18:32 | |
| |
|
| |
Contenu sponsorisé
| Sujet: Re: cours numéro 10 | |
| |
|
| |
| cours numéro 10 | |
|