Académique Documents
Professionnel Documents
Culture Documents
Algorithmique 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
114 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 115
• Le type des éléments (entier, réel, caractère, booléens chaine de Selon les langages, le premier indice du tableau est soit 0, soit 1. Le plus
caractères). souvent c'est 0 (Langage C), dans ce cas, Tnotes[i] désigne l'élément i+1 du
tableau notes.
variable identificateur tableau [1..dimension] de type En Algorithmique le premier indice du tableau est 1.
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 116 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 117
Tableaux : exemples (1)
Pour le calcul du nombre d'étudiants ayant une note supérieure à
Tableaux : remplissage d’un tableau
10 avec les tableaux, on peut écrire :
Algorithme Note_sup_Tableau Un tableau peut être rempli élément par élément à l’aide d’une série
Variables i , nbre : entier d’affectation:
Tnotes : tableau [1..30] de réel
Début T[1] valeur 1
Pour i de 1 à 30 faire T[2] valeur 2
Ecrire ("donner une note ") ………..
Lire (Tnotes [ i ] ) T[n] valeur n
FinPour
Il est également possible de lire les éléments du tableau à partir du clavier à
nbre ← 0
l’aide de l’instruction Lire(T[i]).
Pour i de 1 à 30 faire
Si (Tnotes [ i ] >=10) alors Exercice: écrire une procédure de remplissage d’un tableau T à partir du
nbre ← nbre + 1 clavier
FinSi
FinPour
écrire ("le nombre de notes supérieures à 10 est : ", nbre)
Fin
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 118 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 119
Tableaux : remplissage d’un tableau Tableaux : affichage des éléments d’un tableau
L’affichage des éléments d’un tableau peut être affiché élément par élément à
Procédure SaisieTab (n : entier, var T: tableau [1..50] de réel ) l’aide d’une série d’affichage:
variable i: entier
écrire (T[1])
début écrire (T[2])
Pour i de de 1 à n faire ………..
écrire ("Saisie de l'élément ", i) écrire (T[n])
lire (T[i] )
Exercice: écrire une procédure d’affichage d’un tableau T.
FinPour
Procédure AfficheTab (n : entier, T: tableau [1..50] de réel )
Fin Procédure
variable i: entier
début
Pour i de 1 à n faire
écrire (T[i])
FinPour
Fin Procédure
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 120 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 121
Tableaux : exemples d'appel Tableaux : exercice
Algorithme principale où on fait l'appel des procédures SaisieTab et Soit T un tableau contenant n éléments de type entier. Ecrire une fonction
AfficheTab : MinTab qui affiche le plus petit élément de ce tableau.
Fonction MinTab( n : entier, T: tableau [1..50] d’entier):entier
Algorithme Tableaux variable i: entier
variable p : entier m: entier
A: tableau [1..10] : réel début
m T[1] Principe : on suppose que le
Début premier élément est le plus petit
Pour i de 2 à n faire
écrire ("donner le nombre des étudiants" ) si (T[i]<m) alors élément du tableau, ensuite on
lire(p) m T[i] cherche parmi les suivants s’il
SaisieTab(p, A) y a une valeur plus petite on
FinSi
la sauvegarde
AfficheTab(p,A) FinPour
Fin Retourner(m)
Fin Fonction
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 122 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 123
M[2,3]
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 124 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 125
Tableaux à deux dimensions Exemples : lecture d'une matrice
On peut déclarer des tableaux dans lesquels les valeurs sont Procédure qui permet de saisir les éléments d'une matrice :
repérées par deux indices. Ceci est utile par exemple pour Procédure SaisieMatrice(L, C: entier; var A:tableau[1..50,1..50] : réel )
représenter des matrices. variables i,j : entier
Début
En algorithmique, un tableau à deux dimensions se déclare ainsi : Pour i de 1 à L faire
variable identificateur :tableau [1..dimension1, 1..dimension2] de type écrire ("saisie de la ligne ", i )
Pour j de 1 à C faire
• Exemple : une matrice A de 3 lignes et 4 colonnes dont les éléments sont écrire ("Entrez l'élément de la ligne ", i , " et de la colonne ", j)
réels lire (A[i,j])
variable A: tableau [1..3, 1..4] de réel FinPour
FinPour
A[i,j] permet d'accéder à l’élément de la matrice qui se trouve à Fin Procédure
l’intersection de la ligne i et de la colonne j
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 126 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 127
Procédure AfficheMatrice (L, C: entier; A:tableau[1..50,1..50] : réel ) Procédure SommeMatrices(L,C : entier, A,B: tableau [1..50,1..50] de reel;
variables i,j : entier var C: tableau [1..50,1..50] de réel )
variables i,j : entier
Début
Début
Pour i de 1 à L
Pour j de 1 à C Pour i de 1 à L faire
Pour j de 1 à C faire
écrire (A[i,j])
C[i,j] ← A[i,j]+B[i,j]
FinPour
FinPour
FinPour
FinPour
Fin Procédure
Fin Procédure
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 128 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 129
Tableaux : trouver et corriger
Appel des procédures définies sur les matrices l’erreur
Exemple d'algorithme principale où on fait l'appel des procédures définies
précédemment pour la saisie, l'affichage et la somme des matrices : Algorithme 1 Algorithme 2
Essai de tableau 1 Essai de tableau 2
Algorithme Matrices Variables Variables
variables M1,M2,M3 : tableau[1..10,1..10] de réel i : entier i, aux : entiers
Début Tab : tableau[1..10] d’entiers Tab : tableau[1..10] d’entiers
Début Début
SaisieMatrice(3, 4, M1)
tant que (i <= 10) faire pour i de 1 à 10 faire
SaisieMatrice(3, 4, M2) lire (tab[i]) Si Tab[i+1] < Tab[i] alors
AfficheMatrice(3,4, M1) i ← i+1 aux Tab[i]
AfficheMatrice(3,4, M2) Fin de tant que Tab[i] Tab[i+1]
Fin Tab[i+1] aux
SommeMatrice(3, 4, M1,M2,M3)
Fin Si
AfficheMatrice(3,4, M3) Fin de pour
Fin Fin
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 130 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 131
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 132 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 133
Tableaux : Accéder à une chaîne et à ses
Tableaux : déclaration d’une Chaine éléments
Une chaîne de caractères est un tableau de type caractère. Une chaîne de caractères est une variable comme une autre
La déclaration est identique à un tableau normal: pour un programme: on y accède en l’appelant par son nom
de variable.
<nom_chaine> : Tableau [<dimension>] de caractère
Une chaîne est un tableau de caractères: pour accéder a ses
La représentation interne d'une chaîne de caractères est éléments on suit la logique d’un tableau.
terminée par le symbole '\0' (NULL). Ainsi, pour un texte de
n caractères, on doit prévoir n+1 octets. Exemple:
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 134 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 135
On peut convertir des lettres majuscules en des lettres on peut accéder à ces mots en utilisant la syntaxe suivante:
minuscules: Ecrire(“Aujourd’hui c’est ”,JOUR[3]);
Si (C>='A' && C<='Z') alors C = C+('a‘-'A‘); qui affichera “Aujourd’hui c’est mercredi”.
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 138 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 139
2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 140 2022/2023 Algorithmique et structures de données ISIMA-1LBC. Enseignant : Soufien GDAIM 141
Exercices : Tableaux
Exercice 3
Ecrire une fonction SuiteArithm à valeur booléenne, qui permet de
déterminer si un tableau d’entiers représente une suite arithmétique, en
arrêtant le parcours dès que la réponse est trouvée.
Un tableau d'entiers représente une suite arithmétique si chaque case de ce
tableau (sauf la première) est égale à la précédente plus une certaine valeur,
cette valeur restant constante pour tout le tableau.