Vous êtes sur la page 1sur 15

LES STRUCTURES DE DONNEES L.P.A.

I. Introduction
Pour chaque objet : constante ou variable utilisée dans un programme,
l’ordinateur réserve un espace dans sa mémoire (RAM). Imaginons que la
RAM est considérée comme un TAXI, qu’une CONSTANTE est considérée
comme CHAUFFEUR DE TAXI, une VARIABLE est considérée comme un CLIENT
et la durée d’exécution du programme = La durée du travail du chauffeur.
Dans le taxi, le chauffeur prendra un siège et les clients prendront autant de sièges que leur
nombre. La mémoire RAM réservera de l’espace pour toutes les variables et les constantes
utilisées dans le programme. Le chauffeur reste fixe dans le taxi pendant la durée de son travail.
Par analogie, une constante possède une valeur constante pendant toute la durée du programme.
Les clients changent pendant la durée du travail du chauffeur. De même une variable reçoit une
valeur qui peut changer tout le long de l’exécution du programme.

II. Les objets


Un programme est une suite d’instructions permettant de manipuler des objets. Un objet est un espace
mémoire dont la gestion est prise en charge par le programme qui l’utilise. Un objet peut être :
 Une constante,
 Une variable ou
 Un type

II.1 Les constantes


Une constante est une zone mémoire dans laquelle est stockée une valeur. Comme son nom
l’indique, cette valeur restera la même pendant toutes les périodes d’exécution du programme.
Une constante est caractérisée par :
1) Son nom ou identificateur (unique dans tout le programme, concis, significatif dans le
contexte où il est utilisé, un identificateur est formé de lettres non accentuées, chiffres et
tiret de soulignement, il commence toujours par une lettre).
2) Sa valeur.
Exemples : donner quelques exemples de constantes
Déclaration
Description
En algorithmique En Pascal
Nmax=100 Const nmax=100 ; Une constante entière
E=1.6E-19 Const E=1.6E-19 Une constante réelle
Etablissement= ″ LPA ″ Const Etablissement=′LPA′ ; Une constante chaîne
Etat=vrai Const etat=true ; Une constante booléenne
Aerobase = ″ @ ″ Const aerobase=′@′ ; Une constante de type
caractère
On citera quelques constantes prédéfinies :
Pi = 3.14159265359 ; maxint = 32767 ;

Mmearab@laposte.net Page 1 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

Exemple : CONST e = 2.71828182846;


Tableau de déclaration des objets (T.D.O.)
Objet Nature / Type
e Constante = 2.71828182846

En pascal, la déclaration d’une constante se fait comme suit :


CONST nom_constante = valeur_constante ;

II.2 Les variables


Comme son nom l’indique, une variable est une zone mémoire qui peut changer de valeur d’une exécution à
une autre. Toute variable est caractérisée par :
1) Son nom (identificateur unique dans tout le programme, concis, significatif, obéissant aux règles
d’un identificateur mentionnées précédemment).
2) Son type : qui décrit son utilisation.
3) Son contenu : la valeur prise par la variable à l’instant de sa
consultation.
Exemples de déclaration algorithmique de variables :
Tableau de déclaration des objets
Objet Nature / Type
A Entier
R Réel
C Caractère
CH Chaîne de caractères
Activité 2 :
Soit la suite d’affectations suivante :
1) x  10
2) y  2
3) z x
4) x  y
5) y  z
Q1/ Donner le résultat d’exécution de cette séquence en complétant le tableau suivant :
Trace d’exécution de la séquence
N° de la séquence x Y z
1 10 - -
2 10 2 -
3 10 2 10
4 2 2 10
5 2 10 10
Q2/ Quelles sont les valeurs finales de x et y ?
Réponse : x prend la valeur 2 et y prend la valeur 10
Q3/ Quel est le rôle de cette séquence ?
Réponse : elle permet de permuter deux valeurs
Q4/ Quel est le rôle de la variable z ? Comment échanger les contenus des
deux verres ?
Réponse : z est une variable intermédiaire ou auxiliaire.
Mmearab@laposte.net Page 2 3Maths&sciences
LES STRUCTURES DE DONNEES L.P.A.

En pascal, la déclaration d’une variable se fait comme suit :


VAR nom_variable : type_variable ;

Exemple : VAR A : INTEGER ; R : REAL ; C : CHAR ; CH : STRING ;

III. Types des objets


Le type d’une variable permet de déterminer :
L’ensemble des valeurs que peut prendre une variable.
L’ensemble des opérations qu’on peut appliquer sur la
variable en question.
Déterminer l’espace mémoire nécessaire pour le chargement
de cette variable dans la mémoire.

III.1 Les types simples prédéfinis

a- Le type entier
Les valeurs de type entier forment un sous- ensemble de (entiers relatifs). Signalons que les
valeurs prises par les variables de ce type ne correspondent pas à l’ensemble infini que l’on
rencontre en mathématiques. Deux bornes inférieure et supérieure, sont en fait fixées par le
constructeur de la machine et qui sont reliées aux nombres de bits alloués dans la mémoire pour
cette variable.

Si les entiers par exemple sont représentés sur n bits, l’ensemble des entiers positifs et négatifs sera :
-2 n-1 ≤ entier ≤ 2 n-1-1
Pour n= 16, on a : -2 16-1 =-32768 ≤ entier ≤ +32767=2 16-1-1
Les types entiers prédéfinis
Type Limites [borne_inf, Nombres de bits
En En pascal borne_sup]
algorithme
Entier court SHORTINT [-128, +127] 8 bits signés
Octet BYTE [0, 255] 8 bits non signés
Entier INTEGER [-32768, +32767] 16 bits signés
Mot WORD [0, 65535] 16 bits non signés
Entier long LONGINT [-231, +231-1] 32 bits signés

Exemples d’ entiers : -32520 0 29560 10 -50 6


Activité :
1) écrire un programme qui permet de calculer et afficher le résultat R de la multiplication de deux entiers
A et B.

Mmearab@laposte.net Page 3 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

2) Exécuter le programme avec les valeurs suivantes : A=1000 et B= 50000. Que remarquez-vous ?
Remarque : quand il y a débordement au-delà des valeurs borne_inf et borne_sup, les calculs
deviennent erronés.
Les opérateurs arithmétiques sur les entiers
53 10
Syntaxe Rôle Exemple
Toutes les comparaisons -50 < 0, 150 > 30, … 3 5

Reste
+ Addition de deux entiers 35 + 20 = 55
- Soustraction de deux entiers 100-20 = 80 Quotient
* Multiplication de deux entiers 12 * 3 = 36
DIV Division entière 25 DIV 4 = 6 ; 30 DIV 6 = 5
MOD Reste de la division entière 25 MOD 4 = 1 ; 30 MOD 6 = 0 53 div 10 = 5
Dans (IN) Appartenance à un intervalle 10 Dans [0, 10]
53 mod 10 = 3
En pascal, la déclaration d’une variable entière se fait comme suit :
VAR « nom_variable » : INTEGER ;

Exemple : VAR R, S, P : INTEGER ;

b- Le type réel (REAL)


Les valeurs de type réel forment un sous–ensemble de l’ensemble .
Les types réels prédéfinis
Nombre de chiffres Occupation en
Type Valeurs autorisées
significatifs mémoire
SINGLE [1.5*10-45, 3.4*1038] 7 chiffres 4 octets
REAL [-2.9*10-39, 1.7*1038] 11 chiffres 6 octets
DOUBLE [5.0*10-324 ,1.7*10308] 15 chiffres 8 octets
EXTENDED [3.4*10-4932, 1.1*104932] 19 chiffres 10 octets

COMP [-9.2*1018, 9.2*1018] 20 chiffres 8 octets


Noter Bien Le seul type réel qui sera retenu et utilisé est le type REAL
Exemple : 0.0 2.0 -1.5 3.104 -14.5
Le nombre réel 3.104 (30000) peut s’écrire aussi 3E+4 3 représente la mantisse du nombre et +4
constitue l’exposant qui doit être entier. La lettre E se lit « dix puissance ».

Les opérateurs arithmétiques sur les réels


Syntaxe Rôle Exemples
Toutes les comparaisons 2.4 < 2.6, -1.5 > -3.7, …
+ Addition 3.5 + 2.2 = 5.7
- Soustraction 10.9-2.1 = 8.8

Mmearab@laposte.net Page 4 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

* Multiplication 1.5 * 3 = 4.5


/ Division réelle 25 / 4 = 6.25 ; 12 / 3 = 4.0

En pascal, la déclaration d’une variable réelle se fait comme suit :


VAR NomVariable : REAL ;

Exemple :
VAR X, Y : REAL ;
Les opérateurs arithmétiques et leurs priorités

Soit l’opération suivante : C : résultat


A et B : opérandes
C=A+B avec + : opérateur

Désignation de Priorité des Opérateur Type des


l’opération opérateurs En algorithme En Pascal opérandes
Parenthèses  (…) (…) Tout type
Multiplication * * Entier ou réel
Division réelle / / Réel
Division entière  DIV DIV Entier
Reste de la division
MOD MOD Entier
entière
Addition + + Entier ou réel

Soustraction - - Entier ou réel
Les opérateurs ayant la même priorité seront évalués de gauche à droite

Exemple:
Evaluer les expressions suivantes :
1/ 120 + 12 * 5 – 3 donnera 177
Vous pouvez modifier cet ordre en ajoutant des parenthèses. L’expression 120+12*(5 – 3) sera
évaluée de la manière suivante 144
2/ 6 + 2 * 5 DIV 3 donnera 9
3/ 6 + 4 * 7 – 2 * (8 MOD 3+5) donnera 20
Les fonctions arithmétiques standard
Syntaxe
Syntaxe en Type du
en Rôle de la fonction Type de x Exemples
algorithme résultat
Pascal
Même
Retourne la valeur Entier ou R := ABS (-10) ; R= 10
Abs (x) ABS (x) type
absolue de x. réel R := ABS (-5.5) ; R= 5.5
que x
R := ROUND (8.49) ; R= 8
ROUND Retourne l’entier le
Arrondi (x) Réel Entier R := ROUND (8.5) ; R= 9
(x) plus proche de x.
R := ROUND (8.7) ; R= 9

Mmearab@laposte.net Page 5 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

Même
Retourne le carré de Entier ou R := SQR (3) ; R= 9
Carré (x) SQR (x) type
x. réel R:= SQR (3.5); R= 12.25
que x
Retourne le cosinus R:= COS (PI/2); R= 0
Cos (x) COS (x) Réel Réel
de x (x en radians). R:= COS (PI); R= -1
Retourne la partie Int(2.5)=2.0
ent (x) int (x) Réel
entière de x Int(-3.5)=-3.0
Retourne la racine
RacineCarré carrée de x si x est Entier ou R:= SQRT (4); R= 2
SQRT(x) Réel
(x) positif sinon il Réel R:= SQRT (40.5); R= 6.36
provoque une erreur.
Retourne le sinus de x R:= SIN (PI/2); R= 1
Sin (x) SIN (x) Réel Réel
(x en radians) R:= SIN (PI); R= 0
Retourne un entier,
TRUNC R:= TRUNC (-1.5); R= -1
Tronc (x) en ignorant la partie Réel
(x) R:= TRUNC (9.5); R= 9
décimale de x.
Retourne la partie
Frac Frac(x) Réel Réel Y := frac(13.87)  Y = 0.87
fractionnaire de x
L’ordinateur propose L’ordinateur peut proposer 2
Random
Aléa(x) un entier aléatoire entier entier sachant l’instruction
(x)
entre 0 et x-1 random(6)
L’ordinateur propose L’ordinateur peut proposer
Aléa Random un réel aléatoire entre réel réel 0.42 sachant l’instruction
[0,1[ random
Exemples:
1/ Soit x une variable qui a pour valeur l’expression suivante :x  carré (abs (-2))
Après avoir exécuté cette instruction, la valeur finale de x est égale à 4
2/ Soit y une variable qui a pour valeur l’expression suivante :
y Arrondi (RacineCarré (4+3*4) + tronc (-12-1.8/2))
Après avoir exécuté cette instruction, la valeur finale de y est égale à -8
c- Le type Booléen (BOOLEAN)
Appelé aussi type logique (du nom du mathématicien la Boole, qui en a développé une
algèbre). La valeur d’une variable booléenne peut prendre comme valeur soit VRAI
(TRUE) soit FAUX (FALSE). Chaque variable booléenne est stockée en mémoire sur 1
octet.

Les opérateurs logiques sur les booléens


Nom en algo Nom en Pascal Rôle Exemple
Toutes les comparaisons avec FAUX < VRAI (FALSE < TRUE)
X Y X ET Y
Vrai Vrai Vrai
EETT llooggiiqquuee ((ccoonnjjoonnccttiioonn)) Vrai Faux Faux
Faux Vrai Faux
Faux Faux Faux
X Y X OU Y

Mmearab@laposte.net Page 6 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

O
OUU llooggiiqquuee ((ddiissjjoonnccttiioonn)) Vrai Vrai Vrai
O
OUU llooggiiqquuee ((ddiissjjoonnccttiioonn)) Vrai Faux Vrai
Faux Vrai Vrai
Faux Faux Faux
O X XOR Y est vraie si X et Y n’ont pas la
OUU eexxcclluussiiff
même valeur logique.
X NON (X)
N
NOON
N llooggiiqquuee Vrai Faux
Faux Vrai

Les opérateurs logiques et leurs priorités


Désignation de l’opération Priorité des Opérateur Type
opérateurs En algorithme En opérande
Pascal
Négation (opérateur unaire) 1 NON NOT Booléen
ET (opérateur multiplicatif) 2 ET AND Booléen
OU (opérateur additif) OU OR Booléen
3
OU exclusif (opérateur additif) OUex XOR Booléen
Exemples :
Evaluer les expressions logiques suivantes :
1/ (-2 <3) ET (5 < 0) donnera Faux
2/ NON (4 >-5) ET (10 > 8) donnera Faux
3/ (3*2+1 < 9) OU (6 MOD 2 > 9) donnera Vrai

En pascal, la déclaration d’une variable booléenne se fait comme suit :


VAR « nom_variable » : BOOLEAN;

Exemple :
VAR Trouve, ok : BOOLEAN ;
d- Le type caractère (CHAR)
Il est réservé aux variables contenant un et un seul caractère. Il s’agira en l’occurrence des lettres
(minuscules et majuscules), des chiffres, des signes de ponctuation et des symboles spéciaux.
Pour représenter un caractère en Pascal, on
peut placer sa valeur entre 2 apostrophes (ex:
'a','+', ...).
Il est possible de déterminer le successeur /
prédécesseur / position d’un caractère dans la
liste des codes ASCII (voir livre page 200).
Ainsi le successeur de "B" est "C", son
prédécesseur "A" et son code ASCII 66.
Un caractère est stocké sur un octet.
Mmearab@laposte.net Page 7 3Maths&sciences
LES STRUCTURES DE DONNEES L.P.A.

La table
ASCII

L’espace est un caractère « blanc ».


Les opérateurs sur les caractères
Syntaxe Rôle Exemple
Toutes les comparaisons "A" < "B", "y" > "d",…
DANS (IN) Appartenance à un intervalle "C" DANS ["A","Z"]

En pascal, la déclaration d’une variable de type caractère se fait comme suit :VAR « nom_variable » : CHAR;

Exemple :
VAR CAR, C1, C2 : CHAR ;
Les fonctions prédéfinies sur les caractères
Syntaxe en Syntaxe en Rôle de la fonction Type de x Type de Exemples
algorithme Pascal résultat
Retourne le caractère
R := CHR (65) ; R sera égale à A.
CHR (N) CHR (N) dont le code ASCII est Entier Caractère
R := CHR (97) ; R sera égale à a.
N.
ORD (C) Retourne le code R := ORD ('D') ; R sera égale à 68.
ORD (C) ASCII du caractère C. Caractère Entier R := ORD ('%') ; R sera égale à 37.

Retourne le
prédécesseur de C Même type N :=PRED (4) ; N sera égale à 3.
PRED (C) PRED (C) Scalaire
(c’est à dire qui de C R :=PRED ('D') ; R sera égale à 'C'.
précède C).
Retourne le
Même type N := SUCC (3) ;  N sera égale à 4.
SUCC (C) SUCC (C) successeur de C (c’est Scalaire
que x R:= SUCC ('C'); R sera égale à 'D'.
à dire qui suit C).
Convertir le caractère
MAJUS R:= UPCASE ('e'); R sera égale à 'E'.
UPCASE (C) C en majuscule s’il est Caractère Caractère
(C) R:= UPCASE ('F'); R sera égale à 'F'.
possible.

Mmearab@laposte.net Page 8 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

Saviez-vous ? :
"x" : désigne la lettre x.
x : désigne un identificateur. A retenir
4 : désigne l’entier 4. ORD(′A′) = 65
"4": désigne le caractère 4. ORD(′a′)= 97
CHR (ORD (car) ) = car ORD(′0′)= 48
ORD (CHR (ascii) )= ascii
Exemple :
Soit x une variable qui a pour valeur l’expression suivante : x  MAJUS (CHR (PRED(110)))
Après avoir exécuté cette instruction, la valeur finale de x est égale à ′m′

Remarques
une variable de type scalaire est une information qui possède un successeur et un prédécesseur.
Le type entier et caractère sont des types scalaires.
Les types scalaires bénéficient de 2 fonctions SUCC et PRED.
Exemples :
Succ (‘B’) = ‘C’ , Pred (5) = 4
e- Le type chaîne de caractères (STRING)
Une variable de type chaîne de caractères peut contenir :
 soit une suite de caractères (un mot, une phrase, ...),
 soit aucun caractère (on parle alors de chaîne vide).
Cependant, Pascal nous offre la possibilité de préciser la taille maximale que pourra avoir la chaîne à
affecter à la variable (ex : date : STRING[10] ;). Dans le cas contraire, Pascal réserve automatiquement la taille
maximale pour la chaine qui est 255 caractères (ex : phrase : string ;).
Une chaîne de caractères est délimitée par deux guillemets en algorithme et deux apostrophes en Pascal.

Tableau de déclaration des objets Exemples


Objet Nature / Type
Ident_chaine Chaîne[longueur] Objet Nature / Type
Nom Chaîne [20]
Adresse Chaîne de caractères

En pascal, la déclaration d’une variable de type chaîne de caractères se fait comme suit :
VAR NomVariable : STRING;
Exemples :
VAR Nom : STRING[20] ;
Adresse : STRING ;
Accès aux éléments d’une chaîne de caractères
Pour accéder en lecture ou en écriture au ième élément d’une chaîne de caractères, il suffit de donner le nom
de la chaîne suivi de l’indice i entre deux crochets avec 1 ≤ i ≤ long (nom_chaine).
Exemple : Soit CH une variable de type chaîne de caractères.
CH "Enseignant"
La chaîne "Enseignant" peut être représentée de la manière suivante :
E n s e i g n a n t
CH
1 2 3 4 5 6 7 8 9 10
Donc CH[1] contient "E"; CH[2] contient "n" ; CH[5] contient "i"; et ainsi de suite

Mmearab@laposte.net Page 9 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

Les opérateurs sur les chaînes de caractères


Syntaxe Rôle Exemple
Toutes les comparaisons "Cours" < "cours",…
+ Concaténation de deux ou plusieurs Ch3"Cours"+" exercices" affecte "Cours
chaînes exercices" à ch3

Mmearab@laposte.net Page 10 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

Les fonctions standard sur les chaînes de caractères


en algorithmique en Pascal Rôle de la fonction Exemples
Retourne un entier représentant la longueur de la chaîne ch. L := LENGTH ('Algorithme') ; L= 10
Long (ch) LENGTH (ch)
L := LENGTH ('Pascal') ; L= 6
Concat (ch1, ch2, CH := CONCAT ('micro-', 'ordinateur') ;
CONCAT(ch1, ch2, Retourne une chaîne qui est la somme de plusieurs chaînes dans CH= 'micro-ordinateur'.
…, chn) ou …,chn) l’ordre. CH := 'Turbo'+ ' '+ 'Pascal';
ch1+ch2+…+chn CH= 'Turbo Pascal'.
CH := COPY ('Baccalauréat',1,3) ;
Sous_chaîne (ch,p,n) Retourne une sous chaîne de longueur N à partir de la position p CH= 'Bac'.
COPY (ch,p,n)
ou copier(ch,p,n) dans ch. CH := COPY ('micro-ordinateur',7,10) ;
CH= 'ordinateur'.
Retourne un entier représentant la position de la première P := POS('m', 'programmation') ; P= 7
Position (ch1,ch2) POS (ch1,ch2) occurrence de la chaîne ch1. Si ch1 n’est pas dans ch2, elle P := POS('o', 'programmation') ; P= 3
retourne 0. P := POS('R', 'programmation') ; P= 0
Les procédures standard sur les chaînes de caractères
en algorithmique en Pascal Rôle de la fonction Exemples
CH := 'programmation' ;
EEffffaaccee ((cchh,,pp,,nn)) DELETE (ch,p,n) Enlève n caractères de la chaîne ch à partir de la position p. DELETE (ch,8,6) ;
CH= 'program'
CH1 := '-' ;
CH2 := 'Hautparleurs'
IInnssèèrree ((cchh11,,cchh22,,pp)) INSERT Insère la chaîne ch1 dans la chaîne ch2 à partir de la position p. Le
INSERT (CH1, CH2, 5) ;
(ch1,ch2,p) caractère n°p et les suivants seront décalés vers la droite.
CH2= 'Haut-parleurs'
CH1= '-'
STR (2002, CH) ;
C Convertit une valeur numérique en une chaîne de caractères et CH= '2002'
Coonnvvcchh ((nn,,cchh)) STR (n,ch)
l’affecte à la variable ch. STR (15.54, CH) ;
CH= '1.5540000000E+01'
Convertit une chaîne ch en une valeur numérique et l’affecte à la
variable n. Le paramètre e est une variable de type entier qui VAL ('2003',n,e) ;  n= 2003 et e= 0
V
Vaalleeuurr ((cchh,,dd,,ee)) VAL (ch,n, e) contiendra 0 si la conversion s’est déroulée sans erreur, sinon elle VAL ('06/08/1970', n,e) ; n=0 et e= 3
contiendra le numéro (la position) du premier caractère qui a
déclenché l’erreur.
Mmearab@laposte.net Page 11 3Maths&sciences
LES STRUCTURES DE DONNEES L.P.A.

III.2 Les types utilisateurs


Dans la suite du cours, on va étudier les types non standards, ceux qui ne sont pas reconnus par le
langage Pascal et qui doivent être déclarés au début du programme.
A / Les tableaux
Activité :
On veut écrire un programme qui saisit les moyennes en Informatique d’une classe de
3ème année secondaire puis de compter le nombre d’élèves ayant une moyenne>=10.
Comment ranger les moyennes ?
Si nous prendrons une variable réelle pour chaque moyenne, combien de variables à
déclarer ? Le nombre d’élèves varie d’une classe à une autre. Si on déclarera en excès,
des variables seront inexploitées et dans le cas contraire on risque la perte d’information.
On doit choisir une structure de données qui pourra être partiellement remplie. C’est la
notion de tableau.
Ce regroupement formera une nouvelle structure dite tableau ou vecteur de 100 éléments.

MOY 15.57 15.43 14.98 13.5 12.90


1 2 3 4 5
15.57 correspond au 1èr élément du tableau MOY
14.98 correspond au 3ème élément du tableau MOY

i- Définition

Un tableau est une structure de données permettant de ranger un nombre fini d’éléments de même
type. Chaque élément du tableau est désigné par un indice qui doit être forcément de type scalaire
(entier, caractère,booléen).
ii- Caractéristiques d’un tableau
Un tableau est caractérisé par :
Son nom (identificateur),
Le nombre de ses éléments (l’indice initial et l’indice final),
Le type de ses éléments.

Première méthode Deuxième solution


Déclaration algorithmique Déclaration algorithmique
T.D.O. T.D.N.T.
Objet Nature / Type Type
NomVariable Tableau de taille type_élément NomType= Tableau de taille type_élément
T.D.O.
Déclaration en Pascal Objet Nature / Type
NomVariable NomType
VAR
NomVariable : ARRAY [indice_initial ..
indice_final ] OF type; Déclaration en Pascal
TYPE NomType= ARRAY [indice_initial ..
indice_final ] OF type;
VAR NomVariable : NomType ;

Mmearab@laposte.net Page 12 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

Exemple :
Première méthode Deuxième solution
Déclaration algorithmique Déclaration algorithmique
T.D.O. T.D.N.T.
Objet Nature / Type Type
Moy Tableau de 5 réels TAB= Tableau de 5 réels
T.D.O.
Déclaration en Pascal Objet Nature / Type
Moy TAB
VAR moy : ARRAY [1 ..5 ] OF real;
Déclaration en Pascal
TYPE TAB= ARRAY [1 ..5 ] OF real;
VAR Moy : TAB ;
iii- Accès aux éléments d’un tableau
Pour accéder en lecture ou en écriture au ième élément d’un tableau, il suffit d’indiquer
l’identificateur du tableau suivi de l’indice i entre deux crochets (avec indice_initial ≤ i ≤
indice_final).
Exemples :
MOY[1] contient 15.57
MOY[3] contient 14.98

 Une variable de type simple ne permet pas de mémoriser à la fois et à un instant


donné plus qu'une information. Dans le cas où plusieurs données de
même type sont à retenir pour un éventuel traitement, le recours à un
type composé est envisageable, en effet le type tableau.
 La lecture, l’affichage ou la modification du contenu d’un tableau se
fait élément par élément.
 On peut effectuer les mêmes opérations sur un élément du tableau
que sur une variable de même type. Dans le cas de MOY, MOY[i] est un réel, donc on
peut le manipuler en tant que tel.
 L’indice du tableau doit être de type scalaire (entier, caractère et booléen)
 La taille d’un tableau peut être déduite à partir de la formule suivante :
ORD (indice_final) - ORD (indice_initial) + 1
 Il est possible de déclarer un nouveau type d’un tableau, celui-ci sera utilisé pour
déclarer la variable nécessaire pour le traitement.
B/ Le type scalaire énuméré

Définition : Le type scalaire par énumération définit un ensemble


ordonné et fini de valeurs désignées par des identificateurs.

Remarques :
Mmearab@laposte.net Page 13 3Maths&sciences
LES STRUCTURES DE DONNEES L.P.A.

Soit le type SAISON = (AUTOMNE, HIVER, PRINTEMPS, ETE) ;


AUTOMNE, HIVER, PRINTEMPS, ETE sont des constantes (des éléments ou des
identificateurs) de type SAISON.
L’ordre de ces valeurs est le suivant : AUTOMNE < HIVER < PRINTEMPS < ETE
(l’ordre 0) ( l’ordre 1) ( l’ordre 2) ( l’ordre 3)
Une variable de type scalaire énuméré ne peut pas être lue au clavier ni affichée à
l’écran.
READLN(S) ;
WRITELN(S) ;

Quelques exemples de type scalaire énuméré


couleurs_arc_en_ciel = ( rouge, orange, jaune, vert, bleu, indigo, violet ) ;
direction = (Haut, bas, gauche, droite) ;
reponse = (oui, non, inconnue) ;
sexe = (masculin, feminin);
voyelle = (A, E, I, O, U);
Déclaration algorithmique
Tableau de déclaration des nouveaux types (T.D.N.T.) T.D.O.
TYPE
Objet Type / Nature
nomtype = (valeur1, valeur2, …,valeurN) nomvariable nomtype
Exemple :
T.D.N.T. T.D.O.
TYPE Objet Type / Nature
SAISON = (AUTOMNE, HIVER, PRINTEMPS, ETE ) S Saison
Déclaration en pascal :
Type nom = (valeur1, valeur2, …,valeurN);
Exemple :
Type saison = (AUTOMNE, HIVER, PRINTEMPS, ETE) ;
Var S : saison ;
Les opérateurs applicables sur les types énumérés :
Les opérateurs relationnels (<, >,=,….)
Les fonctions prédéfinies sur les types scalaires :
o La fonction ORD (valeur énumérée)
o La fonction SUCC (valeur énumérée)
o La fonction PRED (valeur énumérée)
Exemples :
ORD (AUTOMNE) = 0

Mmearab@laposte.net Page 14 3Maths&sciences


LES STRUCTURES DE DONNEES L.P.A.

ORD (PRINTEMPS) = 2
PRED (PRINTEMPS)= HIVER
SUCC(HIVER) = PRINTEMPS
PRED (AUTOMNE) ET SUCC(ETE) N’EXISTENT PAS. Car le premier élément n’a pas de
prédécesseur et le dernier n’a pas de successeur.
C/ Le type intervalle

Définition : Le type intervalle possède les propriétés du type scalaire discret


ordonné (entier, caractère et scalaire énuméré ou booléen) dont l′intervalle
est issu. Toutefois, sa valeur doit être comprise au sens large entre les bornes
de l′intervalle. La Borne doit être <= la borne supérieure.

Le type intervalle possède les propriétés du type de base dont l′intervalle est issu. Toutefois, sa
valeur doit être comprise au sens large entre les bornes de l′intervalle.

Tableau de déclaration des nouveaux types Exemple


TYPE
Mois = 1..12
Jours = 1..31
TYPE
Type_Intervalle=Borne_Inf.. Borne_Sup

Déclaration en pascal :
Type nom_type = borne_inf..borne_sup ;
Var Nom_var : nom_type ;
Exemples :
Déclaration en Pascal
Type
Mois = 1.. 12 ;
Jours = 1 .. 31 ;
Var
Mois_actuel : mois ;
demain : jours ;
Type de
données

Type Type
standard
ou utilisateur
prédéfini

Type Type Type Type Type Type Type Type


entier caractère booléen chaine de tableau scalaire intervalle
réel caractères énuméré

Mmearab@laposte.net Page 15 3Maths&sciences

Vous aimerez peut-être aussi