Algorithmique
Tableaux, Procédures et Fonctions
Prof. A. SABOUR
1
Variable
Une variable est un concept qui permet de stocker et de gérer des
données en mémoire. Chaque variable est caractérisée par un nom, un
type de données, et une valeur (ou une référence à une valeur). Les
variables peuvent être utilisées pour stocker des informations telles que
des nombres, des chaînes de caractères, des objets, etc. Elles sont
déclarées avec un type spécifique et peuvent être modifiées au cours de
l'exécution du programme.
22
Mémoire
La mémoire d'un ordinateur est organisée en emplacements, chaque
emplacement étant identifié par une adresse. Les variables occupent
un emplacement mémoire et sont associées à une adresse de départ,
une taille qui détermine l'espace mémoire qu'elles occupent, et un type
qui indique comment les données sont stockées et traitées.
33
Accès en lecture et écriture
Les variables peuvent être lues (consultées) ou écrites (modifiées). Les
accès en lecture permettent de récupérer la valeur d'une variable sans
la modifier, tandis que les accès en écriture permettent de mettre à jour
la valeur de la variable. Certains langages de programmation
permettent de restreindre les accès en écriture, par exemple en
déclarant des constantes dont la valeur ne peut être modifiée après leur
initialisation.
44
Les tableaux
Un tableau est une structure de données qui permet de stocker une
collection d'éléments du même type, identifiés par un seul nom, et
accessibles à l'aide d'un ou plusieurs indices. Le nombre d'indices
détermine la dimension du tableau. Par exemple, un tableau à une
dimension est une séquence d'éléments, un tableau à deux dimensions
est une matrice, et ainsi de suite.
55
Les tableaux
Un tableau est un ensemble ordonne contenant un n²ombre
constant d‘éléments d'un même type ;
Exemple
un tableau a une dimension de 7 éléments :
un tableau a deux dimensions de 3 * 5 = 15 éléments :
Un tableau peut avoir n'importe quel nombre de dimensions ; En
général, on manipule surtout :
I des tableaux a une dimension (= vecteurs) ;
I des tableaux a deux dimensions (= matrices) ;
6
Construction des tableaux
Les langages de programmation offrent divers
mécanismes pour construire des tableaux ;
En pseudocode, on va supposer qu'il existe des
fonctions pour les construire :
Exemple:
TB tab_binaire(n) ; // tableau a n composantes binaires
TE tab_entiers(n) ; // tableau a n composantes entières
TR tab_reels(n) ; // tableau a n composantes réelles
TC tab_caracteres(n) ; // tableau de n caractères
TE2 tab_entiers(l,c) ; // tableau a l*c composantes entières sur
l lignes et c colonnes
7
Propriétés des tableaux
Il faut également initialiser le tableau !
I les fonctions qu'on a vues créent des tableaux, mais ils
peuvent contenir n'importe quoi ;
On ne peut pas mélanger les types dans un tableau ;
La taille d'un tableau est constante : on ne peut pas donc pas
la modifier ;
On accède aux éléments d'un tableau grâce a l'operateur [] ;
Exemple (construire un tableau contenant les entiers de 1 a 10)
n 10 ;
T tab_entiers(n) ;
pour i 1 à n
T[i ] i ;
fin_pour
8
99
1010
Notions de sous-algorithme
Définition
La notion de sous-algorithme est un moyen simple et efficace de structurer les
algorithmes. Elle consiste a associer un nom a un groupe d'instructions qui
peut alors être active par l'appel de cet identifiant. Cette notion possède
plusieurs avantages.
Intérêt :
Réaliser un découpage d’une tâche en sous-tâche.
Effectuer une seule description d’une tâche commune
Concevoir une application de manière descendante en entrant de plus en plus dans les
détails
Lisibilité
Optimisation
Fiabilité
11
Notions de sous-algorithme
Lisibilité : Lorsqu'un algorithme est convenablement structuré, il est composé de petites
sections ne dépassant pas une page écran. Il est alors possible de suivre et comprendre le
déroulement d'un traitement. La lisibilité s'en trouve grandement accrue.
Optimisation : Il arrive que des groupes d'instructions se répètent plusieurs fois dans un
même algorithme. En créant une section regroupant ces instructions il est possible de gagner
du temps en conception et en saisie, de réduire la longueur d'un algorithme et l'espace
alloué aux variables, mais également faciliter les opérations de déboggage et maintenance.
Fiabilité : Un système est d'autant plus fiable que les liaisons entre ses différents éléments
sont plus étroites et limitées. La décomposition d'un algorithme en différentes sections
accroît de façon notable sa fiabilité. La notion de sous-algorithme, en permettant de définir
des zones mémoires cachées à l'algorithme ou aux autres sous-algorithmes appelants, permet
de limiter cette dispersion de l'information, et de ce fait, d'accroître la fiabilité globale d'un
système.
12
Procédures & Fonctions
Une procedure est un algorithme paramétré, c.-a-d.
un bloc d'instructions, ayant un début et une fin, et
identifie par un nom (l'identifiant)
La signature (ou en-tête) d'un sous-algorithme est le
couple < identifiant, paramètres >. L'arite est le
nombre de paramètres d'un sous-algorithme.
Structure : un sous-algorithme est composé
D’une tête nom sous-algorithme, paramètres(arguments) avec
leur type
D’un corps des déclarations d’objets locaux aux sous-
algorithme, instructions à exécuter
13
Exemple de fonction / fonction
14
Forme d’une Fonction
Une fonction s'écrit en dehors du programme principal sous la forme
Fonction identificateur (paramètres et leurs types) : type_retour_fonction
debut
Instructions constituant le corps de la fonction
retourne …
Fin
type de fonction : le type du résultat renvoyé par la fonction
Identificateur : le nom que l’on a donné à la fonction
liste de paramètres : la liste des paramètres formels donnés en entrée avec
leurs types
corps de la fonction : un bloc d’instructions, pouvant comprendre la
déclaration des « variables locales » a la fonctions
Remarque : le corps de la fonction doit comporter une instruction de la forme :
return(expression); où expression est du type du résultat de la fonction
15
Procèdures
Dans certains cas, on peut avoir besoin de répéter une tache dans plusieurs
endroits du programme, mais que dans cette tache on ne calcule pas de
résultats ou qu'on calcule plusieurs résultats à la fois
Dans ces cas on ne peut pas utiliser une fonction, on utilise une procédure
Une procédure est un sous-programme semblable à une fonction mais qui ne
retourne rien
Une procédure s'écrit en dehors du programme principal sous la forme :
Procédure nom_procédure (paramètres et leurs types)
debut
Instructions constituant le corps de la procédure
Fin
Remarque : une procédure peut ne pas avoir de paramètres
16
Appel d'une procédure
L'appel d'une procédure, se fait dans le programme principale ou dans une
autre procédure par une instruction indiquant le nom de la procédure :
Procédure exemple_proc (…)
Début
…
Fin
Algorithme exepmleAppelProcédure
Début
exemple_proc (…)
…
Fin
Remarque : contrairement à l'appel d'une fonction, on ne peut pas affecter la
procédure appelée ou l'utiliser dans une expression. L'appel d'une procédure est
une instruction autonome
17
Paramètres d'une procédure
Les paramètres servent à échanger des données entre le programme
principale (ou la procédure appelante) et la procédure appelée
Comme avec les fonctions :
Les paramètres placés dans la déclaration d'une procédure sont appelés
paramètres formels. Ces paramètres peuvent prendre toutes les valeurs
possibles mais ils sont abstraits (n'existent pas réellement)
Les paramètres placés dans l'appel d'une procédure sont appelés
paramètres effectifs. ils contiennent les valeurs pour effectuer le
traitement
Le nombre de paramètres effectifs doit être égal au nombre de paramètres
formels. L'ordre et le type des paramètres doivent correspondre
18