algo_TDI

download algo_TDI

of 23

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