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