chapitre i : les structures de données · 2 e m e a n n é e t e c h n o l o g i e code : p...
TRANSCRIPT
2 em
e an
née
tech
nolo
gie
Code : P 2-001-SD
Chapitre I
Les structuresde données
Ministère d’éducation
Année scolaire 2017-2018
B.H.IMED
INFOSKOOL.WORDPRESS.COM
Date de publication
20-10-2017
Version : 1.1
Table des matières
Objectifs 5
Introduction 7
I - Les constantes et les variables 9
A. Les constantes.............................................................................................9 1. Exercice : Activité N°1......................................................................................................9 2. Présentation d'une constante.............................................................................................9
B. Les variables.............................................................................................10 1. Exercice : Activité N°2....................................................................................................10 2. Présentation d'une variable..............................................................................................10
II - Les types de données 13
A. Les types numériques.................................................................................13 1. Le type entier................................................................................................................13 2. Le type réel...................................................................................................................15
B. Le type booléen.........................................................................................17 1. Exercice : Activité N°1....................................................................................................17 2. Présentation du type booléen...........................................................................................17 3. Exercice d'évaluation......................................................................................................17 4. Réponse........................................................................................................................18
C. Le type caractère.......................................................................................18 1. Exercice : Activité N°1....................................................................................................18 2. Présentation des caractères.............................................................................................18 3. Exercice d'évaluation......................................................................................................19 4. Réponses......................................................................................................................19
D. Le type chaîne de caractères.......................................................................20 1. Exercice........................................................................................................................20 2. Présentation d'une chaîne de caractères............................................................................20 3. Exercice d'évaluation......................................................................................................22 4. Réponses......................................................................................................................22
3
III - Les tableaux à une dimension 23
A. Exercice : Activité N°1................................................................................23
B. Présentation d'un tableau :..........................................................................23
C. Exercice d'évaluation..................................................................................24
D. Réponse :.................................................................................................25
Conclusion 27
Solution des exercices 29
4
Objectifs
• Identifier et manipuler les constantes et les variables.• Manipuler les types standard.• Manipuler les procédures et les fonctions prédéfinies.
5
Introduction
Nous traitons dans ce chapitre des notions fondamentales telles que la constante, lavariable, les types de données, les différents types d'expression et les tableaux.Toutes ces entités sont manipulées dans les algorithmes.
Un algorithme est une suite finie d'instructions permettant de résoudre un problème.
7
I - Les constantes et les variables
I
Les constantes 9
Les variables 10
A. Les constantes
1. Exercice : Activité N°1[Solution n°1 p 29]
Quelle est la valeur de Pi ?
Pi est égale a 9.8
Pi est égale a 3.14
2. Présentation d'une constante
DéfinitionUne constante est un objet ayant une valeur fixe tout le long de l'exécution d'unalgorithme ou d'un programme.
Une constante est caractérisée par :• son nom (un identificateur unique).• sa valeur.
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Identifiant de la constante Constante=valeur Rôle
Exemple:
Objet Type/ Nature Rôle
PI Constante=3.14 ......
9
Langage PASCAL:CONST Objet = valeur ;
Exemples :CONST g = 9.81 ;
pi = 3.141 ;
B. Les variables
1. Exercice : Activité N°2[Solution n°2 p 29]
Soit la séquence d'affectations suivante :1) i := 50 ;2) j := 70 ;3) k := i ;4) i := j ;5) j := k ;Quelles sont les valeurs finales de i, j, k ?
i=50, j=70, k=50
i=70, j=70, k=50
i=70, j=50, k=50
2. Présentation d'une variable
DéfinitionOn appelle variable un objet pouvant prendre différentes valeurs tout le long del'exécution d'un algorithme ou d'un programme.
Une variable est caractérisée par :• son nom (un identificateur unique)• son type• son contenu.
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Identifiant de la variable Type de variable Rôle
Exemple:
Objet Type/ Nature Rôle
Salaire_annuel Réel ...
Salaire_mensuel Réel ...
Les constantes et les variables
10
Langage PASCAL:Var Objet : Type;
Exemples :Var
Salaire_annuel : REAL ;Salaire_mensuel : REAL ;
Les constantes et les variables
11
II - Les types de données
II
Les types numériques 13
Le type booléen 17
Le type caractère 18
Le type chaîne de caractères 20
A. Les types numériques
Un type est désigné par un identificateur (ou un nom). Les types standard sont :• Le type Entier, désignant les valeurs des nombres entiers relatifs.• Le type Réel, désignant les valeurs des nombres réels.• Le type Caractère, désignant les "valeurs" des caractères.• Le type Booléen, désignant les valeurs logiques.• Le type Chaîne de caractères, désignant les "valeurs" des chaînes de caractères.
1. Le type entier
a) Exercice : Activité N°1[Solution n°3 p 29]
Quel est le domaine des valeurs des entiers ?
R
Z
N
b) Présentation des entiers
DéfinitionLes entiers en mathématiques forment un ensemble infini nommé Z. Or, eninformatique, un entier a une représentation en machine limitée à un nombre finid'octets (généralement 2 octets). La valeur maximale d'un entier est égale à
13
32767.
Les opérateurs arithmétiques sur les entier :+ : Addition- : Soustraction* : MultiplicationDIV : (Donne le quotient dans la division entière).MOD : (Donne le reste de la division entière).
ComplémentLes Types d'entier :SHORTINT : -128..127 Signé 8 bitsINTEGER : -32768..32767 Signé 16 bitsLONGINT : -2147483648..2147483647 Signé 32 bits
RemarqueQuand on manipule une variable de type entier, il faut faire attention au risque dedébordement. Quand il y a débordement au-delà des valeurs Minimale et Maximale,les calculs deviennent erronés ou provoquent des erreurs d'exécution selon leslangages utilisés.
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Nom_objet Entier Rôle
Exemple:
Objet Type/ Nature Rôle
i Entier ...
j Entier ...
Langage PASCAL :VAR Objet1,Objet2,... : INTEGER;
Exemple :VAR i, j, k : INTEGER;
c) Exercice d'évaluation
Évaluer les expressions arithmétiques suivantes :a- 17 DIV 5b- 17 MOD 5c- ((58 DIV 7) MOD 2) + 5d- (49 MOD 17) DIV (4 * 3)
d) Réponse
a- Le résultat de 17 DIV 5 est 3
Les types de données
14
b- Le résultat de 17 MOD 5 est 2c- Le résultat de ((58 DIV 7) MOD 2) + 5 est 5d- Le résultat de (49 MOD 17) DIV (4 * 3) est 1
2. Le type réel
a) Exercice : Activité N°1[Solution n°4 p 29]
Quel est le domaine de valeurs des réels ?
R
Z
N
b) Présentation des réels
DéfinitionC'est un sous-ensemble de l'ensemble des nombres réels IR. La définition de cesous-ensemble est liée à la représentation en binaire des réels dans la machine.
Les opérateurs arithmétiques sur les entier :+ : Addition- : Soustraction* : Multiplication/ : Division
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Nom_objet Réel Rôle
Exemple:
Objet Type/ Nature Rôle
x Réel ...
y Réel ...
Langage PASCAL :VAR Objet1,Objet2,... : REAL;
Exemple :VAR x, y, z : REAL;
Les fonctions arithmétiques standards :
Nom algorithmique Code en Pascal Rôle
Tronc (x) TRUNC (x) supprime la partie
Les types de données
15
Nom algorithmique Code en Pascal Rôle
décimale pour ne laisserque la composante entièrede x.
Arrondi (x) ROUND(x)
donne un entier qui est lavaleur du réel x arrondie àla plus proche valeur.
Abs (x) ABS(x)
donne la valeur absolue dex.
Carré (x) SQR(x)
donne le carré de x.
Racine Carré (x) SQRT(x)
donne la racine carrée dex si x n'est pas négatif etsinon provoque uneerreur.
Sin (x),Cos (x),Tang (x),Cotang (x)
SIN (x),COS (x),TANG (x),COTANG (x)
sinus, cosinus, tangente etcotangente
ENT(x) INT(x)
donne la partieentière d'un réel.
Aléa, Aléa(n) RANDOM, RANDOM (n) donne un réel comprisentre 0 et 1 exclusrespectivement donne unentier entre 0 et n-1
Ln(x) Ln(x) renvoie le logarithmenépérien d'un réel x
Exp(x) Exp(x) renvoie l'exponentiel de x
c) Exercice D'évaluation
Soit la séquence d'affectations suivante :a <-- 3b <-- 2.5masse <-- 12longueur <-- 4.5largeur <-- 1.5hypo <-- RacineCarré (carré(a)+carré(b))poids <--masse * gsurface <-- longueur * largeur1- Déclarer en Pascal les différents objets.
d) Réponses :
Déclaration et Traduction en Pascal1- Déclaration en PascalCONST g=9.81;
Les types de données
16
VAR masse : INTEGER;a,b,poids,longueur,largeur,surface,hypo : REAL;
B. Le type booléen
1. Exercice : Activité N°1[Solution n°5 p 29]
Quelles sont les valeurs du type booléen ?
R
Vrai, Faux
2. Présentation du type booléen
DéfinitionLe type booléen est utilisé pour caractériser des objets de type logique.
RemarqueLes variables de type booléen peuvent prendre uniquement deux valeurs logiquesVRAI et FAUX (TRUE ET FALSE en Pascal).
Complément : Les opérateurs logiques :NON (négation)Et (conjonction)OU (disjonction)OUex (OU exclusif)
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Nom_objet Booleen Rôle
Exemple:
Objet Type/ Nature Rôle
x Booleen ...
y Booleen ...
Langage PASCAL :VAR Objet1,Objet2,... : BOOLEAN;
Exemple :VAR x, y : BOOLEAN;
Les types de données
17
3. Exercice d'évaluation
Évaluer les expressions logiques suivantes :a- ( x <= 4) ET (x >= 1) avec x = 3b- ( x <= 2) ET (x >= 0) avec x = -4c- NON ( x <= 55) OU (x >= 0) avec x = 21
4. Réponse
a- ( x <= 4) ET (x >= 1) avec x = 3 donne VRAIb- ( x <= 2) ET (x >= 0) avec x = -4 donne FAUXc- NON ( x <= 55) OU (x >= 0) avec x = 21 donne VRAI
C. Le type caractère
1. Exercice : Activité N°1[Solution n°6 p 30]
Comment peut on définir un caractère ?
Les chiffres 1,2,3,4,5,6,7,8,9
Les lettres a,c,x,W,P,H...
Les symboles @,#,\,},]...
Tous les alphanumériques et symboles imprimables
2. Présentation des caractères
DéfinitionLe type caractère est utilisé pour représenter une lettre minuscule, une lettremajuscule, un chiffre ou un signe de ponctuation, mais aussi un espacetypographique, une tabulation, un retour à la ligne et quelques autres opérationsspéciales.
RemarqueTous les caractères sont ordonnés selon leur code ASCII.Un caractère doit être centré entre des guillemets (")
ComplémentLes caractères sont ordonnés comme suivant :'0'' < ''1'' ... <"9'' < ... "A'' < ''B'' ... < "Z" ... ''a'' < ''b'' <''z'' ...
Les types de données
18
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Nom_objet Caractére Rôle
Exemple:
Objet Type/ Nature Rôle
C Caractére ...
Langage PASCAL :VAR Objet1,Objet2,... : CHAR;
Exemple :VAR c: CHAR;
Les fonctions prédéfinies
Nom Code en Pascal Rôle
ORD (c) ORD (c) renvoie le code ASCII ducaractère c. Le résultat estun entier positif.
CHR (n) CHR (n) renvoie le caractère dontle code ASCII est n.
SUCC (c) SUCC (c) renvoie le caractèresuccesseur de c s'il existe.
PRED (c) PRED (c) renvoie le caractèreprédécesseur de c s'ilexiste.
MAJUS (c) UPCASE(c) Convertit le caractère c enmajuscule s'il est possible.
3. Exercice d'évaluation
Évaluer les expressions suivantes :ORD ("A")CHR (65)SUCC ("F")PRED ("Z")MAJUS("c ")
4. Réponses
ORD ("A") vaut 65CHR (65) vaut "A"SUCC ("F") vaut "G"PRED ("Z") vaut "Y"
Les types de données
19
MAJUS("c ") vaut "C"
D. Le type chaîne de caractères
1. Exercice[Solution n°7 p 30]
Comment peut on définir une chaîne de caractères ?
127
FAUX
"baccalauréat"
2. Présentation d'une chaîne de caractères
DéfinitionUne chaîne de caractères est une suite ordonnée de caractères. En algorithmique,la valeur d'une chaîne se note en utilisant des guillemets ("). En langage Pascal, onutilise plutôt des quottes simples (').
Exemple
Algorithmique Pascal
"baccalauréat" 'baccalauréat'
"l'algorithmique" 'l''algorithmique'
RemarqueLes variables chaînes de caractères sont définies par une déclaration pouvantindiquer le nombre maximum de ses caractères sinon la taille maximal de caractèrearrive jusqu’à 255.
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Nom_objet Chaine / Chaine[Taille] Rôle
Exemple:
Objet Type/ Nature Rôle
Prénom Chaine[10] Prénom des élèves
Langage PASCAL :VAR Objet1,Objet2,... : STRING;
VAR Objet1,Objet2,... : STRING[Taille];
Les types de données
20
Exemple :VAR
Prénom : String [10] ;Nom : String ;adresse : String [25] ;
ComplémentSoit l'affectation suivante :Nom <-- ''Beldi''Nom[1] vaut "B"Nom[2] vaut "e"Nom[3] vaut "l"Nom[4] vaut "d"Nom[5] vaut "l"
Les fonctions et les procédures prédéfinies
Algorithmique Code en Pascal Rôle
Concat(ch1,ch2,..,chN) CONCAT (ch1,ch2, ... chN) Concat retourne laconcaténation des chaînesch1, ch2, ...., chN
Long (ch) LENGTH (ch) Long retourne un entierreprésentant la longueuren caractères de la chaînech. Ce nombre se trouveaussi dans le caractèrech[0].
Sous_chaîne (ch, p, nbc) COPY (ch, p, nbc) Fonction qui retourne unesous-chaîne d'unelongueur nbc à partir de laposition p dans ch.
Pos (ch1, ch2) POS (ch1, ch2) Pos retourne la premièrepositionde la chaîne ch1 dans lachaîne ch2
Efface (ch, p, n ) DELETE (ch, p, n) Efface est une procédurequi enlève n caractères dech à partir de la position p.
Insère(ch1,ch2, p) INSERT(ch1, ch2, p) Procédure qui insère lachaîne ch1 dans la chaînech2 à partir de la positionp. Le caractère numéro pet les suivants sontdécalés vers la droite.
Convch (d, ch1) STR (d, ch1) Procédure qui convertit unnombre décimal d enchaîne de caractères etl'affecte à la variable ch1.
Les types de données
21
Algorithmique Code en Pascal Rôle
Valeur (ch, d, erreur) VAL (ch, d, erreur) Procédure qui convertitune chaîne ch en unevaleur numériquedécimale et l'affecte à lavariable d. Le paramètreerreurest une variable de typeentier qui contiendra 0 sila conversion s'est biendéroulée, sinon ellecontiendra la position ducaractère ,qui a déclenchél'erreur.
3. Exercice d'évaluation
1. concat ("Bon","jour")2. Long ("Lycée")3. Sous_chaîne ("Baccalauréat",6,7)4. Pos ("Bac","Baccalauréat")5. Convch (2008,ch)6. Valeur ("16.5",d,erreur)7. Efface (v, 7,3) où v contient "Disquette"
4. Réponses
1. concat ("Bon","jour") retourne la chaîne "Bonjour"2. Long ("Lycée") retourne l'entier 53. Sous_chaîne("Baccalauréat",6,7) retourne la chaîne "lauréat"4. Pos("Bac","Baccalauréat") retourne l'entier 15. Efface(v, 7,3) modifie v qui contiendra "Disque"6. Insère ("tte",v,7) modifie v qui contiendra "Disquette"7. Convch(2008, ch) modifie ch qui contiendra "2008"7. Valeur("16.5",d,erreur) modifie d qui contiendra le réel 16.5. erreur contiendra0.
Les types de données
22
III - Les tableaux à une dimension
III
Exercice : Activité N°1 23
Présentation d'un tableau : 23
Exercice d'évaluation 24
Réponse : 25
A. Exercice : Activité N°1
[Solution n°8 p 30]
Comment regrouper un certain nombre de variables, tels que les moyennes desélèves, sous un même nom ?
B. Présentation d'un tableau :
DéfinitionUn tableau est une structure de données homogènes regroupant un ensembled'éléments de même type.
Complémenton peut représenter le tableau comme suivant:
Borneinférieur
e
Bornesupérieu
re
Non du tableau Valeur1 Valeur2 Valeur3 Valeur4 Valeur5
23
SyntaxeDéclaration algorithmique:
Objet Type/ Nature Rôle
Nom_objet Tableau de taille N type Rôle
Exemple:
Objet Type/ Nature Rôle
T_MOY Tableau de taille 10 réel Tableau de moyennes
PASCAL :VAR ident_tableau:ARRAY[Borne_inf..Borne_sup] OF Type_élément;Exemple :VAR T_MOY:ARRAY[1..30] OF REAL;
Remarque- Ident_tableau : Identificateur du nouveau tableau que nous voulons définir.- Borne_Inf .. Borne_Sup : intervalle correspondant à l'ensemble des valeurs desindices du tableau.- Type_élément : type des éléments du tableau.
Accès aux éléments d'un tableau :Soit la déclaration et les affectations suivantes:VAR NOTES : ARRAY[1..5] OF REAL;NOTES [1] <-- 12NOTES [2] <-- 13.5NOTES [3]<-- 10NOTES [4]<-- 15.5NOTES [5]<-- 16Représenter graphiquement le tableau NOTES.Le tableau NOTES est comme suivant:
12 13.5 10 15.5 16
C. Exercice d'évaluation
Soit la séquence suivante :A [ 1 ] <-- 10A [ 2 ] <-- 7A [ 3 ] <-- A [ 1 ] Div A [ 2 ]A [ 4 ] <-- A [ 3 ] * A [ 2 ]A [ 5 ] <-- A [ 1 ] + A [ 3 ] * A [ 4 ]1- Déclarer le tableau A.2- Quel est le contenu de chaque élément du tableau A ?
Les tableaux à une dimension
24
D. Réponse :
1- VAR A:ARRAY[1..5] OF INTEGER;2-
10 7 1 7 17
Les tableaux à une dimension
25
Conclusion
Les structures de données vues dans ce chapitre sont :1. Les constantes et les variables2. Les types de données (Entier, Réel, Booléen, Caractère et Chaîne de caractère)3. Les tableaux à une dimension
27
Solution des exercices
> Solution n°1 (exercice p. 9)
Pi est égale a 9.8
Pi est égale a 3.14
> Solution n°2 (exercice p. 10)
i=50, j=70, k=50
i=70, j=70, k=50
i=70, j=50, k=50
> Solution n°3 (exercice p. 13)
R
Z
N
> Solution n°4 (exercice p. 15)
R
Z
N
> Solution n°5 (exercice p. 17)
R
Vrai, Faux
> Solution n°6 (exercice p. 18)
29
Les chiffres 1,2,3,4,5,6,7,8,9
Les lettres a,c,x,W,P,H...
Les symboles @,#,\,},]...
Tous les alphanumériques et symboles imprimables
> Solution n°7 (exercice p. 20)
127
FAUX
"baccalauréat"
> Solution n°8 (exercice p. 23)
Un tableau peut être considéré comme une suite de variables (Exemple :Moyennes), de même nom, repérées par des indices.
Solution des exercices
30