élection présidentielle 2012 - les professions de foi des candidats - 1er tour
algo_TDI
-
Upload
cursed-guy -
Category
Documents
-
view
221 -
download
0
Transcript of algo_TDI
-
8/9/2019 algo_TDI
1/23
TDI CHAPITRE I
Introduction
INTRODUCTION
I.Introduction
1. Dfinitionsa. Linformation
Linformation est le support formel dun lment de connaissance humainesusceptible dtre reprsente laide de conventions (codages) afin dtreconserve, traite ou communique.
b. La donne
Une donne est la reprsentation dune information sous une formeconventionnelle (code) destine faciliter son traitement.
c. Traitement de linformation
Le traitement de linformation consiste appliquer un ou plusieurs oprations surune information en entre pour gnrer des rsultats en sortie
schma simplifi du traitement de
linformation
d. Lordinateur
Un ordinateur est une machine lectronique programmable destine autraitement de linformation.
e. Linformatique
Linformatique est la science du traitement de linformation dans les domaines
scientifiques, techniques, conomiques et sociaux.Exemples de traitements de linformation par informatique :
-dmontrer un thorme (mathmatique)-faire jouer aux checs (intelligence artificielle)-dpouiller un sondage (conomie)-grer un robot industriel (atelier)-facturation de produits (entreprise)-traduire un texte (linguistique)-imagerie mdicale (mdecine)
-formation distance (ducation)-Internet (grand public)...etc
1/23
-
8/9/2019 algo_TDI
2/23
TDI CHAPITRE I
Introduction
f. Le systme informatique
Ensemble de matriels (ordinateurs, rseaux) et de logiciels permettantd'acqurir, de stocker, de traiter, de communiquer des donnes pour rpondreaux besoins en information de ses utilisateurs.
g. Le systme dinformation
En tlcommunications et en informatique, le terme systme d'information (ouSI) possde les significations suivantes :* Un systme, automatis ou manuel, quicomprend des hommes, des machines et des mthodes organiss pour assembler,transmettre et rpandre des donnes qui reprsentent de l'information pour lesutilisateurs. ...
h. Les rseaux informatique
Un rseau informatique est un ensemble d'quipements interconnects qui
servent acheminer un flux d'informations. Sa naissance est le fruit du mariageentre Informatique et Tlcommunications.
2/23
-
8/9/2019 algo_TDI
3/23
TDI CHAPITRE II
Algorithmique (Notions de base)
ALGORITHMIQUE
(NOTIONS DE BASE)
I Introduction
1. Notion de programme informatiqueUn programme, informatique, se dfinit comme une srie dinstructions dans unlangage que lordinateur comprend. Un bon programme doit :- fonctionner- fonctionner selon les spcifications- pouvoir tre modifi facilement- tre prt temps- tre trs bien document
- utiliser la mmoire efficacement
2. Notion dalgorithme- Un algorithme dcrit un traitement sur un certain nombre, fini, de donnes(ventuellement aucune).- Un algorithme est la composition d'un ensemble fini d'tapes, chaque tapetant forme d'un nombre fini d'oprations dont chacune est :
- dfiniede faon rigoureuse et non ambigu;- effective, c'est--dire pouvant tre effectivement ralise par une
machine: cela correspond une action qui peut tre ralise avec unpapier et un crayon en un temps fini; par exemple la division entire estune opration effective, mais pas la division avec un nombre infini dedcimales.
- Quelle que soit la donne sur laquelle il travaille, un algorithme doittoujours se terminer aprs un nombre fini d'oprations, et fournir unrsultat.
Un algorithme doit rpondre aux 5 caractristiques suivantes :La finitude
La prcisionLe domaine des entresLe domaine des sortiesLexcutabilit
3. Organigramme et pseudo-codeHistoriquement, plusieurs types de notations ont reprsent des algorithmes.Il y a eu notamment une reprsentation graphique, avec des carrs, des losanges,etc. quon appelait des organigrammes. Aujourdhui, cette reprsentation est
quasiment abandonne, pour deux raisons. Dabord, parce que ds quelalgorithme commence grossir un peu, ce nest plus pratique du tout. Ensuite
3/23
-
8/9/2019 algo_TDI
4/23
TDI CHAPITRE II
Algorithmique (Notions de base)
parce que cette reprsentation favorise le glissement vers un certain type deprogrammation, dite non structure (voir les chapitres suivants), que lon tenteau contraire dviter.Cest pourquoi on utilise gnralement une srie de conventions appele
pseudo-code , qui ressemble un langage de programmation authentique donton aurait vacu la plupart des problmes de syntaxe. Ce pseudo-code estsusceptible de varier lgrement dun livre (ou dun enseignant) un autre. Cestbien normal : le pseudo-code, encore une fois, est purement conventionnel;aucune machine nest cense le reconnatre.
4. Algorithmique et programmationLes ordinateurs, quels quils soient, ne sont fondamentalement capables decomprendre que quatre catgories d'ordres (en programmation, on n'emploiera
pas le terme d'ordre, mais plutt celui d'instructions). Ces quatre famillesd'instructions sont :
laffectation de variables la lecture / criture les tests les boucles
Un algorithme informatique se ramne donc toujours au bout du compte lacombinaison de ces quatre petites briques de base. Il peut y en avoir quelquesunes, quelques dizaines, et jusqu plusieurs centaines de milliers dans certainsprogrammes de gestion (cependant, la taille dun algorithme ne conditionne pas ensoi sa complexit: de longs algorithmes peuvent tre finalement assez simples, etde petits trs compliqus).Pourquoi apprendre lalgorithmique pour apprendre programmer ? En quoi a-t-onbesoin dun langage spcial, distinct des langages de programmationcomprhensibles par les ordinateurs ?Parce que lalgorithmique exprime les instructions rsolvant un problme donn
indpendamment des particularits de tel ou tel langage. Il vaut mieux fairedabord le plan et rdiger ensuite que linverseApprendre lalgorithmique, cest apprendre manier la structure logique dunprogramme informatique. Cette dimension est prsente quelle que soit le langagede programmation ; mais lorsquon programme dans un langage (en C, en VisualBasic, etc.) on doit en plus se colleter les problmes de syntaxe, ou de typesdinstructions, propres ce langage. Apprendre lalgorithmique de manirespare, cest donc srier les difficults pour mieux les vaincre.
II.Elements de base des algorithmes
1. Notion de variable
4/23
-
8/9/2019 algo_TDI
5/23
TDI CHAPITRE II
Algorithmique (Notions de base)
a. Les types de donnes
Dans un programme informatique, on va avoir en permanence besoin de stockerprovisoirement des valeurs. Il peut sagir de donnes issues du disque dur,fournies par lutilisateur (frappes au clavier), ou autres. Il peut aussi sagir de
rsultats obtenus par le programme, intermdiaires ou dfinitifs. Ces donnespeuvent tre de plusieurs types : elles peuvent tre des nombres, du texte, etc.On peut dire quun type de donnes est lensemble de valeurs de mme naturequune variable peut avoir
b. Les variables
Pour employer une image, une variable est une bote, que le programme(lordinateur) va reprer par une tiquette (Nom de variable). Pour avoir accs aucontenu de la bote, il suffit de la dsigner par son tiquette.Dans lordinateur, physiquement, il y a un emplacement de mmoire, repr parune adresse binaire. Si on programmait dans un langage directementcomprhensible par la machine, on devrait dsigner nos donnes par des chiffresbinaires (0 et 1).Les langages informatiques plus volus (ce sont ceux que presque tout le mondeemploie) se chargent prcisment, entre autres rles, dpargner auprogrammeur la gestion fastidieuse des emplacements mmoire et de leursadresses. Il est beaucoup plus facile demployer des noms de variables de sonchoix, que de devoir manier des adresses binaires.La premire chose faire avant de pouvoir utiliser une variable est de crer labote et de lui coller une tiquette. Ceci se fait tout au dbut de lalgorithme,avant mme les instructions proprement dites. Cest ce quon appelle ladclaration des variables Le nom de la variable (ltiquette de la bote) obit des impratifs changeant selon les langages. Toutefois, une rgle absolue estquun nom de variable peut comporter des lettres et des chiffres, mais quilexclut la plupart des signes de ponctuation, en particulier les espaces. Un nom devariable correct commence galement imprativement par une lettre. Quant aunombre maximal de signes pour un nom de variable, il dpend du langage utilis.
En pseudo-code algorithmique, on est bien sr libre du nombre de signes pour unnom de variable.Lorsquon dclare une variable, il ne suffit pas de crer une bote (rserver unemplacement mmoire) ; encore doit-on prciser ce que lon voudra mettrededans, car de cela dpendent la taille de la bote (de lemplacement mmoire) etle type de codage utilis.
2. Expression et oprateurUne expression est un ensemble de valeurs, relies par des oprateurs, etquivalent une seule valeurPar exemple, voyons quelques expressions de type numrique. Ainsi :
5/23
-
8/9/2019 algo_TDI
6/23
TDI CHAPITRE II
Algorithmique (Notions de base)
75+4123-45+844T-12+5-R
sont toutes des expressions valides, condition que T et R soient bien desnombres. Car dans le cas contraire, la quatrime expression na pas de sens. Enloccurrence, les oprateurs employs sont laddition (+) et la soustraction (-).Un oprateur est un signe qui relie deux valeurs, pour produire un rsultat.Les oprateurs possibles dpendent du type des valeurs qui sont en jeu. On peutavoir :
a. Oprateurs numriques :
Ce sont les quatre oprations arithmtiques :
+ : addition- : soustraction* : multiplication/ : divisionMentionnons galement le ^ qui signifie puissance . 45 au carr scrira donc45 ^ 2.Enfin, on a le droit dutiliser les parenthses, avec les mmes rgles quenmathmatiques. La multiplication et la division ont naturellement priorit surladdition et la soustraction. Les parenthses ne sont ainsi utiles que pour
modifier cette priorit naturelle.Cela signifie quen informatique, 12 * 3 + 5 et (12 * 3) + 5 valent strictement lamme chose, savoir 41. Pourquoi ds lors se fatiguer mettre des parenthsesinutiles ?En revanche, 12 * (3 + 5) vaut 12 * 8 soit 96. Rien de difficile l-dedans, que dunormal.
b. Oprat eur alphan um ri que : & ou +
Cet oprateur permet de concatner, autrement dit dagglomrer, deux chanesde caractres. Par exemple :Variables A, B, C en CaractreDbutA "Salut "B "tout le monde"C A & BFinLa valeur de C la fin de lalgorithme est "Salut tout le monde"
c. Oprat eurs l ogiq ues ( ou b oolens) :
Il sagit du ET, du OU, du NON et du mystrieux (mais rarissime XOR : le ouexclusif).
6/23
-
8/9/2019 algo_TDI
7/23
TDI CHAPITRE II
Algorithmique (Notions de base)
3. LaffectationConsiste mettre la valeur dune variable dans une autre variablePseudo-code : Variable1 Variable2Exemple x10 ; yx
4. Lecture et critureLa lecture permet dattribuer une valeur un objet en allant lire sur unpriphrique dentre (exemple clavier) et elle range cette valeur dans lobjet.
Pseudo-code Organigramme
lire(Nom de variable)Exemple : Lire(x)
La lecture permet dcrire sur un priphrique de sortie linformation spcifie(exemple affichage lcran)
Pseudo-code Organigramme
crire(Nom de variable)Exemple : crire( salut )
En organigramme les instructions de lecture criture sont mises dans un losange
5. Le bloc dbut et finChaque programme possde un dbut et une fin
Pseudo-code Organigramme
Dbut..Fin
6. Exemples (voir exercices)
III.Structures de base des algorithmes
1. Structures alternatives
a. Linstruction SI
Linstruction si permet de faire un traitement si la condition est vrai un autre
traitement sinon
7/23
lire(Nom de variable)
crire(Nom de variable)
dbut
fin
-
8/9/2019 algo_TDI
8/23
TDI CHAPITRE II
Algorithmique (Notions de base)
Pseudo-code Organigramme
Si condition alorsBloc dinstructions
SinonBloc dinstructions
Fin siExemple : si x>=0 alorsEcrire (x, est positif )
SinonEcrire(x, est ngatif )
Fin si
b. Linstruction SELON
Linstruction selon permet dvaluer plusieurs cas pour des valeurs dune variablede type simple tel que caractre ou entier. Cest une structure que lon trouvedans tous les langages de programmation et qui permet dviter des si imbriqus
2. Structures itratives (les boucles)Les structures itratives permettent de rpter un traitement zro ou plusieursfois.
a. La boucle tant que
La boucle Tant que permet de rpter un traitement Tant que la condition estvrai
Pseudo-code Organigramme
Tant que condition faire
Bloc dinstructionsFin TqExemple :X10
Tant que x>=0 FaireXx-1
Fin Tq
b. La boucle rpter. jusqu'
La boucle Rpter jusqu' permet de rpter un traitement au moins une foisjusqu' ce que la condition est vrai la condition est vrifie la fin de la boucle
Pseudo-code Organigramme
8/23
condition
Traitement si
condition fausse
Traitement si
condition vrai
VraiFausse
condition
Traitement de la
boucle
VraiFausse
-
8/9/2019 algo_TDI
9/23
TDI CHAPITRE II
Algorithmique (Notions de base)
Rpter
Bloc dinstructionsJusqu' conditionExemple :
X10RpterXx-1
Jusqu' x=0
c. La boucle pour
La boucle pour est une structure qui existe dans la majorit des langages deprogrammation et qui permet de rpter un traitement un certain nombre de
fois, le nombre de rptition est connu lavance. La boucle pour utilise unevariable compteur qui sera incrmente ou dcrmente automatiquement selonla valeur du pasPseudo-code
Pour variable=valeur initiale valeur finale pas valeurs
Traitement de la boucle
Fin pourExempleDbutPour i=5 100 pas 5Ecrire (i, est un multiple de 5 )
Fin pour
d. La boucle rpter tant que
La boucle rpter tant que est semblable celle de rpter jusqu' sauf que letraitement est rpt tant que la condition est vraie
Pseudo-code Organigramme
RpterBloc dinstructions
Tant que conditionExemple :X10RpterXx-1
Tant que x>0
9/23
conditionVrai
Traitement
Fausse
condition
Traitement
Vrai
Fausse
-
8/9/2019 algo_TDI
10/23
TDI CHAPITRE II
Algorithmique (Notions de base)
10/23
-
8/9/2019 algo_TDI
11/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
CHAPITRE II
Algorithmes lis lutilisation de tableaux.
I.Introduction1. Dfinition :
Une liste est une suite dlments de mme type. Dans un programme, pourranger les lments dune liste on peut utiliser plusieurs variables simples maislorsque le nombre dlments Atteint une certaine limite il devient impossibledadopter cette solution.
La structure de tables ou (tableaux) vient rsoudre le problme : la liste
est dfinie en mmoire sous forme dun tableau ayant un seul nom et un seultype : type des lments de la liste .
Pour dsigner un lment de liste on utilise le nom du tableau suivi par lenumro dordre de llment du tableau que lon veut utiliser.
Exemple :Considrons le tableau T suivant :
T :
T(5) : reprsente le cinquime lment du tableau T c'est--dire 95
2. Algorithme de chargement dun tableau :
Lopration de chargement consiste affecter aux lments du tableaudes valeurs particulires (produites par un traitement) ou des valeurs
introduites par clavier (lecture).
a. Chargement par lecture :
Soit T un tableau de N lments crire lalgorithme qui lit les N lments du tableau
Dbut
I0
Tant que i
-
8/9/2019 algo_TDI
12/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
b. Chargement par traitement
Soit T un tableau de N lments crire lalgorithme qui rempli le tableau T par les N
multiples de 10
Dbut
I0
RpterI I+1
T(I) I*10
Jusqu' I=10
Fin
II. Recherche dans un tableau :
Cest lopration qui consiste trouver un ou plusieurs lments qui
peuvent exister lintrieure du tableau. Il y a plusieurs types de recherche, lesplus frquentes consiste retrouver un lment qui rpond une conditiondonne. Par exemple : chercher llment qui est gale 20 et afficher son rangdans le tableau. La recherche peut aboutir lorsque llment existe on dit que larecherche est fructueuse, elle peut chouer si llment nexiste pas, plusieursalgorithmes sont possibles. On va essayer de voir les algorithmes les plusutiliss.
1. La recherche squentielle :
La recherche squentielle consiste balayer le tableau squentiellementen partant du 1er lment ou du dernier jusqu' trouver llment recherch ouarriver la fin du tableau.
Exemple : soit chercher dans une liste de 20 lments rangs dans untableau T un lment X donn. Afficher la position de llment sil existe et lemessage non trou sil nexiste pas.
Algorithme : recherche de llment x dans un tableau N lments
DbutLire (X)I 1Tant que I< N et T(I)XII+1
Fin TqSi T(I)=X alors
crire lment trouv la position ; I)sinon
crire non trouv .Fin si
12/23
-
8/9/2019 algo_TDI
13/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
Fin
2. Recherche dichotomique : recherche dans untableau tri
La recherche dichotomique est applique sur les listes tries. Elle consiste limiter les champs de recherche successivement jusqu retrouver llmentrecherch ou avoir un champs de recherche qui ne contient aucun lment.Chaque fois on dfini un intervalle de recherche par une borne infrieure etsuprieure et on se positionne au milieu pour faire le test. Ce traitement serpte jusqu' trouver llment ou arriver un intervalle vide.
Algorithme de la recherche dichotomique.Dbut
Lire(x)M1Binf1BsupNTant que BinfT(m) alors
Binfm+1Fin si
Si x
-
8/9/2019 algo_TDI
14/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
Par exemple trier des donnes selon un ordre alphabtique croissant oudcroissant.Le tri est une des oprations des plus importantes des traitements surordinateur. Diffrentes mthodes peuvent tre envisages suivant la nature du
problme traiter.En informatique, on distingue deux grandes catgories de tri: le tri interne, le tri externe.Par tri interne, on comprend les mthodes de tri qui gardent l'ensemble deslments trier en mmoire centrale au moment de l'excution de l'algorithmede tri. Si cela ne pouvait se faire, soit parce que le nombre d'lments trierest trop grand, soit parce que les lments sont d'une taille trop importante, ilfaudrait faire appel des mthodes de tri externe.
Les mthodes de tri externene gardent en mmoire centrale qu'une partie deslments trier, les autres tant par consquent temporairement mmoriss surdes fichiers externes.Comme certaines mthodes de tri externe utilisent aussi en partie des mthodesde tri interne, nous tudierons dans ce chapitre quelques algorithmes classiquesde tri interne.
2. Les mthodes de tris
a. Tri par slection
-Mthode :On cherche llment de plus petite valeur pour lchanger avec llment enpremire position; puis on cherche llment ayant la deuxime plus petite valeurpour lchanger avec llment en deuxime position ; et ainsi de suite.
20
6 1 3 1 7
1 6 20
3 1 7
1 1 20 3 6 7
1 1 3 20
6 7
1 1 3 6 20
7
1 1 3 6 7 20
Il faut : 1 boucle pour parcourir le tableau et slectionner tous les lments ;
1 boucle pour rechercher le minimum parmi les lments non tris.
14/23
-
8/9/2019 algo_TDI
15/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
-Algorithme : Soit trier un tableau T de N lments dans lordre croissantDbutPour i=1 N-1
Mini
Pour j=i+1 NSi T(j)1 et T(j-1)>p
T(j)T(j-1)
Jj-1
15/23
-
8/9/2019 algo_TDI
16/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
Fin TqT(j)p
Fin pourFin
c. Tri bulle
-Mthode :
En commenant du 1er lment on compare chaque lment son suivant si cestsuprieur on permute et on passe llment suivant aprs avoir compt lenombre de permutation on continu jusqu' la fin du tableau, on rpte cetraitement jusqu' ce que le nombre de permutation est nul.-AlgorithmeDbut
RpterPermuter=fauxI1Rpter
Si T(i)>T(i+1) alorsPermutervraiX
-
8/9/2019 algo_TDI
17/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
SinonIi+1
Fin siFin Tq
Fin
17/23
-
8/9/2019 algo_TDI
18/23
TDI CHAPITRE IV
Algorithmique (Les procdures et les fonctions)
CHAPITRE III
Les procdures et les fonctions.
I. INTRODUCTION
Lorsqu'un programme est long, il est irraliste d'crire son code d'un seultenant. En fait, on dcompose le programme en plusieurs parties plus petites, ondonne un nom chacune de ces parties, et on les assemble pour former leprogramme final. C'est le principe de la programmation structure oumodulaire, qui repose sur l'criture de sous-programmes.Un sous-programme est, comme son nom l'indique, un programme ralisant untraitement particulier qui s'excute l'intrieur d'un autre programme.
Les sous-programmes sont utiliss pour deux raisons essentielles :- quand un mme traitement doit tre ralis plusieurs fois dans unprogramme (ou qu'il est utilis dans plusieurs programmes): on crit un sous-programme pour ce traitement et on l'appelle chaque endroit o l'on en abesoin. On vite ainsi de rcrire plusieurs fois le code du traitement.- pour organiser le code , amliorer la conception et la lisibilit des grosprogrammes. En effet, le dcoupage en sous-programmes permet de traitersparment les difficults.Certains sous-programmes ont dj t crits et peuvent tre utiliss
directement dans n'importe quel programme. Ce sont des sous-programmesstandards ou prdfinis. C'est le cas par exemple des sous programmespermettant de faire des calculs mathmatiques (racine carre, exposant, sinus,log ). La nature et le nombre de programmes standards dpendent des langages.Mais les sous-programmes prdfinis ne suffisent pas pour dcouper un grosprogramme : le programmeur est amen crire le code de ses propres sous-programmes.Il existe deux sortes de sous-programmes : les procdures et les fonctionsNous allons tudier d'abord les procdures simples, puis les fonctions.
II. LES PROCEDURES
Une procdure est un ensemble d'instructions regroupes sous un nom, quiralise un traitement particulier dans un programme lorsqu'on l'appelle.Comme un programme, une procdure possde un nom, des variables, desinstructions, un dbut et une fin.Mais contrairement un programme, un sous-programme ne peut pas s'excuterindpendamment d'un autre programme.
Exemple de DEFINITION d'une procdure:
18/23
-
8/9/2019 algo_TDI
19/23
TDI CHAPITRE IV
Algorithmique (Les procdures et les fonctions)
Procdure ligneEtoile( )Vari : entierDbut
Pour i =1jusqu' 10 FaireEcrire ('*')
FinPourEcrire('\n') //retour la ligneFinProc
Cette procdure permet d'afficher une ligne de 10 toiles puis passe la ligne.
APPEL d'une procdurePour dclencher l'excution d'une procdure dans un programme, il suffit de
l'appeler, c'est--dire d'indiquer son nom suivi de parenthses.
Programme RectangleEtoileVar
nlignes: entiercpt : entierDbutEcrire("Ce programme dessine un rectangle d'toiles. Combien voulez-vous delignes?")
Lire(nlignes)Pour cpt=1jusqu' nlignes Faire
ligneEtoile ( )
FinPourFin
Lorsque le processeur rencontre l'appel d'une procdure, il arrtemomentanment l'excution du programme appelant pour aller excuter les
instructions de la procdure. Quand il a termin l'excution de la procdure, leprocesseur reprend l'excution du programme appelant l o il s'tait arrt.Une procdure peut tre appele soit par un programme, soit par un autre sous-programme (qui lui mme a t appel). Les appels de sous-programmes peuvents'imbriquer autant qu'on le dsire.
1. Notions de variables locales et de paramtresLes variables dclares dans une procdure ne sont pas utilisables dans leprogramme appelant.
Chaque sous-programme a son propre espace de variables, inaccessible par lesautres. On dit que les variables sont LOCALES.
19/23
Appel de la
procdure ligneEtoile
-
8/9/2019 algo_TDI
20/23
TDI CHAPITRE IV
Algorithmique (Les procdures et les fonctions)
Procdure ligneEtoile( )Var
i : entier
DbutPour i=1jusqu' 10 FaireEcrire('*')
FinPourEcrire('\n')FinProc
Dans notre exemple, on ne pourrait pas saisir ou afficher la variable i dans leprogramme principal, car i est une variable de la procdure, utilisable seulement
dans celle -ci. Le programme principal n'a pas le droit de l'utiliser.Une question qui se pose alors est de savoir comment procdures et programmesvont pouvoir communiquer des donnes. Par exemple, on pourrait vouloir que leprogramme principal communique la procdure combien d'toiles afficher parligne. Cela est possible grce aux paramtres.Un paramtre est une variable particulire qui sert la communication entre
programme appelant et sous -programme.Exemple :Dans notre exemple, nous allons mettre le nombre d'toiles par lignes en
paramtre.Pour cela, nous indiquons entre parenthses la dclaration du paramtre (qui estune variable de la rocdure !). La valeur de ce paramtre est communique l'appel, par le programme appelant.
Procdure ligneEtoile(nombre : entier ) //sous-programmeVar
cpt : entierDbut
Pour cpt=1jusqu' nombre FaireEcrire('*')FinPourEcrire('\n')FinProc
Programme RectangleEtoile //programme appelantVarnlignes, netoiles: entier //nombre de lignes et nombre d'toiles par ligne
20/23
paramtre formel
-
8/9/2019 algo_TDI
21/23
TDI CHAPITRE IV
Algorithmique (Les procdures et les fonctions)
i : entierDbutEcrire("Ce programme dessine un rectangle d'toiles.")Ecrire("Combien voulez-vous d'toiles par ligne?")
Lire(netoiles)Ecrire("Combien voulez-vous de lignes?")Lire(nlignes)Pour i=1jusqu' nlignes FaireligneEtoile (netoiles)FinPourFin
2. Passage des paramtres de type donne (par valeur)
Lors de l'appel de la procdure, la valeur de la variable netoiles passe enargument est copie dans le paramtre formel nombre (qui est une variable). Laprocdure effectue alors le traitement avec la variable nombre qui a bien lavaleur voulue: celle de netoiles.La procdure n'utilise par directement la variable netoile : elle utilise sa valeur,qu'elle a recopie dans sa propre variable -paramtre.Remarque importante sur l'ordre et le nombre des paramtresLorsqu'il y a plusieurs paramtres dans la dfinition d'une procdure, il fautabsolument qu'il y en ait le mme nombre l'appel et que l'ordre soit respect
(car la copie se fait dans l'ordre).
3. Les paramtres rels et formelsIl est primordial de bien distinguer les paramtres qui se trouvent dans l'en-tted'une procdure, lors de sa dfinition et les paramtres (ou arguments) qui setrouvent placs entre parenthses lors de l'appel.
1 Les paramtres placs dans la dfinition d'une procdure sont lesparamtres formels . Ils servent dcrire le traitement raliser par laprocdure indpendamment des valeurs traites. Les paramtres formels
sont des variables locales la procdure, et ce titre ils sont dclarsdans l'entte de la procdure.2 Les paramtres placs dans l'appel d'une procdure sont les paramtres
rels ou effectifs.Lorsqu'ils sont de type donne, ils contiennenteffectivement les valeurs sur lesquelles sera effectu le traitement de laprocdure. Lors de l'appel, leur valeur est recopie dans les paramtresformels correspondants. Un paramtre effectif en donne peut tre soitune variable du programme appelant, soit une valeur littrale, soit lersultat d'une expression.
21/23
paramtre effectif
-
8/9/2019 algo_TDI
22/23
TDI CHAPITRE IV
Algorithmique (Les procdures et les fonctions)
III. LES FONCTIONSLes fonctions sont des sous-programmes qui retournent un et un seul rsultat auprogramme appelant. De ce fait, les fonctions sont appeles pour rcuprer unevaleur, alors que les procdures ne renvoient aucune valeur au programme
appelant.L'appel des fonctions est diffrent de l'appel des procdures :L'appel d'une fonction doit obligatoirement se trouver l'intrieur d'uneinstruction (affichage, affectation, test) qui utilise sa valeur.Le rsultat d'une fonction doit obligatoirement tre retourn au programmeappelant par l'instruction Retourne.Syntaxe gnraleFonction nom_Fonction(dclaration des paramtres) : type de la valeur retourneVar
//variables localesDbut//traitementRetourne valeur retournerFinFonction
Exemple :
Fonction factorielle(n: entier) : entier/*Cette fonction retourne la factorielledu nombre n pass en paramtre*/Vari : entierfact : entierDbutfact 1Si n ? 0 AlorsPour i=1 jusqu' n fairefact fact * nFinPourFinSiRetourne factFinFonction
Fonction saisie_nb_positif( ) : entier
22/23
instruction obligatoire
correspond la valeur d'une variable, d'uneexpression ou d'une valeur littrale.
dclaration du
paramtre formel
type de la valeur
retourne
instruction de retour
-
8/9/2019 algo_TDI
23/23
TDI CHAPITRE IV
Algorithmique (Les procdures et les fonctions)
/*Cette fonction permet de faire saisir l'utilisateur un nombre positif qui estalors retourn*/Varnb_saisi :entier
DbutEcrire( "Veuillez entrer un nombre positif")Lire( nb_saisi)Tantque nb_saisi < 0 FaireEcrire( "Erreur. Saisissez un nombre suprieur 0 s'il vous plait !")Lire( nb_saisi)FinTantqueRetourne nb_saisiFinFonction
Exemple de programme appelant utilisant ces deux fonctions:Programme affiche_factorielleVarnombre: entierrep : chaneDbutRpternombre saisie_nb_positif( )
Ecrire( "La factorielle de ", nombre, " est ", factorielle(nombre))Ecrire( "Voulez-vous recommencez? (oui/non)")Lire( rep)Jusqu' rep = "non"Ecrire( "A bientt")Fin
Remarque :Les paramtres d'une fonction sont toujours de type donne. La valeur des
paramtres effectifs l'appel est recopie dans les paramtres formels quiservent raliser le traitement de la fonction.
Remarque sur le passage des paramtres: Le passage de paramtre par valeurne permet pas la modification de la variable passe en paramtre. unautre type de passage de paramtre, est le passage de paramtre paradresse ou (rfrence), dans ce type de passage de paramtre laprocdure peut modifie la valeur de la variable passe en paramtre.Chaque langage de programmation propose sa propre technique pour
raliser ce type de passage de paramtre.
appel de la fonction saisie_nb_positif
et affectation de sa valeur retourne la
variable nombre
paramtre effectif
appel de la fonction
factorielle et affichage de sa
valeur retourne