Les  Ă©lĂ©ments de base d’un algorithme    

1) Introduction   
Dans la vie courante, un algorithme peut prendre la forme d’une recette de cuisine ou bien une rĂ©solution d’exercice.
 Une recette de cuisine par exemple, est un algorithme, Ă  partir  des ingrĂ©dients, elle explique comment parvenir  au plat, de mĂŞme, une rĂ©solution d’exercice explique comment Ă  partir des donnĂ©es, on obtient d’une solution finale  en un certain nombre d’Ă©tapes.

Exemple1 :  PrĂ©parer la pâte Ă   tarte    

Les ingrĂ©dients  ( 250 g de farine , 50 g de beurre  , 1 verre de lait  )


==> Les actions Ă©lĂ©mentaires Ă   rĂ©aliser

DĂ©but
  1. Incorporer le beurre dans la farine  
  2. PĂ©trir le mĂ©lange jusqu’Ă  ce qu’il soit homogène
  3. Ajouter du lait
  4. MĂ©langer
  5. Si la pâte est trop sèche, alors ajouter du lait, puis mélanger
  6. la reposer une demi-heure 
  7. Passez au four pendant 25min
Fin

Exemple2:  RĂ©solution d’une Ă©quation de 2Ă©me degrĂ©

==> Les actions Ă©lĂ©mentaires Ă   rĂ©aliser

DĂ©but
  1. Calculer delta
  2. Si delta Ă©gale 0, alors il existe une seule solution
  3. Si delta strictement positif, alors il existe deux solutions
  4. Si delta strictement nĂ©gatif, alors n’a pas de solution
Fin

Un Algorithmique  est une suite des Ă©tapes Ă  suivre pour rĂ©aliser un travail.
   DĂ©finition d’un algorithme
Le mot « algorithme » provient de la forme latine (Algorismus) du nom du mathĂ©maticien arabe AL KHAWARIZMI. Ce dernier formula une première  dĂ©finition  « un algorithme est une sĂ©quence d’opĂ©rations visant Ă  la rĂ©solution d’un problème en un temps fini »
Nous pouvons adopter la dĂ©finition suivante : Description de la mĂ©thode de rĂ©solution d’un problème quelconque  en utilisant  des instructions Ă©lĂ©mentaires. Ces instructions  deviennent comprĂ©hensibles par l’ordinateur lors de la traduction de l’algorithme en un programme.
  Algorithme   et  Programmation
Tout problème Ă  programmer doit ĂŞtre rĂ©solu d’abord sous forme  d’algorithme, puis converti en programme dans le langage de votre choix. En effet, un algorithme est indĂ©pendant du langage de programmation utilisĂ©. 
Un programme est une suite d’instructions, Ă©crit dans un langage de programmation, exĂ©cutĂ©es par ordinateur, permettant de traiter un problème et de renvoyer des rĂ©sultats. Il reprĂ©sente la traduction d’un algorithme Ă  l’aide d’un langage de programmation.
Le cycle de dĂ©veloppement d’un programme (ou d’une application)  informatique peut  se rĂ©sumer comme ça :

algorithme





Parmi les langages de programmations, on peut citer : Pascal, C, C++, JAVA, Python, C≠ ……


2)  Structure gĂ©nĂ©rale d’un algorithme
Un algorithme est composé de trois principale:

  1. L’en tĂŞte : cette partie sert Ă  donner un nom Ă  l’algorithme. Elle est prĂ©cĂ©dĂ©e par le mot Algorithme.
  2. La partie dĂ©clarative : dans cette partie, on dĂ©clare les diffĂ©rents objets que l’algorithme utilise (Variables, constantes, etc).
  3. Le corps de l’algorithme : cette partie  contient les instructions de l’algorithme. Elle est dĂ©limitĂ©e par les mots dĂ©but et Fin
        

EntĂŞte
Algorithme   Nom_Algorithme
partie déclarative
Variable        Nom : type
Constante      Nom=valeur
corps de l’algorithme
 DĂ©but
   Instruction 1
   Instruction 2
    ………………..
    …………….….
   Instruction n
Fin
                                                     
  3)  Les variables et les constantes
  3-1) Notion de variable  
Les donnĂ©es  ainsi que les rĂ©sultats des calculs intermĂ©diaires ou finaux, sont rangĂ©s dans des cases mĂ©moires qui correspondent Ă  des variables, Ainsi, une variable  est rangĂ©e dans un emplacement mĂ©moire nommĂ©, de taille fixe (ou non) prenant au cours du dĂ©roulement de l’algorithme, un nombre indĂ©fini de valeurs diffĂ©rentes.
                                                                                                                               
  3-2) dĂ©claration des variables
La partie dĂ©claration consiste Ă  Ă©numĂ©rer toutes les variables dont on aura besoin  au cours de l’algorithme. Chaque dĂ©claration doit comporter le nom de variable (identificateur) et son type.

   Syntaxe : Variable  identificateur : type

 Identificateur : Un identificateur est le nom donnĂ© Ă  une variable, une fonction, etc. Ce nome doit obligatoirement commencer par une lettre suivie d’une suite de  lettres et les chiffres et il ne doit pas contenir d’espace.
Types de donnée


  1. Type entier: sert Ă  manipuler les nombres entiers positifs ou nĂ©gatifs. Par exemple : 5, 20, -12
  2. Type rĂ©el:  sert Ă  manipuler les nombres Ă  virgule. Par exemple : 5, 2.1,    -1.2 …
  3. Type  caractère  sert Ă  manipuler des caractères alphabĂ©tiques  et numĂ©riques. Par exemple :  "a",  "B " , "6"   …
  4. Type  chaĂ®ne:  sert Ă  manipuler des chaines de caractères  permettant de reprĂ©senter des mot ou des phrases  comme :   "bonjour",   "Cours_5"    …
  5. Type boolĂ©en  utilise les expressions logiques. Il  n’y a que deux valeurs boolĂ©ennes : Vrai et  faux


Exemple:   
  Variables   a, b : entiers      
                        c : rĂ©el      
                   nom : chaine_caractères           
                absent : boolĂ©en 

Les opérations sur des variables:
   
      
3-3) Les constantes   
Comme une variable, il existe une  constante  correspond un emplacement mĂ©moire  rĂ©servĂ© auquel on accède par le nom qui lui a Ă©tĂ© attribuĂ©, mais dont la valeur stockĂ©e ne sera jamais modifiĂ©e au cours du programme.

 Syntaxe :  
  Constante  Nom_Constante = valeur
      
   Exemple :    Constante  Pi = 3.14 

  

4) Les instructions de base                                                                                 
Une instruction est une  action Ă©lĂ©mentaire commandant Ă  la machine un calcul, ou une communication avec l’un de ses pĂ©riphĂ©riques d’entrĂ©es  ou de sorties. Les instructions de base sont :
4-1) L’instruction d’affectation :   
 L’affectation permet d’affecter une valeur Ă  une variable. Elle est symbolisĂ©e en algorithmique par «  »
 Syntaxe :         Variable  Expression 

Exemple :  Var  8   ;     Var1  Var2  ;     A B +2

                                                                                                                                                              
algorithme
                                     
 

                             
4-2) L’instruction d’entrĂ©e :
 L’instruction d’entrĂ©e ou de lecture donne la main Ă  l’utilisateur pour saisir une donnĂ©e au clavier. La valeur saisie sera affectĂ©e Ă  une variable 
Syntaxe :    Lire (identificateur)

Exemples :    Lire (A)    ou      Lire (A, B, C)

L’instruction  Lire(A)    permet  Ă  l’utilisateur de saisir une valeur Ă  clavier. Cette valeur sera affectĂ©e Ă  la variable A.
4-3) L’instruction de sortie :   
Avant de lire une variable, il est conseillĂ© d’Ă©crire un message Ă  l’Ă©cran, afin de prĂ©venir l’utilisateur de ce qu’il doit taper. 
L’instruction de sortie (d’Ă©criture) permet d’afficher des informations  Ă  l’Ă©cran.
Syntaxe :     Ecrire (expression)


Exemple :   Ecrire ("Donner votre âge : ")

Ecrire (A)  cette instruction permet d’afficher Ă  l’Ă©cran la valeur de  variable A.

4-3) Les commentaires : 
Lorsqu'un algorithme devint long, il est conseillĂ© d’ajouter des lignes de commentaires dans  l’algorithme, c’est-Ă -dire des lignes qui ont pour but de donner des indications sur les instructions effectuĂ©es et d’expliquer le fonctionnement d’algorithme (programme) sans que le compilateur ne les prenne en compte.


On va voir  deux types de commentaires
// Commentaire sur une ligne
/*  Commentaire sur plusieurs lignes   */
Remarque :
Parfois on utilise les commentaires pour annuler l’action de quelques instructions dans un algorithme ou un programme au lieu de les effacer  comme dans cet exemple :

Variable i: entier
// Variable j: réel


      Chapitre 2 : Les  structures alternatives et rĂ©pĂ©titives

1) Les structures alternatives 
1-1) Introduction :
Contrairement  au traitement sĂ©quentiel, la structure alternative ou conditionnelle permet d’exĂ©cuter ou non une sĂ©rie d’instructions selon la valeur d’une condition.
1-2)  La structure    Si alors ………  sinon  …… fin si   ou    Si alors ………  fin si


algorithme

                                                                                                                                 
Une condition est une expression  logique  ou une variable logique Ă©valuĂ©e Ă   Vrai ou faux. La condition est Ă©valuĂ©e. Si  elle est vraie, la sĂ©rie d’instruction(s)1 est exĂ©cutĂ©e et l’ensemble d’instruction(s) 2 est ignorĂ©, la machine sautera directement Ă  la première instruction situĂ©e après  Fin si.
De  mĂŞme, au cas oĂą la condition  Ă©tait fausse la machine saute directement Ă  la première ligne situĂ©e après le  Sinon et exĂ©cute l’ensemble d’instruction2.

Exercice d’application 1
Écrire un algorithme  qui affiche si un nombre entier  saisi au clavier est pair ou impair 

algorithme



Remarque : il existe aussi un autre type de condition c’est la condition composĂ©es.

Certains problèmes exigent  de formuler des conditions qui ne peuvent ĂŞtre exprimĂ©es sous la forme simple, par exemple la condition  de  note  de devoir doit ĂŞtre inclus dans  l’intervalle [0, 20],  cette  condition est composĂ©e de deux conditions simples qui  sont   note ≥ 0    et   note 20

Exercice d’application 2
Ecrire  un algorithme qui teste une note saisi au clavier est comprise entre 0 et 20.

algorithme



Exercice 1:
Ecrire un algorithme qui demande deux nombres m et n Ă   l’utilisateur et l’informe ensuite si le produit  de ces deux nombres est positif ou nĂ©gatif. On inclut   dans l’algorithme le cas  oĂą le produit peut ĂŞtre nul.


algorithme



Exercice 2:
Une boutique propose Ă  ces clients, une rĂ©duction de 15% pour les montants d’achat supĂ©rieurs Ă  200 dh. Ecrire un algorithme permettant de saisir le prix total HT et de calculer le montant TTC  en prenant en compte la rĂ©duction et la TVA=20% .


algorithme


1-3)  Structure Ă  choix multiples
Cette  structure conditionnelle permet de choisir le traitement Ă  effectuer en fonction  de la valeur ou de l’intervalle de valeurs d’une variable o d’une expression.

Syntaxe :   
  


Lorsque l’ordinateur rencontre cette instruction, il vĂ©rifie la valeur de la variable de sĂ©lection (sĂ©lecteur) et il la compare aux diffĂ©rentes valeurs. 
Les valeurs sont Ă©valuĂ©es  dans l’ordre, les unes après les autres, et une fois la valeur de sĂ©lecteur est vĂ©rifiĂ©e l’action associĂ©e  est exĂ©cutĂ©e. On peut utiliser une instruction Sinon  (facultative), dont l’action sera exĂ©cutĂ©e si aucune des valeurs Ă©valuĂ©es n’a pas Ă©tĂ© remplie
 
Exercice :
Ecrire un algorithme permettant d’afficher le mois en lettre selon le  numĂ©ro saisi  au clavier.


algorithme


2) Les Structures  rĂ©pĂ©titives  
2-1) Introduction
Prenons d’une saisie au clavier, par exemple, on pose une question Ă  laquelle doit rĂ©pondre par « oui » ou « non ». 
L’utilisateur risque de taper autre chose (une autre lettre), le programme peut soit planter par une erreur d’exĂ©cution soit dĂ©rouler normalement jusqu’au bout, mais en produisant des rĂ©sultats fantaisistes.
Pour Ă©viter ce problème, on peut mettre en place un contrĂ´le de saisie pour vĂ©rifier que les donnĂ©es entrĂ©es au clavier correspondent bien Ă  celles attendues par l’algorithme.
 

algorithme


!!L’algorithme ci-dessus rĂ©sout le problème si on se trompe qu’une  seule fois, et on fait entrer une valeur correcte Ă  la deuxième demande. Sinon en cas de deuxième  erreur, il faudrait rajouter un  «  SI  ». Et ainsi de suite, on peut rajouter des  centaines  de  «  SI  »       
==> La solution Ă  ce problème consiste Ă  utiliser une structure rĂ©pĂ©titive.  

Une structure rĂ©pĂ©titive, encore appelĂ©e boucle, est utilisĂ©e quand une instruction ou une liste d’instruction, doit ĂŞtre rĂ©pĂ©tĂ©e plusieurs fois. La rĂ©pĂ©tition est soumise Ă  une condition
 
2-2) La boucle Tant Que …. Faire  
La boucle Tant que permet de répéter un traitement tant que la condition est vraie.
Syntaxe :


                                                                                                                         

==> L’exĂ©cution de la boule dĂ©pend de la valeur de la condition. Si est vrai, l’algorithme exĂ©cute les instructions qui suivent, jusqu’Ă  ce qu’il  rencontre la ligne FinTantque .Il retourne ensuite sur la ligne du Tantque, procède au mĂŞme examen, et ainsi de suite. 
==> La boucle ne s’arrĂŞte que lorsque prend la valeur fausse, et dans ce cas le programme  poursuit son exĂ©cution après  FinTantQue.
Exemple:


algorithme


Remarque :
Si la  structure   TantQue  contient la condition ne devient jamais fausse. Le programme tourne dans une boucle infinie et n’en sort plus.

Exemple :   
algorithme


     

Dans cet exemple nous avons  une boucle infinie. L’ordinateur ne s’arrĂŞtera jamais d’afficher le message Bonsoir  car la variable i qui est testĂ©e dans la condition n’est jamais incrĂ©menter. Alors pour  rĂ©soudre  le problème de boucle infinie dans ce cas-lĂ , on incrĂ©mente la variable i  Ă   chaque tour de boucle  pour afficher   Bonsoir  10 fois exactement.  


algorithme




Exercice1
Ecrire un algorithme qui calcule la somme  S = 1+2+3+4+……..+ 10


algorithme




Exercice2  
Ecrire un algorithme qui calcule la somme   S= 1+2+3+4+……..+ N,  oĂą N saisi par l’utilisateur. 



algorithme



2-3)  La boucle  Pour …. Faire
La boucle  pour …. Faire  permet de rĂ©pĂ©ter une liste d’instructions un nombre connu de fois. 

Syntaxe :


==> La variable compteur  est de type entier. Elle est initialisĂ©e par la valeur initiale, le compteur augmente sa valeur de 1 automatiquement Ă   chaque tour de boucle  jusqu’Ă  la valeur finale.

==> Lorsque la variable compteur vaut la valeur finale, le traitement est exĂ©cutĂ© une seule fois puis le programme sort de la boucle. 


Exemple:
Ecrire un algorithme qui affiche  Bonjour 10 fois.

Ecrire un algorithme




Exercice1  
Ecrire un algorithme qui calcule S= 1+2+3+4+……..+ 10. Utilisant la boucle pour.


Ecrire un algorithme



Exercice2
Ecrire un algorithme qui calcule  S= 1+2+3+4+……..+ N. Utilisant la boucle pour.

Ecrire un algorithme                                                                                                    


Exercice 3 
Ecrire un algorithme qui affiche la table de multiplication de 5. Utilisant la boucle pour.


Ecrire un algorithme


Exercice 4
Ecrire un algorithme qui affiche la table de multiplication d’un  entier saisie par l’utilisateur, Utilisant la boucle pour.


Ecrire un algorithme

2-4) La  boucle  RĂ©pĂ©ter…jusqu’Ă                                                                                     
Cette boucle permet de rĂ©pĂ©ter une instruction  jusqu’Ă  ce qu’une soit vrai. 
Remarque : Cette boucle ne s’utilise en gĂ©nĂ©ral que pour des menus, elle est dangereuse car il n’y a pas de vĂ©rification de la condition avant  d’y entrer.
Syntaxe :
   



==> La liste d’instructions est exĂ©cutĂ©e, puis la condition est Ă©valuĂ©e. Si elle est fausse, le corps de la boucle est exĂ©cutĂ© Ă  nouveau puis la condition est rĂ©Ă©valuĂ©e et si elle est  vraie, le programme sort de la boucle et exĂ©cute l’instruction qui suit Jusqu’Ă .
 
Exemple:
En utilisant  la boucle RĂ©pĂ©ter…..jusqu’Ă , on Ă©crit  un algorithme qui affiche Bonjour  10  fois.


Ecrire un algorithme



Exercice1
Ecrire un algorithme qui calcule la somme  S= 1+2+3+…+ 10. Utilisant la boucle RĂ©pĂ©ter jusqu’Ă .


Ecrire un algorithme


Exercice 2
Ecrire un algorithme qui affiche la table de multiplication de 8. Utilisant la boucle RĂ©pĂ©ter jusqu’Ă . 

hhhhh
Ecrire un algorithme


Remarques :
==> Les boucles « RĂ©pĂ©ter » et « «TantQue » sont utilisĂ©es lorsqu’on ne sait pas au dĂ©part combien de fois il faudra exĂ©cuter ces boucles.
==> A la diffĂ©rence de la boucle « TantQue » par rapport  Ă  la boucle « RĂ©pĂ©ter » cette
dernière  est exĂ©cutĂ©e  au moins une seule fois.
==> La condition d’arrĂŞt de la boucle « rĂ©pĂ©ter » est la nĂ©gation de la condition  de poursuite de la boucle «TantQue »
==> On utilise la boucle  « Pour » quand l’on connait  le nombre d’itĂ©rations Ă  l’avance.



    ** Chapitre 3: Les  Tableaux **

1) Introduction
Imaginons que dans un algorithme, nous avons besoin d’un grand nombre de variables, il devient difficile de donner un nom pour chaque variable. 
Exemple :
Ecrire un algorithme permettant de saisir  cinq notes et de les afficher après avoir multipliĂ© toutes les notes par trois.





==> La mĂŞme instruction rĂ©pète  cinq fois. Imaginons que  si l’on voudrait rĂ©aliser cet algorithme avec 100 notes, cela devient très difficile.
==>  Pour rĂ©soudre ce problème, il existe un type de donnĂ©es qui permet de dĂ©finir plusieurs. variables de mĂŞme type.
 

2) DĂ©finition
Un tableau est une suite d’Ă©lĂ©ments de mĂŞme type. Il utilise plusieurs cases mĂ©moire Ă  l’aide d’un seul nom. Comme toutes les cases portent le mĂŞme nom, elles se diffĂ©rencient par un numĂ©ro  ou un indice. 
Nous pouvons reprĂ©senter schĂ©matiquement un tableau nommĂ© Note composĂ© de cinq cases, dans la mĂ©moire comme suit :



 



3) Tableau Ă  une dimension
  3-1) DĂ©claration
La dĂ©claration d’un tableau permet d’associer Ă  n nom d’une zone mĂ©moire composĂ©e d’un certain nombre de cases mĂ©moires de mĂŞme type.  
Syntaxe :        Variable  identificateur : tableau [taille_max] de type …… 

Exemple :        Variable   Note :  Tableau[40] de rĂ©els     
Remarques :
==>  Le premier Ă©lĂ©ment d’un tableau porte l’indice 1 ou 0 selon les langages.
==>  La valeur d’un indice doit ĂŞtre un nombre entier.
==> La valeur d’un indice doit  ĂŞtre infĂ©rieure ou Ă©gale au nombre d’Ă©lĂ©ments du tableau. Par exemple, avec le tableau tab [20], il est impossible d’Ă©crire tab[21] ou tab[26], ces expressions font rĂ©fĂ©rence Ă  des Ă©lĂ©ments qui n’existe pas.
 ==> L’utilisation de ces Ă©lĂ©ments  se fait en suite, via le nom du tableau et son indice. Ce dernier peut ĂŞtre soit une valeur (tab[3]  ) , soit une variable ( tab [i] ) ou encore une expression ( tab[i+1] ).
==> Pour Faire un parcours complet sur un tableau, on utilise une boucle.

Exemple 1
Ecrire un algorithme permettant de saisir  20 notes et de les stocker dans un tableau nommĂ© Etudiant, puis les afficher.
Ecrire un algorithme

 

Exemple 2 :
Ecrire un algorithme permettant de saisir  20 notes et de les afficher après avoir multipliĂ© toutes ces notes par un coefficient fourni par l’utilisateur.


Ecrire un algorithme

Exercice 1  
Ecrire un algorithme permettant de saisir 20 notes et qui affiche la moyenne de ces notes.


Ecrire un algorithme
                                                                       

Exercice 2
Ecrire un algorithme permettant de saisir 20 notes et qui affiche le maximum de ces notes. 


Ecrire un algorithme
 

4) Tableau Ă  deux dimensions
Reprenons l’exemple des notes en considĂ©rant  cette fois qu’un Ă©tudiant a plusieurs notes (une note pour chaque matière). On peut simplifier des choses comme suite.


  


==> Les tableaux Ă  deux dimensions se reprĂ©sentent comme une matrice ayant un certain nombre de lignes (première dimension) et un certain nombre de colonne (seconde  dimension). 
4-1) DĂ©claration

   Syntaxe :     Variable  identificateur : tableau [nb_lignes , nb_colonnes] de <type>
Exemple :    Variable Note : Tableau[3,4] de rĂ©els 
Remarques:
==> L’utilisation d’une matrice  se fait via son nom  et ses indices. Ces derniers  peuvent  ĂŞtre soient des valeurs (tab[1,3]  ) , soient des  variables   ( tab [i,j] ) ou encore des expressions ( tab[i+1,j] ).
==> Pour Faire un parcours complet sur une matrice, on utilise deux boucles, l’une au sein  de l’autre, c’est ce qu’on appelle  les boucles imbriquĂ©es. La première boucle pour  parcourir les lignes tandis que la deuxième est utilisĂ©e pour parcourir les Ă©lĂ©ments de  la ligne prĂ©cisĂ©e par la boucle principale (la première boucle). 

Exemple 1
Ecrire un algorithme permettant de saisir  les  notes  d’une classe de 30 Ă©tudiants en 5 matières. 

Ecrire un algorithme


  















                *** Chapitre 4 : ProcĂ©dures et les fonctions ***


  1) Introduction
Lorsque l’on  progresse dans la conception d’un algorithme, ce dernier peut prendre une taille et une complexitĂ© croissante. De mĂŞme des sĂ©quences d’instructions peuvent se rĂ©pĂ©ter Ă  plusieurs fois.
Lorsque un algorithme dĂ©passe deux page ou plus devient difficile Ă  comprendre et Ă  gĂ©rer par  les programmeurs. La  solution consiste alors Ă  dĂ©couper  l’algorithme en plusieurs parties plus  petites. Ces parties sont appelĂ©es des sous-algorithmes.
Le sous-algorithme est Ă©crit sĂ©parĂ©ment du corps de l’algorithme principal et sera appelĂ© par  celui-ci  quand ceci sera nĂ©cessaire.
Il existe deux sortes de sous-algorithme : les procĂ©dures et les fonctions 
2) Les procédures
Une procĂ©dure est une sĂ©rie d’instruction regroupĂ©es sous un nom, qui permet d’effectuer des actions par un simple appel de la procĂ©dure dans un algorithme ou dans un autres sous algorithme.
Une procédure renvoie plusieurs valeurs (pas une) ou aucune valeur.
2-1) DĂ©claration d’une procĂ©dure   
  Syntaxe :













Après  le nom de la procĂ©dure, il faut donner la liste des paramètres (s’il en a) avec leur type respectif. Ces paramètres formels. Leur valeur n’est pas connue lors de la crĂ©ation de la procĂ©dure. 


Exemple 1 :
Ecrire une procĂ©dure qui affiche Ă  l’Ă©cran une ligne de 15 Ă©toiles









Exemple 2 :
Ecrire une procĂ©dure qui affiche Ă  l’Ă©cran une ligne de N Ă©toiles, oĂą N passĂ© comme paramètre.










2-2) L’appel d’une procĂ©dure  
Pour dĂ©clencher l’exĂ©cution d’une procĂ©dure dans un programme, il suffit de l’appeler. L’appel de procĂ©dure s’Ă©crit en mettant le nom de la procĂ©dure, puis la liste des paramètres. SĂ©parĂ©s par des virgules. 
A l’appel d’une procĂ©dure, le programme interrompt son dĂ©roulement normal, exĂ©cute les  instructions de  la procĂ©dure, puis retourne au programme appelant et exĂ©cute l’instruction suivante.
Syntaxe :     Nom_procĂ©dure (…………..)
Les paramètres utilisĂ©es lors de l’appel d’une procĂ©dure sont appelĂ©s paramètres effectifs. Ces paramètres donneront leurs valeurs aux paramètres formels.

Exemple 2 :
Ecrire un algorithme qui permet d’affiche Ă  l’Ă©cran une ligne de N Ă©toiles, oĂą N passĂ© comme paramètre dans une procĂ©dure.















2-3) Passage de paramètres
Les Ă©changes d’informations entre une procĂ©dure  et le sous-algorithme appelant se font par l’intermĂ©diaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des usages différents.

==> Passage  par valeur
Dans  ce type de passage, le paramètre formel reçoit uniquement une copie de la valeur du paramètre effectif. La valeur du paramètre effectif ne sera jamais modifiĂ©e.  
Exemple:  
Soit  l’algorithme suivant :

                                                                                                                  












Cet algorithme dĂ©finit une procĂ©dure pour laquelle on utilise le passage de paramètres par valeurs. Lors de l’appel de la procĂ©dure, la valeur du paramètre effectif N est recopiĂ©e dans le paramètre formel A. la procĂ©dure  effectue alors le traitement et affiche la valeur de la variable A dans ce cas 10.
Après l’appel de la procĂ©dure, l’algorithme affiche la valeur de la variable N dans ce cas 5. La procĂ©dure ne modifie pas le paramètre qui est passĂ© par valeur.
==> Passage  par adresse (ou par rĂ©fĂ©rence)
Dans ce type  de passage, la procĂ©dure utilise l’adresse du paramètre effectif. Lorsqu'on utilise  l’adresse du paramètre, on accède directement Ă  son contenu. La valeur de la variable effectif  sera donc modifiĂ©e.
Les paramètres passés par adresse sont précédés par le mot clé Var.

Exemple: 
Soit  l’algorithme suivant :

  














A l’exĂ©cution de la procĂ©dure, l’instruction Ecrire (A)  permet d’afficher Ă  l’Ă©cran 10. Au retour dans l’algorithme principal, l’instruction Ecrire (N)  affiche   Ă©galement 10.  
Dans cet algorithme le paramètre passĂ© correspond Ă  la rĂ©fĂ©rence (l’adresse) de la variable N. Elle est donc modifiĂ©e par l’instruction :   A ← A*2.
Remarque :
Lorsqu'il y a plusieurs paramètres dans la dĂ©finition d’une procĂ©dure, il faut absolument qu’il y en ait le mĂŞme nombre Ă  l’appel et que l’ordre   soit respectĂ©.
3) Les fonctions 
Les fonctions sont des sous algorithme admettant des paramètres (ou sans paramètres) et retournant une seule valeur de type simple qui peut apparaĂ®tre dans une expression, dans une comparaison, Ă  la droite d’une affectation, etc.
3-1) DĂ©claration d’une fonction
Syntaxe : 











La syntaxe de la dĂ©claration d’une fonction est assez proche de celle d’une procĂ©dure Ă  laquelle on ajoute un type qui reprĂ©sente le type de la valeur retournĂ©e par la fonction et une  instruction Retourner Expression. Cette dernière instruction renvoie au programme appelant le  rĂ©sultat de  l’expression placĂ©e Ă  la suite du mot clĂ© Retourner.   
Remarque :  
Les paramètres sont facultatifs, mais s’il  n’y a pas de paramètres, les parenthèses doivent rester prĂ©sentes. 
Exemple:
DĂ©finir une fonction qui renvoie le plus grand de deux nombres passĂ©es par les paramètres.      


                                                                  








3-2) L’appel d’une fonction   
Pour exĂ©cuter une fonction, il suffit de faire appel Ă  elle  en Ă©crivant son nom suivi des paramètres effectifs. C’est la mĂŞme syntaxe qu’une procĂ©dure.
A la diffĂ©rence d’une procĂ©dure, la fonction retourne une valeur. L’appel d’une fonction pourra  donc ĂŞtre utilisĂ© dans une instruction (affichage, affectation …) qui utilise sa valeur.

Syntaxe :     Nom_fonction (…………..)
Exemple :
 Ecrire un algorithme qui permet d’appeler Ă  la fonction Max de l’exemple prĂ©cĂ©dent :



                                                                                                                                        














Exercice1
Ecrire une fonction puissance qui permet de calculer la puissance d’un nombre rĂ©el.


                                                                        


                                                                                                                      
                                                                                                                                                            

                                              

Exercice2
Ecrire un algorithme qui demande Ă  l’utilisateur deux entiers, et calcule la somme des nombres entiers compris entre ces deux entiers. Par exemple : si l’utilisateur tape   5 et 17, c’est-Ă -dire  la somme  est : S= 5+6+7+…+ 17.