1. Page | 1
Bac Scientifiques
Les Structures
De Données
Infoslpm.e-monsite.com
Pour … Répéter … Tant
que
Pour … Répéter … Tant
que
LES STRUCTURES DE DONNÉES
Résumé De Cours & Remarques
Les Constantes et Les variables
Une constante est une donnée dont la valeur reste fixe durant l’exécution d’un programme, Il
existe 5 types de constantes : entière, à virgule flottante, de type caractère, de type chaîne et
de type booléen (vrai, faux). Une constante est caractérisée par :
Son identificateur (nom) ;
Sa valeur.
Exemples (en Pascal)
CONST ok= true ; a= 56 ; nom = 'Bac'+'2013' ; s : INTEGER = ORD (LENGTH (‘BAC2013 ‘)) ;
Une variable est un objet dont la valeur peut être modifiée, au fil de déroulement d’un
algorithme ou d’un programme. Elle est caractérisée par :
Son Identificateur (nom) ;
Son Type
Son Contenu.
Lorsqu'on déclare une variable, on réserve en mémoire vive (RAM) un espace mémoire
propre à la variable.
Un identificateur doit respecter les règles suivantes :
Il ne doit pas contenir de caractères accentués, ni d'espace, ni de points et ni
les caractères suivants : @, $, &, #, +, -, *, / ;
Il doit être composé que de lettres, de chiffres et du caractère de soulignement
(_) (ne peut pas commencer par un chiffre)
Il doit impérativement être différent de ceux d'unités utilisées, de mots réserves
du langage Pascal et ne doivent pas exèdre 127 signes (1 lettre au minimum)
L’utilisation de minuscules et de majuscules sont permise car Pascal ne fait
pas de différence entre minuscules et majuscules
N.B Parmi les objectifs de ce chapitre : La déclaration (en Algo, en Pascal) des constantes et
des variables (T.D.O)
Les Types de données
Le type ENTIER : Désigne les valeurs des nombres entiers relatifs. (sous ensemble de
Z)Turbo pascal fournit cinq types entiers prédéfinis. Chacun d’eux concerne un sous
ensemble particulier des nombres entiers : INTEGER, LONGINT et SHORTINT (entier, entier
long et entier court) : Entier signé. WORD et BYTE (mot et octet) : Entier non signé.
Les opérateurs relationnels (logiques) : <, >, ≤, ≥, ≠, =, DANS. (≠, DANS en
Turbo Pascal<>, IN)
Les opérateurs arithmétiques : *, DIV, MOD, +,-. (DIV /MOD : quotient/reste)
Le type Réel(REAL) : Désigne les valeurs des nombres réels (sous ensemble de R), le réel
est composé d’une partie entière et d’une partie décimale. Exemple 1.5E+03 ( E : 10 à la
puissance ).
Les opérateurs relationnels (logiques) : <, >, ≤, ≥, ≠, =.
Les opérateurs arithmétiques : +,-,*, /
Les Fonctions Standards (voir Annexe I)
Le type CARACTERE(CHAR) : Désigne tous les caractères alphanumériques imprimables de
l’alphabet latin ainsi que les caractères spéciaux non imprimables ayant des significations
2. Page | 2
Bac Scientifiques
Les Structures
De Données
Infoslpm.e-monsite.com
Pour … Répéter … Tant
que
Pour … Répéter … Tant
que
particulières tel que : le retour chariot, l’Echappe (Escape), le Bip sonore, etc. Tous ces
caractères sont ordonnés selon leur code ASCII. Les Fonction Standards sont :
ORD(c) : Renvoie le code ASCII du caractère C, exemple ORD (‘’a’’) =97
CHR(x) : Renvoie le caractère dont le code ASCII est x, exemple CHR(97)=’’a’’
PRED (c) : Renvoie le prédécesseur de c, exemple PRED (‘’C’’)=’’D’’.
SUCC(c) : Renvoie le successeur de c, exemple SUCC (‘’A’’)=’’B’’.
MAJUS(c) (UPCASE) : Convertit le caractère c en majuscule si c’est possible.
Le type CHAINE DE CARACTERE(STRING) : Une chaîne de caractères est une entité
composée d’une suite de n caractères. N étant compris entre 0 et 255.Si n est nulle, on dit que
la chaîne est vide. Exemple : "20 mars 1956". ; "" : Chaîne vide
Les valeurs chaîne de caractères sont définies entre guillemets dans la spécification et
l’algorithme. Ces guillemets sont remplacés par des apostrophes.
Si une apostrophe doit figurer dans une chaîne de caractères dans un programme, il faut la
doubler ('l''élève').
On peut accéder à l’iéme caractère d’une chaîne CH en utilisant la notation CH [i] avec 1≤i≤long
(ch). Long (ch) : désigne la longueur de la chaîne. CH"FAMILLE" CH [2] VAUT "A"CH
[3] VAUT "M".
La comparaison de deux ou plusieurs chaînes de caractères est basée sur les codes ASCII. En
effet la comparaison se fait caractère par caractère en partant des premiers. Exemple :
CH1"FAMILLE" CH2"FAMILY" CH1< CH2.
Les Fonctions et les Procédures prédéfinies (voir Annexe II)
Le type BOOLEEN(BOOLEAN) : Le type booléen comporte deux valeurs vrai (true en turbo
pascal) et faux (false en turbo pascal). Les operateurs logiques sont NON, ET, OU et OU ex
(NOT, AND, OR, XOR en Pascal).
Ordre de priorité NON > ET > OU > OUex, avec > désigne "Plus prioritaire".
La Table de vérité (voir Annexe III)
Les fonctions prédéfinies sont : SUCC, PRED, ORD, ODD…
Le type TABLEAU (ARRAY EN PASCAL) : Le tableau unidimensionnel ou vecteur est une
structure de données permettant de ranger un nombre fini d’élément de même type. Un
vecteur est caractérisé par : Un nom servant son identification. Une taille. Le type des
éléments qu’il contient.
L'accès à un élément du tableau est un accès direct. Pour accéder à l’ième élément du tableau,
il suffit de donner l'identificateur du tableau et l'indice (i). Cet indice doit être dans
l'intervalle [Borne_inf.. Borne_sup].
L’indice d'un élément doit être de type scalaire (Entier, Caractère, énuméré).
La taille d'un tableau est égale à: Taille = (Borne_sup - Borne_inf) + 1
Les opérations possibles sur un élément du tableau sont les mêmes que celles définies sur
une variable de même type.
On peut déclarer un tableau comme étant un nouveau type.
Types utilisateurs
LE TYPE SCALAIRE ENUMERE : Le type scalaire par énumération définit un ensemble
ordonné et fini de valeurs désignées par des identificateurs : ANNEE_SCOLAIRE= (septembre,
octobre, novembre, décembre, janvier, février, mars, avril, mai, juin)
Les fonctions prédéfinies sont : ORD, SUCC, PRED. PRED (septembre) n'existe pas et SUCC
(juin) n'existe pas non plus et peuvent provoquer des erreurs, ORD (septembre)=0.
Les valeurs d’un type scalaire énumère ne doivent pas appartenir à un type de base du Pascal.
Le type intervalle La définition d'un intervalle est décrite par la donnée de deux constantes
représentant respectivement la "Borne Inférieure" et la "Borne Supérieure" appartenant à un
type scalaire discret ordonné et telle que Borne Inférieure < Borne Supérieure.
Une variable d'un type intervalle possède toutes 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.
3. Page | 3
Bac Scientifiques
Les Structures
De Données
Infoslpm.e-monsite.com
Pour … Répéter … Tant
que
Pour … Répéter … Tant
que
Les Structures Simples
L’affectation : Cette action permet de ranger une nouvelle valeur dans une variable
Syntaxe Identificateur var ← <expression>
Expression peut être :
• Une variable
• Une constante
• Une expression arithmétique
• Une expression logique
Une constante ne peut jamais figurer à gauche d’une affectation.
Après une affectation, l’ancien contenu est perdu pour être substitué par le nouveau
contenu.
Une action d’affectation doit se faire entre deux types compatibles.
Les expressions arithmétiques <exp-arith> op_arith <exp-arith>
Op_arith peut être ‘+’, ‘-‘, ‘/’ , ‘*’ , ‘MOD’ Ou ’DIV’
L’ordre de priorité des opérateurs arithmétiques :
- signe négatif
( ) parenthèses
^ puissance
* et / multiplication et division
+ et – addition et soustraction
Les expressions logiques Les expressions logiques admettent Vrai ou Faux comme
résultat
Elles peuvent utiliser des opérateurs relationnels ( = , ≠, <,<=, >, >=) ou des
opérateurs
logiques (NON, ET, OU, OUEX)
L’ordre de priorité est :
NON
ET
OU , OUEX
Instruction de lecture ou d’entrée Elle permet d’affecter, à une variable, une donnée
introduite) partir d’une périphérique d’entrée (clavier).
Instruction d’écriture ou de sortie Elle permet d’afficher des résultats sur un
périphérique de sortie (écran). Ce résultat peut être :
• Une chaîne de caractères (caractère) délimitée par des ‘’ ‘’
• La valeur d’une variable dont le nom est spécifié
• La valeur d’une expression
L’ordinateur évalue tout d’abord l’expression puis affiche le résultat obtenu
Formatage d’affichage : (x15) (r15.25) (ch ‘‘bac’’)
write(x :5) ==== > - - -15
write(x :1) ===== > 15
write( r) ======> _1.5250000000E+01
write(r :8) =====> _1.5E+01
write(r :8 :2) ====> _ _ _15.25
write(r :8 :3) =====> _ _15.250