Beruflich Dokumente
Kultur Dokumente
5. Les tableaux
Sommaire
I. Rappel
Algorithme informatique
temps fini
Pseudo-code algorithmique
ALGORITHME nom_de_l’algorithme
<partie des déclarations>
DEBUT
<partie des instructions>
//commentaire
FIN
Déclaration (mémoire)
Affectation (calcul)
Lecture (entrées)
Écriture (sorties)
6 Algorithmique ESI 2020-2021
Rappel
Un programme n’est pas purement séquentiel
nécessité d’avoir des structures de contrôle
1. Les tests
2. Les boucles
SI … ALORS …
SI condition ALORS
séquence
FINSI
SI … ALORS … SINON …
SI condition ALORS
séquence1
SINON
séquence2
FINSI
SI condition1 ALORS
séquence1
SINONSI condition2 ALORS
séquence2
SINON
séquence3
FINSI
TANTQUE … FAIRE
POUR
RÉPÉTER … JUSQU’À
ALGORITHME boucle_saisie_nb
VAR n : réel
DEBUT
Afficher("Saisir un nombre compris entre 0 et 10")
Lire(n)
TANTQUE n < 0 OU n > 10 FAIRE
Afficher("Saisir un nombre compris entre 0 et 10")
Lire(n)
FINTANTQUE
Afficher("Saisie terminée. Merci. ")
FIN
ALGORITHME boucle_décrémentation
VAR n : réel
DEBUT
Afficher("Saisir un nombre")
Lire(n)
TANTQUE n <> 0 FAIRE
nn−1
Afficher(n)
FINTANTQUE
FIN
ALGORITHME boucle_dix_nb_suivants
VAR n, max : réel
DEBUT
Afficher("Saisir un nombre")
Lire(n)
max n + 10
Afficher("Les dix nombres suivants sont :")
TANTQUE n <= max FAIRE
nn+1
Afficher(n)
FINTANTQUE
FIN
ALGORITHME exemple_boucle_pour
VAR n,i : entier
DEBUT
Lire(n)
POUR i 1 à 11 pas 1
nn+1
Afficher(n)
i SUIVANT
FIN
ALGORITHME boucle_dix_nb_suivants
VAR n, i : entier
DEBUT
Afficher("Saisir un nombre")
Lire(n)
Afficher("Les dix nombres suivants sont :")
POUR i 1 à 11 pas 1
nn+1
Afficher(n)
i SUIVANT
FIN
ALGORITHME boucle_dix_nb_suivants
VAR n, i : entier
DEBUT
Afficher("Saisir un nombre")
Lire(n)
Afficher("Les dix nombres suivants sont :")
POUR i 1 à 11 pas 1
Afficher(n + i)
i SUIVANT
FIN
ALGORITHME boucle_table_neuf
VAR i: entier
DEBUT
POUR i 1 à 11
Afficher("9 *" , i , " = " , 9*i)
i SUIVANT
FIN
ALGORITHME exemple_boucle_répéter
VAR n, i : entier
DEBUT
n0
RÉPÉTER
nn+1
JUSQU’À n=10
FIN
Désigné par
Son nom
N : taille du tableau
Premier indice : 0
Dernier indice : N – 1
Exemple :
VAR nombres[5] : entier
VAR lettres[26] : caractère
VAR mots[100] : chaîne
VAR absents[107] : booléen
Exemple :
nombres[0]
nombres[1]
nombres[2]
nombres[3]
nombres[4]
54 Algorithmique ESI 2020-2021
Utilisation de tableaux statiques
Pour affecter une valeur à une case du tableau, on
utilise son nom avec, entre parenthèses, l’indice
concerné puis le signe d’affectation et la valeur
Exemple :
nombres[0] 5
nombres[1] 60
nombres[2] 10
nombres[3] 0
nombres[4] 90
55 Algorithmique ESI 2020-2021
Utilisation de tableaux statiques
nombres[0] 5
nombres[1] 60
nombres[2] 10
nombres[3] 0
nombres[4] 90
0 1 2 3 4
5 60 10 0 90
Exemple
nombres[0]
nombres[i]
nombres[2*i+5]
ALGORITHME exemple_tableau
VAR tableau[10] , i : entier
DEBUT
POUR i 0 à 10
tableau[i] i
i SUIVANT
POUR i 0 à 10
Afficher(tableau[i])
i SUIVANT
FIN
ALGORITHME moyenne
VAR nombres[20] : réel
DEBUT
somme 0
POUR i 0 à 20
Afficher("Saisir le nombre numéro ", i+1)
Lire(notes[i])
i SUIVANT
POUR i 0 à 20
Afficher("Le ", i, "ème nombre est : ", nombres[i])
i SUIVANT
FIN
ALGORITHME moyenne
VAR nombres[20] : réel
DEBUT
somme 0
POUR i 0 à 20
Afficher("Saisir le nombre numéro ", i+1)
Lire(notes[i])
i SUIVANT
POUR i 20 à 0 pas – 1
Afficher("Le ", i, "ème nombre est : ", nombres[i – 1])
i SUIVANT
FIN
Tableau dynamique
Exemple :
VAR nombres[ ] : entier
VAR lettres[ ] : caractère
VAR mots[ ] : chaîne
VAR absents[ ] : booléen
Exercice
VAR nombres[ ], min, max : réel
VAR n, nbPositifs : entier
DEBUT
nbPositifs 0
Afficher("Combien de nombre voulez-vous saisir ?")
Lire(n)
Redim nombres[n]
POUR i 0 à n
Afficher("Saisir le nombre numéro ", i)
Lire(nombres[i])
SI i = 0 ALORS
min nombres[i]
max nombres[i]
SINONSI nombres[i] < min ALORS
min nombres[i]
SINONSI nombres[i] > max ALORS
max nombres[i]
FINSI
SI nombres[i] >= 0 ALORS
nbPositifs nbPositifs + 1
FINSI
i SUIVANT
Afficher("Min = ", min, "Max = ", max, "Nb + = ", nbPositifs, "Nb − ", n − nbPositifs)
FIN
81 Algorithmique ESI 2020-2021
Exercice
Écrire un algorithme qui demande à l’utilisateur de
remplir deux tableaux (de même taille) puis qui
affiche le tableau contenant le produit des éléments
des deux
Tableau 2 5 60 10 0 90
Désigné par
Son nom
Sa taille n x m
Peut être assimilé à une matrice de n lignes et m colonnes
85 Algorithmique ESI 2020-2021
Déclaration de tableaux à 2 dimensions
Syntaxe
Exemple :
VAR nombres[5][5] : entier
VAR lettres[26][2] : caractère
VAR mots[1][10] : chaîne
VAR absents[107][30] : booléen
ALGORITHME tableau_2d
VAR notes[20][2] : réel
DEBUT
POUR i 0 à 20
Afficher("Saisir la 1ère note de l’étudiant N° ", i+ 1)
Lire(notes[i][0])
Afficher("Saisir la 2e note de l’étudiant N° ", i+ 1)
Lire(notes[i][1])
i SUIVANT
FIN
ALGORITHME tab_bool
VAR tab[5][10] : booléen
DEBUT
POUR i 0 à 5
POUR j 0 à 10
tab[i][j] = VRAI
j SUIVANT
i SUIVANT
FIN
a x d e
b d x f
c e f x
Tri à bulles
…
99 Algorithmique ESI 2020-2021
Tri par sélection
Approche intuitive
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 10 15 5
1 2 5 15 10
1 2 10 15 5
1 2 10 15 5
1 2 5 15 10
1 2 10 15 5
1 2 10 15 5
1 2 5 15 10
1 2 10 15 5
1 2 10 15 5
1 2 5 15 10
1 2 5 10 15
À la sortie de la boucle
faire
Parcourir le tableau
5. Les tableaux