Sunteți pe pagina 1din 7

Chapitre 1 LES STRUCTURES DE DONNEES

I‐   LES CONSTANTES  ET  LES  VARIABLES  
I.1‐  LES CONSTANTES   
Une constante est un objet ayant une valeur fixe tout le long de l’exécution d’un algorithme ou
d’un programme. Elle est caractérisée par son ………………………… (un identificateur unique) et sa
…………….…………… (détermine implicitement le type de la constante).

• Déclaration d’une constante :

En Algorithmique :
Tableau de Déclaration des Objets
Objets Type/Nature Rôle
Général Nom Constante = valeur de la constante Rôle
Annee Constante = 2010
G Constante = 9.81
Exemples
Auteur Constante = "Chebbi"
Existe Constante = Vrai

En Pascal :
• Syntaxe : CONST <nom_constante> = <valeur_constante> ;
• Exemples : CONST annee = 2010 ;
g = 9.81 ;
auteur = ‘Chebbi’ ;
existe = True ;

I.2‐  LES VARIABLES    
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 :
ƒ Un ……………………. (identificateur unique)
ƒ Un ……………………. (nature de données)
ƒ Un ……………………. (valeur manipulée)

• Déclaration d’une variable :

En Algorithmique :
T.D.O
Objets Type/Nature Rôle
Général Nom Type de la variable Rôle
Heure Entier Calcul du nombre d'heures
Exemples Moy Réel Calcul de la moyenne
Phrase Chaîne de caractères Saisie d'une phrase

En Pascal :
• Syntaxe : VAR <nom_variable> : type_variable ;
• Exemples : VAR Heure : Integer ;
Moy : Real ;
Phrase : String ;
Remarque :
Pour chaque constante et variable du programme, l'ordinateur réserve une partie de sa mémoire
(RAM), de taille adéquate au type de données.
Activité :
Les structures de données______________________# Prof : FENNI-S________________________Page 1/7
Le programme Pascal suivant comporte de nombreuses erreurs, trouver-les :

Programme 1er exemple ; …………………………………………………………………………………………..


Uses wincrt ; …………………………………………………………………………………………..
Conste coéff : 3 ; …………………………………………………………………………………………..
Begin …………………………………………………………………………………………..
Writeln (‘Donner trois notes entières’) ; …………………………………………………………………………………………..
Readln (1N, 2N, 3N) ; …………………………………………………………………………………………..
MOY Å (1N+2N+3N)/coéff; …………………………………………………………………………………………..
Writeln (‘La moyenne est : ’, MOY) ; …………………………………………………………………………………………..
End ; …………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..

II‐     LES  TYPES  DE  DONNEES  STANDARDS   
Le type d’une variable permet de savoir quelle quantité de mémoire sera utilisée, quelles valeurs
seront autorisées et quels opérateurs seront possibles sur cette variable.

II‐1  LES TYPES NUMERIQUES   
II‐1.1  Le type Entier,  désignant les valeurs des nombres entiers relatifs (sous-ensemble de Z ).

Activité : (voir page 10 du livre scolaire)

• Exemples de types entiers :


Algorithmique Pascal Domaine de définition Mémoire requise
Octet Byte 0 . . 255 {non signé} 1 octet
Mot Word 0 . . 65535 {non signé} 2 octets
Entier Court ShortInt -128 . . 127 {signé} 1 octet
Entier Integer -32768 . . 32767 {signé} 2 octets
Entier Long LongInt -2147483648 . . 2147483647 {signé} 4 octets

• Opérateurs sur les entiers :


Opérateurs arithmétiques *, /, DIV, MOD, +, -
Notation algorithmique
<, >, =, ≤, ≥, ≠
Opérateurs relationnels
Notation en Pascal
<, >, =, <=,>=, <>

II‐1.2  Le type Réel,  désignant les valeurs des nombres réels (sous-ensemble de R ).

• Exemples de types réels :


Algorithmique Pascal Domaine de définition Mémoire requise
Réel Real (-/+) 2.9E-39 à (-/+) 1.7E38 6 octets
Réel double Double (-/+) 5.0E-324 à (-/+) 1.7E308 8 octets
… … … …
La lettre E se lit « dix exposant ». 2.54E-6 c’est-à-dire 2.54 10-6 s’écrira aussi 0.00000254

• Opérateurs sur les réels :


Opérateurs arithmétiques *, /, +, -
Notation algorithmique
<, >, =, ≤, ≥, ≠
Opérateurs relationnels
Notation en Pascal
<, >, =, <=,>=, <>
II‐1.3  Les fonctions arithmétiques standards  (voir Annexe I)
Activité : Soient les déclarations suivantes :
Les structures de données______________________# Prof : FENNI-S________________________Page 2/7
Const max = 1000 ;
Var x, y : real ;
a, b, c : integer ;
Compléter le tableau ci-dessous, en mettant une croix dans la colonne valide ou dans la colonne
non valide pour chaque instruction. Justifier votre réponse pour les instructions non valides.

Instruction Valide Non valide Justification


x := a / b ;
c :=(900 - max) div a ;
c :=(a mod y) div 2 ;
x := a mod (a / b) ;
x := (a mod c) / b ;
y := a div b ;
c := a mod 0 ;
y := trunc (a) + round (x) ;
a := abs(x) + max ;
b := int (sqrt (b)) ;

II‐2 Le type Booléen (BOOLEAN en Pascal), désignant les deux valeurs logiques FAUX et VRAI


(FALSE et TRUE en Pascal). La mémoire requise pour ce type est un octet.
• Opérateurs logiques sur les booléens :
− La négation NON (NOT)
− La conjonction ET (AND)
− La disjonction OU (OR)
− Le OU exclusif OUex (XOR) Î (X OUex Y = X ET Y OU X ET Y)

• Table de vérité de ces opérateurs : Compléter le tableau ci-dessous.

A B NON (A) A ET B A OU B A OUex B


FAUX FAUX …………….. ………….... ……..…….. ………………..
VRAI VRAI …………….. …………….. ……….…….. ………………..
FAUX VRAI …………….. …………….. ………….….. ………………..
VRAI FAUX …………….. …………….. ………….….. ………………..

Activité : (voir page 15 du livre scolaire)

II‐3  Le type Caractère (CHAR, en Pascal)  
Une variable de type caractère aura pour valeur un et un seul caractère encadré par deux
guillemets en algorithmique (deux apostrophes, en Pascal).
• Exemples : "A" "4" "e" "*" "[" etc.
Tous les caractères sont ordonnés selon leurs codes ASCII variant de 0 à 255 (voir Annexe à la
fin du livre scolaire).
La mémoire requise pour ce type est un octet.
• Opérateurs sur les caractères : Toutes les opérateurs relationnels
(<, <=, >, >=, =, ≠, Dans)

Les fonctions prédéfinies sur les caractères (voir Annexe I)
Activité : (voir page 17 du livre scolaire)
II‐4  Le type Chaîne de caractères (STRING, en Pascal)  
Une chaîne de caractères est une suite de n caractères (0 ≤ n ≤ 255), encadrée par deux
guillemets en algorithmique (deux apostrophes, en Pascal).

Les structures de données______________________# Prof : FENNI-S________________________Page 3/7


• Exemples :
Algorithmique Pascal
"La Chebba" 'La Chebba'
"12/04/1970" '12/04/1970'
"l'ordinateur" 'l''ordinateur'
"" (chaîne vide) ''

Les variables chaînes de caractères sont définies par une déclaration pouvant indiquer le nombre
maximum de ses caractères.

• Exemples :
En Algorithmique :

Objet Type / Nature Rôle


Nom Chaîne [20] Chaîne pouvant contenir jusqu’à 20 caractères
Adresse Chaîne Chaîne pouvant contenir jusqu’à 255 caractères

En Pascal :
VAR Nom : String [20] ; Réservation de 21 octets dans la mémoire.
Adresse : String ; Réservation de 256 octets dans la mémoire.

• Opérations sur les chaînes :


a) Addition :
1. A Å "processeur"
2. B Å "Pentium 4"
3. CH Å B + " est un " + A + " très puissant"
CH = "Pentium 4 est un processeur très puissant"

b) Opérateurs relationnels : (<, >, <=, >=, =, ≠)


Les chaînes sont comparées caractère par caractère, de gauche vers droite selon le code ASCII.
Deux chaînes ne sont égales que si leur contenu et leur longueur sont égaux.
"A" = "a" retourne ……….…. "Programme" > "program" retourne ………......
"BAC" ≠ "bac" retourne ……..….. " " = "" retourne ...............

c) Indexation :
Les caractères d'une chaîne sont indicés en utilisant la notation CH[i] où 1 ≤ i ≤ long (CH).
Nom Å "Mabrouk" nom [1] donne "M" nom [5] donne ……………
Nom [3] Å "t" nom devient ……………………….

Les fonctions et les procédures prédéfinies sur les chaînes  (voir Annexe II)

Activité :
Dans le tableau ci-dessous, donner le résultat et le type correspondant à chacune des
expressions.

Expression Résultat Type du résultat


L Å LONG ("Lycée")
CH1 Å SOUS-CHAINE("Baccalauréat", 1, 3 )
P Å POS ('a', 'Programmation')
CH2 Å CONCAT (CH1,"2010")
EFFACE (CH, 1, 5) où CH contient "Baccalauréat"
INSERT ("ga", CH, 4) où CH contient "Lange"
CONVCH (2010, CH)

VALEUR ("5.26", N, ERR)

III‐    LES  EXPRESSIONS   
Une expression représente une succession de calculs ; elle peut faire intervenir des constantes,
des variables, des fonctions et des opérateurs.
Les structures de données______________________# Prof : FENNI-S________________________Page 4/7
On distingue deux types d'expression :
• les expressions arithmétiques donnant une valeur numérique
• les expressions logiques donnant une valeur booléenne
Exemples :
(5 > 3) est une expression logique, sa valeur est .................
(6*3) MOD 5 est une expression arithmétique, sa valeur est ...............

Evaluation des expressions :


Lors de l’évaluation d’une expression, il faut tenir compte des règles de priorité entre les
opérateurs utilisés :

En algorithmique En Pascal
1) les parenthèses (…) (…)
2) les opérateurs unaires - (l'opposé) NON - NOT
3) les opérateurs multiplicatifs * / DIV MOD ET * / DIV MOD AND
4) les opérateurs additifs + - OU OUex + - OR XOR
5) les opérateurs relationnels = < <= > >= ≠ DANS = < <= > >= <> IN

Activité :
Evaluer les expressions suivantes :
• 8 MOD 3 DIV 2 = ………….……….
• 5 + 2 * 4 MOD 3 – 6 DIV 2 * 3 = ……………..……
• (5 > 2) ET (3 ≠ 3) OU (5 MOD 4) = 6) = ……………………
• ("D" < "A") ET (ABS(-1) > 0) = ……………………

IV‐    LE  TYPE  SCALAIRE  ENUMERE  ET  LE  TYPE  INTERVALLE   
Outre les types standard, nous pouvons définir de nouveaux types appelés souvent types utilisateur.

IV‐1   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 définis par l'utilisateur.
• Exemple :
Couleur = (Rouge, Bleu, Vert)
Marque = (Renault, Citroen, Peugeot, Ford, Toyota)
• Déclaration :
En algorithmique :
Tableau de déclaration des nouveaux types
Type
Nom_du_type = (valeur1, valeur2, valeur3, …)
En pascal :
TYPE Nom_du_type = (valeur1, valeur2, valeur3, …) ;

Activité : (voir page 31 du livre scolaire) 

• Propriétés de types énumérés :


Exemple :
Type jours = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;
Var date, debut, fin : jours ;
¾ Les valeurs d'un type énuméré sont ordonnées selon leur ordre de déclaration. Pour le type
jours, nous avons : lundi < mardi < … < dimanche
¾ A chaque valeur énumérée correspond un numéro d'ordre (nombre entier) : (0 pour lundi, 1
pour mardi, 2 pour mercredi, … et 6 pour dimanche)
¾ Les opérateurs relationnels <, >, ≤, ≥, =, ≠ sont utilisables avec les valeurs de même type :
On peut écrire jeudi > mercredi, date = lundi, debut > fin, mais non vendredi < rouge
¾ Aucune opération arithmétique ne peut être effectuée sur des valeurs d'un type énuméré :
Il est incorrect d'écrire, par exemple, lundi+mardi

Les structures de données______________________# Prof : FENNI-S________________________Page 5/7


¾ Une même valeur ne peut se trouver dans deux types énumérés différents, déclarés dans le
même bloc.
Exemple : Au type jours précédent, on ne peut superposer le type repos = (samedi, dimanche);
ni le type lundi = (matin, soir) ;
¾ Une valeur énumérée ne peut pas être une valeur appartenant à un type prédéfini comme :
Type impair = (1, 3, 5, 7, 9, 11) impossible car les valeurs sont de type entier
voyelle = ('a', 'e', 'i', 'o', 'u', 'y') impossible car les valeurs sont de type caractère
¾ On ne peut ni lire ni écrire une variable de type énuméré. Pour l’afficher, on peut utiliser
l'instruction case par exemple.
¾ On peut utiliser les fonctions et les opérations suivantes :
PRED (samedi) = vendredi
SUCC (mardi) = mercredi
ORD (lundi) = 0 ; ORD (dimanche) = 6
Jour (4) = vendredi ; jour (1) = mardi
debut Å mardi
fin Å jour(6) : la variable fin prend la valeur dimanche
Remarque : PRED (lundi) n'existe pas et SUCC(dimanche) n'existe pas non plus et peuvent
provoquer des erreurs.

IV‐2  LE  TYPE  INTERVALLE 
Ce type est défini comme un intervalle de valeurs appartenant à l'un des types suivants :
− Entier
− Caractère
− Type énuméré préalablement défini

• Déclaration :
En algorithmique :
Tableau de déclaration des nouveaux types
Type
Nom_du_type = borne inférieur . . borne supérieur
En pascal :
TYPE Nom_du_type = borne inférieur . . borne supérieur ;

Exemples :
Tableau de déclaration des nouveaux types
Type
Chiffre = 0..9
Minuscule = 'a'..'z'
Jour = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche)
Jour_travail = lundi..vendredi

TYPE Chiffre = 0..9 ;


Minuscule = 'a'..'z' ;
Jour = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;
Jour_travail = lundi..vendredi ;
Le type jour_travail est défini à partir du type associé jour.

Activité : (voir page 33 du livre scolaire) 

V‐    LE S TABLEAUX A UNE DIMENSION (VECTEURS)  
Un tableau est une structure de données permettant de ranger un nombre fini d'éléments de même
type.
Un tableau est caractérisé par :
• Un …………………………….. servant d'identificateur
• Une ……………………………
Les structures de données______________________# Prof : FENNI-S________________________Page 6/7
• Le ……………………….……. des éléments qu'il contient

• Déclaration d'un tableau

Première formulation
EN ALGORITHMIQUE EN PASCAL

T.D.O. VAR
Objet Type/Nature Rôle Ident_tableau : ARRAY [Binf..Bsup] OF Type_éléments ;
Ident_tableau Tableau de taille et de
type_éléments

Exemple :
T.D.O
Objet Type/Nature Rôle
MOY Tableau de 30 Réels Contenir les moyennes de 30 élèves

VAR Moy: array [1..30] of real ;

Deuxième formulation
EN ALGORITHMIQUE EN PASCAL

Tableau de déclarations des nouveaux types TYPE


Type Nom_type = ARRAY [Binf..Bsup] OF Type_éléments ;
Nom_type = tableau de taille et de type_éléments
VAR
T.D.O. Ident_tableau : Nom_type ;
Objet Type/Nature Rôle
Ident_tableau Nom_type

L'accès à un élément du tableau est un accès direct. Pour accéder au ième élément du tableau, il
suffit de donner l'identificateur du tableau et l'indice i (borne inférieure ≤ i ≤ borne supérieure).

Exemple 1 :
Soit la déclaration suivante en Pascal : VAR MOY : ARRAY [1..5] OF REAL ;
Pour une telle déclaration, on peut prévoir le tableau suivant :
MOY[2] = 10.25
MOY[5] = 9.50 MOY 15.50 10.25 14.75 18.75 9.50
1 2 3 4 5

Exemple 2 :
Soit T un tableau de 5 chaînes de caractères T ICTB DOUES ADMISE VRAI PREMIER
ƒ T [3] = "ADMISE" 1 2 3 4 5
ƒ T [3] [2] (ou T [3,2]) = "D"
ƒ T [5] [4] = "M"
Dans le cas générale, T [i] [p] désigne le pième caractère du ième chaîne de T.

Les structures de données______________________# Prof : FENNI-S________________________Page 7/7

S-ar putea să vă placă și