0% ont trouvé ce document utile (0 vote)
17 vues65 pages

Introduction à l'Algorithmique et Informatique

Transféré par

Pispa Diop
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues65 pages

Introduction à l'Algorithmique et Informatique

Transféré par

Pispa Diop
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Cours : Algorithmique

Chapitre 1 :
Introduction à l’informatique

2
L’informatique ?
Définition:
L’informatique est la science qui regroupe l’ensemble des théories et des
techniques permettant de traiter de l’information à l’aide d’un ordinateur

INFORMATIQUE ?

AUTOMATIQUE
INFORMATION Art d’entraîner automatiquement des actions

Science de l’information

Traitement automatique de l’information


ORDINATEUR
Machine automatique
3
Traitement de l’information
héma de principe du traitement de l’information

Données à l’état brut

ENTREE Données corrigées


Résultats
TRAITEMENT
Par ordinateur

SORTIE

4
L’ordinateur / l’homme
Raison du remplacement :
Vitesse (pour des opérations « bas niveau »)
Fiabilité (: les ordinateurs font très
rarement des erreurs < bugs > )
Mémoire
Coût
2 types d’ « informaticiens »
les utilisateurs des outils informatiques
les concepteurs de ces outils : votre but

5
Domaines de l’informatique
Domaine du matériel (hardware)
partie physique de l’ordinateur
composants constituant un ordinateur
(microprocesseur …)
support du traitement de l’information (disque
dur …)
Domaine du logiciel (software)
Instructions expliquant à l’ordinateur comment
traiter un problème
Cela nécessite de décrire des : algorithmes et
représentations informatiques de ces
instructions
Pour aboutir à un programme 6
Algorithmes et programmes
Programme :
Ensemble séquentiel d’instructions rédigées
pour que l’ordinateur puisse résoudre un
problème donné .
Codage d’un algorithme afin que l’ordinateur
puisse exécuter les actions décrites
Doit être écrit dans un langage
compréhensible par l’ordinateur
 langage de programmation (Assembleur
(micropro), C, Java, Python, Php …)
Un programme est donc une suite ordonnée
d’instructions élémentaires codifiées dans
un langage de programmation
7
Chapitre 2 :
Algorithmique

8
Introduction
Les programmeurs sont amenés à concevoir
des logiciels de plus en plus complexes pour
répondre aux besoins des utilisateurs
(applications en réseau, base de données
réparties, …)
maîtriser le développement des logiciels est
très important

9
Algorithmes
Notion précise d’algorithme a été
découverte en 825 par le mathématicien
perse Muhammmad ibn Musa al-Kharezmi
Moyen d’automatisation et d’économie de la
pensée

Petit Larousse : suite d’opérations


élémentaires constituant un schéma de
calcul ou de résolution de problème.

10
Algorithmes
Pour nous :
Un algorithme est une séquence précise et
non ambiguë d’une suite d’étapes pouvant
être exécutées de façon automatique par un
ordinateur pour résoudre un problème.

Spécification du schéma de calcul sous


forme d’une suite finie d’opérations
élémentaires obéissant à un enchaînement
déterminé.

11
Algorithmes
Informations
en entrée

Algorithme informatique
=
schéma de calcul

Un algorithme est une suite finie de règles à


appliquer dans un ordre déterminé à un nombre fini
de données, pour arriver en un nombre fini Informations
d’étapes, à un certain résultat, et cela en sortie
indépendamment des données.

12
Importance des algorithmes
 Pour mener à bien un traitement sur un
ordinateur il faut :
1. Concevoir un algorithme qui décrit
comment le traitement doit être fait
2. Exprimer l’algorithme sous la forme d’un
programme dans un langage de
programmation
3. Faire en sorte que l’ordinateur exécute le
programme : compilation

13
Algorithme

programmation

Programme en langage évolué

traduction

Programme en langage machine

Interprétation par l’Unité Centrale de traitement

le traitement souhaité est réalisé

14
Exemple:
Un algorithme de résolution de l'équation

ax+b = 0
données : a et b entiers

Algorithme :

Écrire(‘ résolution de l ’équation : ax+b=0 ’)


lire(a), lire(b)
Si a est non nul,
alors on obtient la solution : x = -b/a

Résultat : la solution de l ’équation ax+b=0; si elle existe


Notions et instructions de base

16
Notion de variable
 Dans les langages de programmation une variable sert
à stocker la valeur d’une donnée

 Une variable désigne en fait un emplacement mémoire


dont
le contenu peut changer au cours d’un programme
(d’où le nom variable)

 Règle : Les variables doivent être déclarées avant


d’être utilisées, elle doivent être caractérisées par :
 un nom (Identificateur)
 un type (entier, réel, caractère, chaîne de caractères, …)
Choix des identificateurs (1)
Le choix des noms de variables est soumis à quelques
règles qui varient selon le langage, mais en général:
 Un nom doit commencer par une lettre alphabétique
exemple valide: A1 exemple
invalide: 1A
 doit être constitué uniquement de lettres, de chiffres et du
soulignement _ (Eviter les caractères de ponctuation et les
espaces) valides: SMIP2007, SMP_2007 invalides:
SMP 2005,SMI-2007,SMP;2007
 doit être différent des mots réservés du langage (par
exemple en Java: int, float, else, switch, case, default, for,
main, return, …)

 La longueur du nom doit être inférieure à la taille maximale


spécifiée par le langage utilisé
18
Choix des identificateurs (2)
Conseil: pour la lisibilité du code choisir des noms
significatifs qui décrivent les données manipulées
exemples: TotalVentes2004, Prix_TTC,
Prix_HT

Remarque: en pseudo-code algorithmique, on va


respecter les règles citées, même si on est
libre dans la syntaxe.

19
Déclaration des variables
 Rappel: toute variable utilisée dans un algorithme doit avoir
fait l’objet d’une déclaration préalable
 En pseudo-code, on va adopter la forme suivante pour la
déclaration de variables
Variables liste d'identificateurs : type
 Exemple:
Variables i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de
caractères
 Remarque: pour le type numérique on va se limiter aux
entiers et réels sans considérer les sous types

20
L’instruction d’affectation
 l’affectation consiste à attribuer une valeur à une variable (ça
consiste en fait à remplir où à modifier le contenu d'une zone mémoire)

 En pseudo-code, l'affectation se note avec le signe ←


Var← e: attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- Var et e doivent être de même type ou de types compatibles
- l’affectation ne modifie que ce qui est à gauche de la flèche

 Ex valides: i ←1 j ←i k ←i+j
x ←10.3 OK ←FAUX ch1
←"SMI"
ch2 ←ch1 x ←4 x ←j
(voir la déclaration des variables dans le transparent précédent)
 non valides: i ←10.3 OK ←"SMI" j ←x

21
Exercices simples sur l'affectation (1)
Donnez les valeurs des variables A, B et C après
exécution des instructions suivantes ?

Variables A, B, C: Entier
Début
A←3
B←7
A←B
B ← A+5
C←A+B
C←B–A
Fin

22
Exercices simples sur l'affectation (2)
Donnez les valeurs des variables A et B après exécution des
instructions suivantes ?

Variables A, B : Entier
Début
A←1
B←2
A←B
B←A
Fin

Les deux dernières instructions permettent-elles


d’échanger les valeurs de A et B ?

23
Exercices simples sur l'affectation (3)
Ecrire un algorithme permettant d’échanger
les valeurs de deux variables A et B

24
Expressions et opérateurs
 Une expression peut être une valeur, une variable ou une
opération constituée de variables reliées par des opérateurs
exemples: 1, b, a*2, a+ 3*b-c, …
 L'évaluation de l'expression fournit une valeur unique qui est le
résultat de l'opération
 Les opérateurs dépendent du type de l'opération, ils peuvent
être :
 des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
 des opérateurs logiques: NON, OU, ET
 des opérateurs relationnels: =, , <, >, <=, >=
 des opérateurs sur les chaînes: & (concaténation)

 Une expression est évaluée de gauche à droite mais en tenant


compte de priorités

25
Priorité des opérateurs
 Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre
de priorité est le suivant (du plus prioritaire au moins prioritaire) :

 ^ : (élévation à la puissance)
 * , / (multiplication, division)
 % (modulo)
 + , - (addition, soustraction)

exemple: 2+3*7 vaut 23

 En cas de besoin (ou de doute), on utilise les parenthèses


pour indiquer les opérations à effectuer en priorité
exemple: (2 + 3) * 7
vaut 35

26
Les instructions d'entrées-sorties: lecture et écriture
(1)
 Les instructions de lecture et d'écriture permettent à la
machine de communiquer avec l'utilisateur
 La lecture permet d'entrer des donnés à partir du clavier

 En pseudo-code, on note: lire (var)


la machine met la valeur
entrée au clavier dans la zone
mémoire nommée var

 Remarque: L’algorithme s'arrête lorsqu'il rencontre une


instruction Lire et ne se poursuit qu'après la frappe
d’une valeur au clavier et de la touche Entrée

27
Les instructions d'entrées-sorties: lecture et écriture
(2)
 L'écriture permet d'afficher des résultats à l'écran (ou de
les écrire dans un fichier)

 En pseudo-code, on note: écrire (var)


la machine affiche le
contenu de la zone mémoire
var

 Conseil: Avant de lire une variable, il est fortement


conseillé d’écrire des messages à l’écran, afin de
prévenir l’utilisateur de ce qu’il doit frapper

28
Exemple (lecture et écriture)
Ecrire un algorithme qui demande un nombre entier à
l'utilisateur, puis qui calcule et affiche le double de ce
nombre

Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer le nombre ")
lire(A)
B ← 2*A
écrire("le double de ", A, "est :", B)
Fin
29
Exercice (lecture et écriture)
Ecrire un algorithme qui vous demande de saisir votre
nom puis votre prénom et qui affiche ensuite votre nom
complet

Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
30
Tests: instructions conditionnelles (1)
 Les instructions conditionnelles servent à n'exécuter une
instruction ou une séquence d'instructions que si une condition est
vérifiée
 On utilisera la forme suivante: Si condition alors
instruction ou suite
d'instructions1
Sinon
instruction ou suite d'instructions2
Finsi
 la condition ne peut être que vraie ou fausse

 si la condition est vraie, se sont les instructions1 qui seront exécutées

 si la condition est fausse, se sont les instructions2 qui seront exécutées

 la condition peut être une condition simple ou une condition composée de


plusieurs conditions

31
Tests: instructions conditionnelles (2)
 La partie Sinon n'est pas obligatoire, quand elle n'existe
pas et que la condition est fausse, aucun traitement n'est
réalisé

 On utilisera dans ce cas la forme simplifiée suivante:

Si condition alors
instruction ou suite d'instructions1
Finsi

32
Exemple (Si…Alors…Sinon)
Algorithme AffichageValeurAbsolue (version1)
Variable x : réel
Début
Ecrire (" Entrez un réel : “)
Lire (x)
Si (x < 0) alors
Ecrire ("la valeur absolue de ", x, "est:",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin

33
Exemple (Si…Alors)
Algorithme AffichageValeurAbsolue (version2)
Variable x,y : réel
Début
Ecrire (" Entrez un réel : “)
Lire (x)
y← x
Si (x < 0) alors
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin

34
Exercice (tests)
Ecrire un algorithme qui demande un nombre entier à
l'utilisateur, puis qui teste et affiche s'il est divisible par 3
Algorithme Divsible_par3
Variable n : entier
Début
Ecrire " Entrez un entier : "
Lire (n)
Si (n%3=0) alors
Ecrire (n," est divisible par 3")
Sinon
Ecrire (n," n'est pas divisible par 3")
Finsi
Fin

35
Conditions composées
 Une condition composée est une condition formée de
plusieurs conditions simples reliées par des opérateurs
logiques:
ET, OU, OU exclusif (XOR) et NON
 Exemples :
 x compris entre 2 et 6 : (x > 2) ET (x < 6)

 n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)

 deux valeurs et deux seulement sont identiques parmi a,


b et c :
(a=b) XOR (a=c) XOR (b=c)

 L'évaluation d'une condition composée se fait selon des


règles présentées généralement dans ce qu'on appelle 36
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI FAUX VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX

3
Tests imbriqués
 Les tests peuvent avoir un degré quelconque d'imbrications
Si condition1 alors
Si condition2 alors
instructionsA
Sinon
instructionsB
Finsi
Sinon
Si condition3 alors
instructionsC
Finsi
Finsi

38
Tests imbriqués: exemple (version 1)
Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors
Ecrire ("Ce nombre est négatif")
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin
39
Tests imbriqués: exemple (version 2)
Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors Ecrire ("Ce nombre est négatif")
Finsi
Si (n = 0) alors Ecrire ("Ce nombre est nul")
Finsi
Si (n > 0) alors Ecrire ("Ce nombre est positif")
Finsi
Fin
Remarque : dans la version 2 on fait trois tests systématiquement
alors que dans la version 1, si le nombre est négatif on ne fait qu'un
seul test
Conseil : utiliser les tests imbriqués pour limiter le nombre de tests
et placer d'abord les conditions les plus probables
40
Tests imbriqués: exercice
Le prix de photocopies dans une reprographie varie selon
le nombre demandé: 0,5 N-UM la copie pour un nombre de
copies inférieur à 10, 0,4 N-UM pour un nombre compris
entre 10 et 20 et 0,3 N-UM au-delà.

Ecrivez un algorithme qui demande à l’utilisateur le


nombre de photocopies effectuées, qui calcule et affiche le
prix à payer

41
Tests imbriqués: corrigé de l'exercice
Variables copies : entier
prix : réel
Début
Ecrire ("Nombre de photocopies : ")
Lire (copies)
Si (copies < 10) Alors
prix ← copies*0.5
Sinon
Si (copies) < 20
prix ← copies*0.4
Sinon
prix ← copies*0.3
Finsi
Finsi
Ecrire (“Le prix à payer est : ”, prix)
Fin

42
Instructions itératives: les boucles
 Les boucles servent à répéter l'exécution d'un groupe
d'instructions un certain nombre de fois
 On distingue trois sortes de boucles en langages de
programmation :
 Les boucles tant que : on y répète des instructions tant qu'une
certaine condition est réalisée
 Les boucles jusqu'à : on y répète des instructions jusqu'à ce
qu'une certaine condition soit réalisée
 Les boucles pour : on y répète des instructions en faisant
évoluer un compteur (variable particulière) entre une valeur
initiale et une valeur finale

43
Les boucles Tant que
TantQue (condition)
instructions Vrai
condition instructions
FinTantQue
Faux

 la condition (dite condition de contrôle de la boucle) est évaluée


avant chaque itération
 si la condition est vraie, on exécute instructions (corps de la boucle),
puis, on retourne tester la condition. Si elle est encore vraie, on
répète l'exécution, …
 si la condition est fausse, on sort de la boucle et on exécute
l'instruction qui est après FinTantQue

44
Les boucles Tant que : remarques
 Le nombre d'itérations dans une boucle TantQue n'est pas
connu au moment d'entrée dans la boucle. Il dépend de
l'évolution de la valeur de condition
 Une des instructions du corps de la boucle doit absolument
changer la valeur de condition de vrai à faux (après un
certain nombre d'itérations), sinon le programme tourne
indéfiniment

Attention aux boucles infinies
 Exemple de boucle infinie :
i←2
TantQue (i > 0)
i ← i+1 (attention aux erreurs de frappe : + au lieu de -)
FinTantQue
45
Boucle Tant que : exemple1
Contrôle de saisie d'une lettre majuscule jusqu’à ce que le
caractère entré soit valable

Variable C : caractère
Debut
Ecrire (" Entrez une lettre majuscule ")
Lire (C)
TantQue (C < 'A' ou C > 'Z')
Ecrire ("Saisie erronée. Recommencez")
Lire (C)
FinTantQue
Ecrire ("Saisie valable")
Fin

46
Boucle Tant que : exemple2
Un algorithme qui détermine le premier nombre entier N tel
que la somme de 1 à N dépasse strictement 100

Variables som, i : entier


Debut
i←0
som← 0
TantQue (som <=100)
i ← i+1
som ← som+i
FinTantQue
Ecrire (" La valeur cherchée est N= ", i)
Fin

47
Les boucles Pour
Pour compteur allant de initiale à finale par pas valeur
du pas
instructions
FinPour
i ←initiale

Vrai
i n'a pas atteint finale
instructions i ← i + pas

Faux

48
Les boucles Pour
 Remarque : le nombre d'itérations dans une boucle Pour est
connu avant le début de la boucle

 Compteur est une variable de type entier (ou caractère).


Elle doit être déclarée

 Pas est un entier qui peut être positif ou négatif. Pas peut
ne pas être mentionné, car par défaut sa valeur est égal à 1.
Dans ce cas, le nombre d'itérations est égal à finale -
initiale+ 1

 Initiale et finale peuvent être des valeurs, des variables


définies avant le début de la boucle ou des expressions de
même type que compteur
49
Déroulement des boucles Pour
1) La valeur initiale est affectée à la variable compteur
2) On compare la valeur du compteur et la valeur de finale :
a) Si la valeur du compteur est > à la valeur finale dans le cas
d'un pas positif (ou si compteur est < à finale pour un pas
négatif), on sort de la boucle et on continue avec l'instruction
qui suit FinPour

b) Si compteur est <= à finale dans le cas d'un pas positif (ou si
compteur est >= à finale pour un pas négatif), instructions
seront exécutées

i. Ensuite, la valeur de compteur est incrémentée de la


valeur du pas si pas est positif (ou décrémenté si pas est
négatif)

ii. On recommence l'étape 2 : La comparaison entre


compteur et finale est de nouveau effectuée, et ainsi de 50
Boucle Pour : exemple1
Calcul de x à la puissance n où x est un réel non nul et
n un entier positif ou nul
Variables x, puiss : réel
n, i : entier
Debut
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)

puiss ← 1
Pour i allant de 1 à n
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin

51
Boucle Pour : exemple1 (version 2)
Calcul de x à la puissance n où x est un réel non nul et n un
entier positif ou nul (version 2 avec un pas négatif)
Variables x, puiss : réel
n, i : entier
Debut
Ecrire (" Entrez respectivement les valeurs de x et n
")
Lire (x, n)
puiss ← 1
Pour i allant de n à 1 par pas -1
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
52
Boucle Pour : remarque
 Il faut éviter de modifier la valeur du compteur (et de
finale) à l'intérieur de la boucle. En effet, une telle
action :
 perturbe le nombre d'itérations prévu par la boucle Pour
 rend difficile la lecture de l'algorithme
 présente le risque d'aboutir à une boucle infinie

Exemple : Pour i allant de 1 à 5


i  i -1
écrire(" i = ", i)
Finpour

53
Lien entre Pour et TantQue
La boucle Pour est un cas particulier de Tant Que (cas où le nombre
d'itérations est connu et fixé) . Tout ce qu'on peut écrire avec Pour
peut être remplacé avec TantQue (la réciproque est fausse)

Pour compteur allant de initiale à finale par pas valeur


du pas
instructions
FinPour
peut être remplacé par : compteur ← initiale
(cas d'un pas positif) TantQue compteur <=
finale
instructions
compteur ←
compteur+pas
54
FinTantQue
Lien entre Pour et TantQue: exemple
Calcul de x à la puissance n où x est un réel non nul et n un entier
positif ou nul (version avec TantQue)
Variables x, puiss : réel
n, i : entier
Debut
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)

puiss ← 1
i←1
TantQue (i<=n)
puiss← puiss*x
i ← i+1
FinTantQue
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin

55
Boucles imbriquées
 Les instructions d'une boucle peuvent être des instructions
itératives. Dans ce cas, on aboutit à des boucles
imbriquées

 Exemple: Exécution
Pour i allant de 1 à 5 OX
Pour j allant de 1 à i OOX
écrire("O") OOOX
FinPour OOOOX
écrire("X") OOOOOX
FinPour

56
Les boucles Répéter … jusqu’à …
Répéter
instructions instructions

Jusqu'à condition
Faux
condition

Vrai
 Condition est évaluée après chaque itération

 les instructions entre Répéter et jusqu’à sont exécutées au moins


une fois et leur exécution est répétée jusqu’à ce que condition soit
vrai (tant qu'elle est fausse)

57
Boucle Répéter jusqu’à : exemple
Un algorithme qui détermine le premier nombre entier N tel que la
somme de 1 à N dépasse strictement 100 (version avec répéter
jusqu'à)

Variables som, i : entier


Debut
som ← 0
i←0
Répéter
i ← i+1
som ← som+i
Jusqu'à ( som > 100)
Ecrire (" La valeur cherchée est N= ", i)
Fin

58
Choix d'un type de boucle
 Si on peut déterminer le nombre d'itérations avant
l'exécution de la boucle, il est plus naturel d'utiliser la
boucle Pour

 S'il n'est pas possible de connaître le nombre d'itérations


avant l'exécution de la boucle, on fera appel à l'une des
boucles TantQue ou répéter jusqu'à

 Pour le choix entre TantQue et jusqu'à :

 Si on doit tester la condition de contrôle avant de commencer


les instructions de la boucle, on utilisera TantQue

 Si la valeur de la condition de contrôle dépend d'une première


exécution des instructions de la boucle, on utilisera répéter
jusqu'à
59
ALGORITHMIQUE
Les tableaux
Exemple introductif
 Supposons qu'on veut conserver les notes d'une classe de 30
étudiants pour extraire quelques informations. Par exemple : calcul
du nombre d'étudiants ayant une note supérieure à 10
 Le seul moyen dont nous disposons actuellement consiste à
déclarer 30 variables, par exemple N1, …, N30. Après 30
instructions lire, on doit écrire 30 instructions Si pour faire le
calcul
nbre ← 0
Si (N1 >10) alors nbre ←nbre+1 FinSi
….
Si (N30>10) alors nbre ←nbre+1 FinSi
c'est lourd à écrire
 Heureusement, les langages de programmation offrent la
possibilité de rassembler toutes ces variables dans une seule
structure de donnée appelée tableau
61
Tableaux
 Un tableau est un ensemble d'éléments de même type désignés
par un identificateur unique
 Une variable entière nommée indice permet d'indiquer la
position d'un élément donné au sein du tableau et de déterminer
sa valeur
 La déclaration d'un tableau s'effectue en précisant le type de
ses éléments et sa dimension (le nombre de ses éléments)
 En pseudo code :

variable tableau identificateur[dimension] : type


 Exemple :

variable tableau notes[30] : réel


 On peut définir des tableaux de tous types : tableaux d'entiers, de
réels, de caractères, de booléens, de chaînes de caractères, …

62
Tableaux : remarques
 L'accès à un élément du tableau se fait au moyen de l'indice. Par
exemple, notes[i] donne la valeur de l'élément i du tableau notes
 Selon les langages, le premier indice du tableau est soit 0, soit 1.
Le plus souvent c'est 0 (c'est ce qu'on va adopter en pseudo-code).
Dans ce cas, notes[i] désigne l'élément i+1 du tableau notes
 Il est possible de déclarer un tableau sans préciser au départ sa
dimension. Cette précision est faite ultérieurement .

 Par exemple, quand on déclare un tableau comme paramètre d'une


procédure, on peut ne préciser sa dimension qu'au moment de l'appel
 En tous cas, un tableau est inutilisable tant qu’on n’a pas précisé le
nombre de ses éléments

 Un grand avantage des tableaux est qu'on peut traiter les données
qui y sont stockées de façon simple en utilisant des boucles

63
Tableaux : exemples (1)
 Pour le calcul du nombre d'étudiants ayant une note
supérieure à 10 avec les tableaux, on peut écrire :

Variables i ,nbre : entier


tableau notes[30] : réel
Début
nbre ← 0
Pour i allant de 0 à 29
Si (notes[i] >10) alors
nbre ←nbre+1
FinSi
FinPour
écrire ("le nombre de notes supérieures à 10 est : ", nbre)
Fin

64
Tableaux : saisie et affichage
Algorithme Tableaux_saisie_et_affichage
variable n,i : entier

Début
Ecrire(« Donner la taille de tableau»)
Lire(n)
tableau A[n] : réel

Pour i allant de 0 à n-1


écrire ("Saisie de l'élément ", i + 1)
lire (A[i] )
FinPour

Pour i allant de 0 à n-1


écrire (A[",i, "] =", A[i])
FinPour

*
Fin

65

Vous aimerez peut-être aussi