Documente Academic
Documente Profesional
Documente Cultură
Support de cours
ALGORITHMIQUE &
STRUCTURES DE DONNEES 1
Support de cours adress aux tudiants de la premire anne licence applique
Technologies de l'Informatique
Sommaire
PRESENTATION DU COURS............................................................................................... 1
BUT DU COURS : OBJECTIFS GENERAUX ET SPECIFIQUES .................................. 2
CHAPITRE 1 : NOTIONS FONDAMENTALES ................................................................ 9
I.
II.
III.
IV.
V.
VI.
VII.
DEFINITIONS .................................................................................................................... 9
DEMARCHE DECRITURE DALGORITHMES....................................................................... 9
CONSTANTES ET VARIABLES............................................................................................ 9
TYPES ............................................................................................................................ 10
LES EXPRESSIONS .......................................................................................................... 11
LES INSTRUCTIONS DE BASE .......................................................................................... 12
STRUCTURE GENERALE DUN ALGORITHME ............................................................... 14
INTRODUCTION .............................................................................................................. 24
BOUCLE POUR ............................................................................................................. 24
LA BOUCLE TANT QUE ............................................................................................... 26
LA BOUCLE REPETER JUSQUA ........................................................................... 27
PASSAGE DUNE STRUCTURE ITERATIVE A UNE AUTRE .................................................. 28
INTRODUCTION .............................................................................................................. 30
LE TYPE CARACTERE ..................................................................................................... 30
LE TYPE CHAINE DE CARACTERES .................................................................................. 31
PROCEDURES ET FONCTIONS STANDARDS SUR LES CHAINES .......................................... 32
INTRODUCTION .............................................................................................................. 53
DEFINITION ................................................................................................................... 53
LES FICHIERS SEQUENTIELS ........................................................................................... 54
LES FICHIERS TEXTE ...................................................................................................... 57
Prsentation du cours
Domaine de formation : Sciences et technologies
Mention
TI
Spcialit
TC
Semestre
S1
Crdit : 4
Coeff : 4
Elment constitutif
Algorithmique
Vol. Horaire/Semestre
et Cours TD
structures de donnes 45
TP
22.5
1.5
Coefficient
4
Crdits Evaluation
4
Contrle
Continu
67.5
1
Ventilation / Semaine
3
4.5
Mots-Cls
Algorithme, Structures de contrle, Tableau, Matrice, Chane, Fonction, Procdure,
Rcursivit, Tri, Enregistrement et Fichier.
Pr-requis
Nant.
Elments de contenu
Structures Rptitives (Boucles) : Rpter, Tant que et Pour, Les Types Tableau,
Matrice et Chane de caractres, Les Algorithmes de Recherche : Squentielle et
Dichotomique, Les Fonctions et les Procdures, Les Algorithmes de Tri et les types
Enregistrement et Fichier.
Objectifs
Les lments du
Objectifs
gnraux
cours
spcifiques
Connaitre la
dfinition dun
algorithme et son
importance.
Lintrt des
Comprendre cest
algorithmes.
quoi un algorithme,
Dfinition dun
algorithme.
Dmarche de
phase de production
ralisation dun
algorithme
la dmarche de sa
ralisation.
Chapitre 1 :
Connatre la
Les variables
notion de
les constantes
variables et des
variable et
constantes, aprs
comprendre
avoir
son utilit
type Boolen
notions.
Priorit des
Oprations
simples et les
Oprations
oprations
Arithmtiques
Oprations Logiques
Connaitre les
Notions
Fondamentales
diffrentes priorits
des oprations
Les instructions
Dfinition dune
Connaitre la notion
instruction
dinstruction.
Instruction de lecture
Apprendre
Instruction dcriture
manipuler les
Linstruction
instructions simples
daffectation
(affectation, lecture,
simples
criture)
structure gnrale
structure gnrale
Ralisation des
dun algorithme
Algorithmes laide
dun algorithme.
dinstructions
simples.
Maitriser les
TD
notions vues en
cours
Connaitre la
Introduction
structure alternative
Connaitre les
Alternative simple et
structures
complte
conditionnelles 1 ou
problmatique des
problmes 2 ou
plusieurs
traitements
possibles.
Chapitre 2 :
les structures
conditionnelles
Connatre les
structures
conditionnelles et
crire des
si sinonfin si)
algorithmes en
structure de choix
utilisant ces
Connaitre les
structures
nouvelles
conditionnelles
notions.
Maitriser les
TD
notions vues en
cours
Comprendre
Introduction
lintrt
Chapitre 3 : Les
structures
itratives
de la structure
Comprendre le besoin
des boucles
La structure Pour
Connaitre la syntaxe
itratif et connatre
de la boucle Pour et
sa
signification.
utilisation.
La structure Tant
Connaitre la syntaxe
queFaire
la structure
Connaitre la syntaxe
RpterJusqu
de la boucle Rpter
et les conditions de
son utilisation.
Daprs lnonc du
itrative
problme ltudiant
doit savoir quelle est
la structure itrative la
mieux adapter pour la
rsolution du
problme.
Maitriser les
TD
notions vues en
cours
Introduction
Le type caractre
Mieux connaitre le
type caractre,
connaitre les
fonctions standards
sur les caractres.
Chapitre 4 : Les
chaines de
caractres
Connatre le type
chane de caractre
et les manipuler.
type chaine de
Se familiariser avec
caractres
les chaines de
caractres, appliquer
chaines de caractres
Procdures et
procdures standards
Fonctions standards
caractres.
caractres
notions vues en
cours
Comprendre la
Introduction
Connaitre la notion de
ncessit de la
module
dcomposition
(programmation par
dun problme en
module).
sous problmes.
Chapitre 5:
Raliser des
Les procdures
Maitriser la notion de
Les Fonctions
procdure, connaitre
les procdures
algorithmes en le
la signification de
et les fonctions
dcomposant en
passage de paramtres
modules
et les diffrents
modes de passages de
paramtres.
Maitriser la notion de
fonctions.
Connaitre la
diffrence entre
procdure et fonction.
Maitriser les
TD
notions vues en
cours
Comprendre
Introduction
Comprendre la
lintrt des
difficult utiliser un
tableaux.
grand nombre de
variables.
Tableaux
Comprendre quest
unidimensionnels
Reprsentation
que ses
Algorithmique
caractristiques.
Accs un lment
Savoir manipuler les
Chapitre 6 :
les tableaux
Connaitre la
notion de type
compos.
Manipuler des
tableaux uni et
bidimensionnels.
du tableau
tableaux : dclarer,
Oprations de bases
tableaux
Remplissage dun
Comprendre la notion
tableau
de recherche.
Affichage dun
tableau
techniques de
Recherche dans un
recherche suivantes :
tableau
recherche squentielle
Recherche
et recherche par
squentielle
dichotomie.
Recherche par
dichotomie
Algorithme de tri
Comprendre la notion
dun tableau
de tri.
slection, par
Tri Bulles
insertion et le tri
bulles
Comprendre la notion
dimensions : Les
de matrice.
Matrices
Comprendre la
diffrence entre
matrice et tableau.
Savoir manipuler des
matrices.
Maitriser les
TD
notions vues en
cours
Introduction
Comprendre la
notion de type
compos
Comprendre lintrt
des types composs
Manipulation des
Comprendre la notion
variables de type
dEnregistrement.
enregistrements
Manipuler des
Enregistrements
Chapitre 7 : Les
(dclaration, lecture,
Enregistrements
criture, affectation et
comparaison entre
deux
enregistrements).
Maitriser les
TD
notions vues en
cours
Comprendre le
Introduction
Connaitre les
besoin et lintrt
Dfinition
diffrentes
aux fichiers et la
organisations des
sauvegarde
permanente des
diffrents modes
donnes
daccs
Chapitre 8 :
Les Fichiers
Les Fichiers
Se familiariser avec
Squentiels
les fichiers
Manipulation des
squentiels et
Fichiers Squentiels
apprendre les
manipuler.
Maitriser les
TD
notions vues en
cours
Objectifs
I.
1. Dfinition 1
Le mot algorithme vient du nom latinis du mathmaticien perse Al-Khawarizmi,
surnomm le pre de l'algbre .
Le domaine qui tudie les algorithmes est appel l'algorithmique.
2. Dfinition 2
L'algorithme est le rsultat d'une dmarche logique de rsolution d'un problme pour la mise
en uvre pratique sur ordinateur et afin d'obtenir des rsultats concrets.
3. Dfinition 3
Un algorithme dcrit une succession d'oprations qui, si elles sont fidlement excutes,
produiront le rsultat dsir.
II.
Pour rsoudre un problme on commence par identifier les donnes, les rsultats recherchs
et par quel moyen on peut obtenir les rsultats partir des donnes. Cest ltape danalyse du
problme qui aboutit un procd de rsolution appel algorithme (figure I.1).
Problme
Analyse
Algorithme
Constantes et variables
III.
Les constantes et les variables identifient les donnes manipules dans un algorithme. Ces
identificateurs doivent commencer par une lettre suivie de chiffres ou de lettres. Le choix dun
nom significatif pour les identificateurs permet daugmenter la lisibilit des algorithmes.
1.
Constantes
Une constante est une donne dont la valeur reste fixe tout au long de lexcution dun
programme.
Exemple :
Pi = 3.14
TVA = 0.18
Variables
Une variable est un identificateur auquel on assigne une valeur. La variable peut changer de
valeur durant lexcution dun programme. Une variable est identifie par un nom, une valeur
et un type.
Types
IV.
Le type attribu une variable permet de dfinir lensemble de valeurs que peut prendre la
variable ainsi que les oprations quon peut appliquer sur celle-ci.
Les principaux types utiliss en algorithmique sont :
-
Le type entier
Le type rel
Le type caractre
Le type entier
Addition : +
Soustraction : -
Multiplication : *
Exemples :
2.
15 div 6 = 2
15 mod 6 = 3
15 * 6 = 90
15 6 = 9
15 + 6 = 21
Le type rel
Addition : +
Soustraction : -
Multiplication : *
Division : /
10
3.
Le type caractre
Ce type dsigne les caractres majuscules ("A" "Z"), minuscules ("a" "z"), numriques
("0" "9") et spciaux ("!", "?",":", "&", "#", ).
Les oprateurs dfinis sur ce type sont :
-
gal : =
Diffrent : #
Infrieur : <
Suprieur : >
4.
Les variables de ce type peuvent prendre seulement une des deux valeurs :
"VRAI" ou "FAUX".
Ces variables sont utilises pour valuer une condition.
Les oprations de base dfinies sur ce type sont : la ngation (NON), lintersection (ET) et
lunion (OU).
V.
NON (A)
A ET B
A OU B
VRAI
VRAI
FAUX
VRAI
VRAI
VRAI
FAUX
FAUX
FAUX
VRAI
FAUX
VRAI
VRAI
FAUX
VRAI
FAUX
FAUX
VRAI
FAUX
FAUX
Les expressions
Une expression est la combinaison entre des constantes et des variables laide doprateurs
arithmtiques ou logiques. Lexpression obtenue exprime un calcul ou une relation.
11
Lordre dvaluation des expressions arithmtiques se fait partir des rgles de priorits sur
les oprateurs allant du plus prioritaire au moins prioritaire :
signe ngatif
parenthses ( )
puissance ^
multiplication et division * et /
addition et soustraction + et -
Remarque :
Si dans une expression lordre dvaluation entre deux ou plusieurs oprateurs est le mme,
lvaluation se fait de gauche droite.
2.
Une expression logique exprime une condition qui peut tre formule laide :
-
de variables et de constantes relies par des oprateurs relationnels (<, >, =, <=, >=, #)
de variables et de constantes logiques relies par des oprateurs logiques (NON, ET, OU)
La priorit des oprateurs logiques est la suivante allant du plus prioritaire au moins
prioritaire :
NON
ET
OU
La priorit des oprateurs relationnels est la suivante allant du plus prioritaire au moins
prioritaire :
>
>=
<
<=
VI.
1.
La lecture
12
2.
Message
expression
Variable
Exemple2 :
Quelle sera le rsultat de l'excution des instructions suivantes:
A a
Matiere Algo
Ecrire(A)
Ecrire( "A")
Ecrire(Matiere)
Solution :
3.
Algo
Laffectation
Lopration daffectation permet de charger une valeur dans une variable. La valeur peut tre
une constante, la valeur dune autre variable ou le rsultat dune expression.
13
A gauche dune affectation ne peut apparatre quune variable. Les constantes et les
expressions sont interdites.
Exemple :
A 5
B3
CBA
VII.
ALGORITHME nom_algorithme
CONST
{Dfinition des constantes}
VAR
{Dclaration de variables}
DEBUT
{Suite dinstructions}
FIN
Exemple :
1.
ALGORITHME Hello_world
DEBUT
ECRIRE ("Hello World")
FIN
2.
ALGORITHME total
CONST
coefficient = 3
VAR
x, t : entier
14
15
Objectifs
Manipuler les structures conditionnelles simples
Manipuler les structures conditionnelles multiples
16
I.
Souvent les problmes ncessitent l'tude de plusieurs situations qui ne peuvent pas tre
traites par les squences d'actions simples.
Puisqu'on a plusieurs traitements, on est amen choisir un traitement parmi deux ou
plusieurs.
Le choix de lun de ces traitements nest pas possible avant lexcution puisquil dpend
dune condition do la notion de traitement conditionnel.
On distingue deux types de structures conditionnelles :
II.
1.
Forme simple
Syntaxe :
SI <condition> ALORS
<Squence dinstructions>
FIN SI
Dans cette primitive les instructions ne sont excutes que si la condition est vrifie
(figure II.1).
SI
Condition
FAUX
VRAI
Squence dinstructions
Suite de lalgorithme
Figure. II.1 : Instruction conditionnelle simple
Exemple :
Le tarif dun bus est de 0.550 DT pour les voyageurs de plus de 6 ans. Les voyageurs gs de
moins de 6 ans bnficient dune rduction de 50%.
Ecrire un algorithme qui lit lge du voyageur et qui affiche le prix de son ticket.
17
Forme alternative
Syntaxe :
SI <Condition> ALORS
<Squence dinstructions 1>
SINON
<Squence dinstructions 2>
FIN SI
FAUX
Condition
Squence dinstructions 1
Squence dinstructions 2
Suite de lalgorithme
18
19
III.
Cette structure est appele aussi choix multiple ou slective car elle slectionne entre
plusieurs choix la fois, et non entre deux choix alternatifs (le cas de la structure SI).
Syntaxe :
SELON <slecteur> FAIRE
liste de valeurs 1 : <Squence dinstructions 1>
liste de valeurs 2 : <Squence dinstructions 2>
.
liste de valeurs n : <Squence dinstructions n>
SINON
<Autre squence dinstructions>
FIN SELON
Remarques :
Le slecteur peut tre une variable ou expression de type scalaire (le rsultat est un
entier ou un caractre)
liste de valeurs (i) peut y avoir une seule valeur, une suite de valeurs spares par des
virgules et/ou un intervalle de valeurs.
Le slecteur doit avoir le mme type que les valeurs dans les liste de valeurs.
Exemple :
Ecrire un algorithme qui lit un chiffre de 0 9 puis affiche le chiffre en toute lettre.
20
21
FIN SI
FIN SI
FIN SI
FIN SI
FIN
22
Objectifs
Manipuler les structures itratives (pour, Tant Que, rpter jusqu)
Savoir comment passer dune structure itrative une autre.
23
I.
Il est bien rare que dans un programme, il n'y ait pas ncessit de rpter une action un certain
nombre de fois... on parle de squence rptitive ou itrative.
Le nombre ditration peut tre connu lavance ou non. Dans ce dernier cas, larrt de
litration est dclench par une condition sur ltat des variables dans le programme.
Boucle POUR
II.
1.
Syntaxe
2.
c vi
VRAI
c <= vf
Traitement
FAUX
Suite de lalgorithme
c vi + p
24
Remarques :
Si vi vf alors p > 0
Si vi vf alors p < 0
Exemple1 :
On veut afficher les nombres (>0) pairs et infrieurs 20 :
Solution 1 :
POUR i DE 1 A 20 FAIRE
SI (i MOD 2 = 0) ALORS
ECRIRE (i)
FIN SI
FIN POUR
Solution 2 :
POUR i DE 1 A 10 FAIRE
ECRIRE (2*i)
FIN POUR
Solution 3 :
POUR i DE 1 A 20 PAS 2 FAIRE
ECRIRE (i)
FIN POUR
Solution 4 :
POUR i DE 20 A 1 PAS -2 FAIRE
ECRIRE (i)
FIN POUR
Exercice :
Ecrire un algorithme qui permet de lire les notes de 20 tudiants et de calculer la moyenne de
la classe pour une matire donne.
ALGORITHME moyenne
VAR
m, n : rel
25
III.
1.
Syntaxe
Principe de fonctionnement
TANT
QUE
Condition?
FAUX
VRAI
Traitement
Suite de lalgorithme
La boucle TANT QUE est excute aussi longtemps que la condition est vrifie. Si ds le
dbut la condition est fausse le traitement ne sera excut aucune fois. Une boucle tant que
sexcute 0 ou plusieurs fois.
Remarques :
Il doit y avoir une action dans le traitement qui modifie la valeur de la condition.
Toute boucle TANT QUE peut tre transform en une boucle POUR
Exercice
Rcrire lalgorithme qui permet de lire les notes de 20 tudiants et de calculer la moyenne de
la classe pour une matire donne, laide dune boucle TANT QUE :
ALGORITHME moyenne
26
IV.
1.
Syntaxe
REPETER
Traitement
JUSQU'A condition
O condition est expression ou une variable a valeur boolenne.
2.
Principe de fonctionnement
Le traitement de cette boucle est excut au moins une fois et il est ensuite rpt jusqu' ce
que la condition de sortie soit vrifie.
REPETER
Traitement
Condition?
FAUX
VRAI
Suite de lalgorithme
Figure. III.3 : Boucle TANT QUE
Remarque :
Dans cette boucle, le traitement est excut au moins une fois avant l'valuation de la
condition d'arrt.
27
Exercice
Rcrire lalgorithme qui permet de lire les notes de 20 tudiants et de calculer la moyenne de
la classe pour une matire donne, laide dune boucle REPETER :
ALGORITHME moyenne
VAR
m, n : rel
DEBUT
m0
i1
REPETER
Ecrire ("donner une note")
LIRE (n)
mm + n
ii+1
JUSQU'A (i>20)
ECRIRE ("La moyenne de la classe est :",m/20)
FIN
Remarque :
V.
Lors du passage dune boucle pour ou tantque une boucle rpter , faire
attention aux cas particuliers (le traitement sera toujours excut au moins une fois).
28
Objectifs
Manipuler les types caractre et chaine de caractres
Connaitre les fonctions standards des caractres
Connaitre les fonctions et procdures standards des chaines de caractres
29
I.
Autre que les types de donnes dfinies dans le chapitre I, il y a le type chane de caractre.
Le type caractre
II.
1.
Dfinition
Ce type sapplique tous les caractres du code ASCII (American Standard Code for
Information Interchange).
La liste comprend :
Les lettres : A Z et az
Les chiffres : 09
Chaque caractre est dfini par son numro dordre unique compris entre 0 et 255
2.
Exemple :
i Asc(A)
i contiendra 65
Exemple :
c Car(65)
c contiendra A
Exemple :
c Succ(a)
c contiendra b
Exemple :
c Pred(b)
c contiendra a
Exemple :
c Majus(a)
30
III.
Var
ch : Chane
chn : Chane[20]
La variable ch peut contenir jusqu 255 caractres alors que chn peut contenir au
maximum 20.
2.
31
Lexpression (b > a) est vraie puisque le code ASCII de b est (98) est suprieur
celui de a est (97)
IV.
1.
Procdures
Exemple :
ch Algorithmique
efface (ch,1,4)
ch contiendra Algo
Insert (Ch1, Ch2, P) Insre la chane Ch1dans la chane Ch2 partir de la position P.
Exemple:
Ch2 Algo
Ch1 rithmique
insert(Ch1,Ch2,5)
Ch2 contiendra Algorithmique
32
Fonctions
Exemple :
ch Algorithmique
n Long(ch)
n contiendra 13
Exemple :
ch1 Algorithmique
ch2 Copy(ch1,7,6)
ch2 contiendra hmique
Exemple :
ch1 or
ch2 Algorithmique
n Position(ch1,ch2)
n contiendra 3
33
Objectifs
34
I.
Pour les problmes complexes il est toujours conseill de les dcomposer en des sousproblmes de complexit infrieure.
Les sous-problmes peuvent a leurs tours tre dcomposs jusqu atteindre des traitements
lmentaires facile implmenter.
Ce type de programmation sappelle programmation modulaire ou chaque module traite un
sous-problme et qui peut tre soit une procdure soit une fonction.
Procdure
II.
Une procdure est un sous algorithme ayant une structure semblable celle dun algorithme et
qui possde un ensemble de paramtres et permet de transmettre un ensemble de rsultats.
1.
Syntaxe
Les variables dclares dans le bloc VAR dune procdure sont appeles variables
locales et ne peuvent tre utilises qu lintrieure de celle-ci.
Appel dune procdure
2.
35
Lors de lappel dune procdure il faut respecter le nombre, lordre et le type des
paramtres.
Une variable globale est dclare au dbut de lalgorithme. Elle peut tre utilise dans
le corps principal de lalgorithme ou par les diffrents modules.
3.
36
Sens de transfert
Mode de passage
Donne
AlgorithmeProcdure
Par valeur
Rsultat
AlgorithmeProcdure
Par variable
Donne-rsultat
Exemple :
Soit les deux procdures change suivantes :
PROCEDURE echange1 (a, b : entier)
VAR
c : entier
DEBUT
ca
ab
bc
FIN
PROCEDURE echange2 (VAR a, b : entier)
VAR
c : entier
DEBUT
ca
ab
bc
FIN
Dans le mode de passage par valeur la procdure travaille sur une copie des
paramtres effectifs alors que dans le cas du passage des paramtres par variable la
procdure travaille sur les paramtres originaux.
37
Fonctions
III.
Une fonction est une procdure particulire qui possde un seul rsultat. Une fonction possde
en plus un type de retour qui le type de son rsultat.
1.
Syntaxe
Dans une fonction tous les paramtres sont passs par valeurs.
Le nom de la fonction joue un double rle il est nom et variable locale la fois.
Dans le corps de la fonction il doit exister une instruction qui affecte le rsultat au
nom de la fonction.
Appel dune fonction
2.
38
Objectifs
39
I.
On dsire lire les 20 notes dalgorithmique de notre classe et dafficher ensuite les notes
suprieure la moyenne de la calasse dans la matire.
Ceci suppose quon doit sauvegarder toutes les notes pour calculer la moyenne et faire ensuite
la recherche de celles suprieure la cette moyenne.
Ce genre de traitement comporte deux inconvnients majeurs :
Lalgorithmique offre une solution qui sappelle tableau qui permet de combiner
plusieurs valeurs de mme type sous un mme nom permettant ainsi doptimiser leur
traitement.
Tableaux unidimensionnels
II.
Dclaration
Exemple :
On veut dclarer un tableau T de dix entiers :
Remarque :
On peut aussi dclarer un tableau comme suit :
CONST
N=10
TYPES
Tab=Tableau [1 .. N] de entier
VAR
T : Tab
40
2.
Pour chaque lment du tableau on peut appliquer toutes les oprations de base quon peut
appliquer sur le type de base :
T[3]T[4]
LIRE (T[i])
ECRIRE (T[2*i])
3.
Oprations usuelles
a. Remplissage
Le remplissage dun tableau se fait lment par lment. Le tableau est pass par variable
puisquil va tre chang par la procdure :
Remarque :
41
SI (T[i] = E) ALORS
Posi
FIN SI
Recherchepos
FIN
Tri dun tableau
4.
Le tri dun tableau est lorganisation de tous ces lments dans un ordre croissant ou
dcroissant.
Il existe plusieurs algorithmes qui permettent de trier les lments dun tableau. Parmi ces
algorithmes on va tudier :
Le tri bulle.
42
43
Comparer et permuter si ncessaire T[1] et T[2] de faon placer le plus petit dans la
case du tableau dindice 1.
Comparer et permuter si ncessaire llment T[3] avec ceux qui le prcdent dans
lordre (T[2] puis T[1]) afin de former une sous-tableau tri T[1..3].
Enfin comparer et permuter si ncessaire llment T[n] avec ceux qui le prcdent
dans lordre (T[n-1], T[n-2], T[n-3], ) afin dobtenir un tableau tri.
44
Recherche dichotomique
Soit T un tableau contenant n lments tris dans le sens croissant, on veut crire une
procdure qui affiche lindice de la premire apparition dun lment x dans le tableau sil
existe.
Le principe de fonctionnement consiste :
Soient premier et dernier les extrmits gauche et droite de lintervalle dans lequel on
cherche la valeur de x.
Il y a 3 cas possibles :
x = T[M] : llment de valeur x est trouv, donc ce cas la recherche est termine
x < T[M] : llment x, sil existe, se trouve dans lintervalle [premier .. M-1]
x > T[M] : llment x, sil existe, se trouve dans lintervalle [M+1 .. dernier]
Refaire ce travail jusqu ce que lon trouve x ou que lintervalle de recherche soit
vide (premier > dernier).
45
Tableaux multidimensionnels
III.
1.
Dfinition
46
47
Objectifs
Manipulation des types composs
48
I.
On a vu jusquici que les variables peuvent tre de type simple tel que les caractres et les
rels.
On a vu ensuite quun tableau permet de rassembler un ensemble dlments de mme type
sous un mme nom.
Un enregistrement permet de rassembler plusieurs informations de types diffrents sous un
nom unique.
Le type enregistrement forme donc un type compos.
Syntaxe
II.
Types
Nom_enreg=ENREG
Var 1 : type 1
Var 2 : type 2
Var i : type i
Var n : type n
FINENREG
VAR
Enrg1 : Nom_enreg
Remarques :
La dclaration ci-dessus constitue une dfinition dun nouveau type Nom_type de type
enregistrement.
Les Var i constituent les membres de lenregistrement qui sont appels champs.
Exemple :
date=ENREG
jour : entier
mois : chane
annee : entier
FIN ENREG
Var
49
III.
On ne peut pas rfrencs globalement un enregistrement dans une instruction car ils
sont composs dlments de types diffrents. Par contre, il est possible de faire
rfrence chaque lment dun enregistrement.
Exemple :
dt.jour 12
dt.moisjuin
dt.annee 2012
Remarques :
Exemple :
date1, date2 : date
date1 date2
date1.jourdate2.jour
date1.moisdate2.mois
date1.anneedate2.annee
Exemple :
SI (d1=d2) Alors
Exercice :
On veut reprsenter un tudiant identifi par un matricule, un nom, un prnom et une date de
naissance.
1. Dfinir la structure de donn reprsentant un tudiant et une date.
2. Ecrire une procdure qui permet de remplir un tableau de 20 tudiants.
Solution :
1.
TYPE
date=ENREG
jour : entier
50
51
Objectifs
Manipuler les fichiers squentiels
Manipuler les fichiers texte
52
I.
Jusquici les donnes utilises taient stockes de manire temporaire, mais souvent on a
besoin de stocker les donnes et les rsultats des programmes de faon permanente. Parmi les
moyens utiliss qui permettent de stocker les donnes de faon permanente sont les bases de
donnes et les fichiers.
Dans ce chapitre on va sintresser aux fichiers.
Dfinition
II.
Un fichier structur est une collection dinformations de mme type stockes les unes la
suite des autres sur un support physique (disque dur, cd, dvd, etc.) et termin par une
marque de fin de fichier.
On peut faire lanalogie avec un fichier manuel comportant des fiches chaque fiche
correspond une information et le fichier correspond la boite darchive.
Exemples :
Un fichier dtudiants
Un fichier darticles
Un fichier demploy
Caractristiques dun fichier
1.
On ce qui concerne le nom dun fichier on distingue le nom interne qui est le nom
avec lequel un fichier est identifi dans un algorithme et un nom externe qui comporte
le chemin du fichier (nom du support physique), le nom du fichier ainsi que son
dextension.
Pour le mode daccs dun fichier on trouve laccs squentiel et laccs direct.
Un fichier squentiel permet uniquement d'accder aux donnes dans l'ordre de leur
criture (accs squentiel).
53
Pour les fichiers squentiels indexs ou slectifs Les composantes sont stockes dans
le fichier dans l'ordre de leur cration. On utilise alors un tableau d'index, donnant en
premire position le numro de la premire composante, puis de la seconde, etc.
III.
1.
Syntaxe :
Types
Nom_fichier= Fichier de type
Var
F : Nom_ficher
Exemple :
Types
Voiture=ENREG
Marque : chane
Prix: rel
Nserie : entier
Fin ENREG
Fichier_Voiture=Ficher de voiture
Var
V : Voiture
F : Fichier_Voiture
2.
Syntaxe :
Ouvrir (Nom_fichier, mode)
Remarques :
Aprs louverture du fichier on aura un pointeur qui pointe sur la 1re donne du
fichier.
Exemple :
Ouvrir (F, E)
54
On va ouvrir le fichier F qui est un fichier de voiture en mode criture afin dajouter,
de modifier ou de supprimer des voitures.
Lors de la lecture dun fichier on commence toujours par la 1re donne du fichier.
Chaque donne lue est rcupre dans une variable (tampon) qui a le mme type que
les lments du fichier.
Si on veut lire une donne particulire il faut commencer depuis le dbut jusqu
atteindre linformation voulue.
Exemple :
Fermer(F)
e. Test de la fin dun fichier
Syntaxe :
X FDF (Nom_fichier)
55
Pour tester si on a atteint la fin du fichier ou non, on utilise cette fonction qui retourne
vrai si cest le cas sinon elle retourne faux.
Exercice 1:
crire une procdure qui permet de remplir un fichier de 10 articles, un article et caractris
par son libell, son prix et sa quantit.
Correction :
Type
Article= ENREG
Libelle : chaine
Prix : rel
Quantite : rel
Fin ENREG
Fich= Fichier darticle
Procdure Remplir (var F : Fich)
VAR
a : Article
i : entier
Dbut
Ouvrir (F, E)
Pour i de 1 10 Faire
Ecrire ("donner le nom du produit")
Lire (a.Libelle)
Ecrire ("donner le prix du produit")
Lire (a.Prix)
Ecrire ("donner la quantit du produit")
Lire (a.Quantite)
Ecrire (F, a)
Fin Pour
Fermer(F)
Fin
Exercice 2 :
crire une procdure qui permet dafficher le contenu dun fichier dun article.
56
IV.
1.
Dfinition
Syntaxe :
Types
Nom_fichier= Fichier de caractres
Var
F : Nom_fichier
Remarques :
57
Un fichier texte peut tre trait caractre par caractre ou ligne par ligne.
Pour lire une ligne on utilise la procdure suivante Lire_lig (Nom_fichier, x) qui
permet de lire une ligne du fichier et copier son contenu dans la variable x qui est de
type chaine.
Exercice :
crire une procdure qui permet dafficher le contenu dun fichier texte.
Correction :
Types
Ftext=Fichier de caractre
Procdure Affichage( F : Ftext)
VAR
a :chaine
Dbut
Ouvrir (F, L)
Lire_lig (F,a)
Tant que (FDF(F)=faux) Faire
Ecrire (a)
Lire_lig (F,a)
Fin Tant que
Fermer(F)
Fin
58
Rfrences Bibliographiques
59