Académique Documents
Professionnel Documents
Culture Documents
1. Introduction :
1.1. Problématique :
Imaginons que nous voulions connaitre le nombre des étudiants ayant une
note supérieure à 12 pour une classe de 160 étudiants, d’après ce que nous avons
déjà étudiés, la seule solution consiste à déclarer 160 variables, appelées par
exemple: Note1, Note2, …, Note160 dans lesquelles les notes seront stockées.
La saisie de ces notes nécessite 160 instructions d’écriture et 160 instructions de
lecture comme suit :
Ecrire (‘’Entrer la note N°1’’)
Lire(Note1)
Ecrire (‘’Entrer la note N°2’’)
Lire(Note2)
…
…
Ecrire (‘’Entrer la note N°160’’)
Lire(Note160)
Figure 39 : 160 instructions d’écritures et de lectures.
En plus le calcul du nombre des notes supérieures à 12 se fait par une suite
de blocs de tests de 160 structures conditionnelles comme suit :
nb ← 0
Si (Note1 >12) Alors
nb←nb+1
FinSi
…
Si (Note160>12) Alors
nb←nb+1
FinSi
Figure 40 : 160 instructions de test.
1.2. Solution :
Les langages de programmation nous offres la possibilité de rassembler
plusieurs variables de même type ("Note1", "Note2",..., "Note160" par exemple)
dans une seule structure de donnée appelée tableau qui facilite la manipulation de
ces variables.
1.3. Définition :
Un tableau est un ensemble de valeurs consécutives de même type désignées
par le même identificateur (nom de variable).
Il est considéré comme une structure de données simple.
2. Tableaux à une dimension :
2.1. Déclaration :
La déclaration d’un tableau se fait dans la partie déclaration des variables
comme suit :
nomTableau[Dimension]:Type
Figure 41 : Syntaxe de déclaration d’un tableau.
Nous affectons la valeur du 2ème élément du tableau qui est 13,50 selon le
tableau précédent à la variable N.
Note[158] ←14
Figure 44 : affectation d’une valeur à un élément d’un tableau.
Nous modifions la valeur du 159ème élément du tableau qui est 12,75 selon le
tableau précédent par une nouvelle valeur qui est 14.
NB :
Les boucles sont le moyen le plus simple pour parcourir et traiter les
éléments d’un tableau.
Boucle de Lecture :
…
Pour i ← 0 a 159
Ecrire (‘’Saisir la note N°: ’’, i+1)
Lire (Note[i])
Fin Pour
…
Boucle d’affichage :
…
Pour i ← 0 a 159
Ecrire (‘’La note N°’’,i+1,’’:= ’’, Note[i])
Fin Pour
…
Figure 46 : Affichage d’un tableau.
Application :
Écrire un algorithme qui remplit un tableau de 160 emplacements par des notes
des étudiants entrées par l’utilisateur et affiche le contenu de ce tableau, puis calcule et
affiche le nombre des étudiants ayant une note > 12.
Solution :
Algorithme Notes
VARIABLES
Note[160] : Réel
i, Nb: Entier
Début
Pour i ← 0 a 159
Lire(Note[i])
Fin Pour
Pour i ← 0 a 159
Fin Pour
Nb ← 0
Pour i ← 0 a 159
Si(Note[i]>12) Alors
Nb++
Fin Si
Fin Pour
Fin
Figure 47 : Algorithme notes des étudiants.
Algorithme ExempleTableauRedim
Variables
Note[ ]: Réel
Nbr, i : Entier
Début
Écrire(‘’Saisir le nombre de notes:’’)
Lire(Nbr)
Redim Note[Nbr]
Pour i ← 0 A Nbr-1
Ecrire (‘’Saisir la note N°: ’’, i+1)
Lire(Note[i])
Fin Pour
Fin
Figure 48 : Exemple d’application de l’instruction « Redim ».
nomTableau[NbrLignes] [NbrColonnes]:Type
Figure 49 : Syntaxe de déclaration d’un tableau à deux dimensions.
NbrLignes (entier positif) est le nombre maximal des lignes du tableau (la
matrice);
NbrColonnes (entier positif) est le nombre maximal des colonnes du tableau;
Deux variables entières nommées indices qui permettent d'indiquer la position
d'un élément donné au sein de la matrice pour déterminer sa valeur.
Pour vous clarifier la notion des tableaux à deux dimensions nous vous proposons un
exemple avec une représentation graphique (pour l’explication) illustré dans la figure ci-après:
Chaque élément du tableau est repéré par deux indices qui sont : le numéro de
la ligne et le numéro de la colonne, par exemple M[1][2] vaut 13.
Exemples :
N← M[0][1]
Figure 52 : affectation d’un élément d’un tableau à deux dimensions à une variable.
Nous affectons la valeur de l’élément qui porte l’indice [0][1] du tableau qui
est 13,50 à la variable N.
NB :
Les boucles sont le moyen le plus simple pour parcourir et traiter les
éléments d’un tableau à deux dimensions.
4. Algorithmes de recherche :
4.1. Introduction :
La recherche consiste à repérer (trouver) un élément au sein d’un tableau, dans
le cadre de ce cours nous étudierons les deux algorithmes de recherches suivants:
Recherche séquentielle;
Recherche dichotomique.
NB :
Nous vous demandons d’écrire un algorithme de recherche séquentielle lors
d’une séance de TD.
4.3. Recherche dichotomique :
La recherche dichotomique consiste à améliorer l’efficacité de la recherche
dans le cas où les éléments d’un tableau sont triés (au départ nous ne parcourons pas
le tableau du début jusqu'à la fin).
Le principe de fonctionnement cet algorithme consiste à découper le tableau
(diviser le nombre des éléments du tableau par 2) en deux moitiés puis rechercher la
valeur voulue dans une seule moitié.
NB :
Nous vous demandons d’écrire un algorithme de recherche dichotomique lors
d’une séance de TD.
5. Algorithmes de tri :
5.1. Introduction :
Le tri consiste à ordonner les éléments d’un tableau dans l’ordre croissant ou
décroissant afin de rendre plus efficace le traitement du tableau (Recherche,
insertion…).
Pour effectuer un tri nous utilisons les deux opérations de base suivantes :
Comparaison: qui consiste à comparer les valeurs de deux éléments
d’un tableau afin d’identifier la plus grande ou la plus petite;
Echange: qui consiste à permuter (échanger) les valeurs de deux
éléments d’un tableau.
Dans le cadre de ce cours nous étudierons les algorithmes de tri suivants:
Tri par Sélection ;
Tri par Insertion ;
Tri à Bulles.
5.2. Tri par Sélection:
L'objectif de ce type de tri est de mettre chaque valeur du tableau dans sa
position définitive.
Pour effectuer un tri par sélection nous vous proposons les étapes suivantes :
Nous cherchons à partir du 1er élément du tableau, la plus petite valeur
pour l'échanger avec le 1er élément;
Nous reprenons à partir du 2ème élément, en cherchant la plus petite
valeur pour l'échanger avec le 2ème;
Puis nous reprenons à partir du 3ème élément, en cherchant la plus petite
valeur pour l'échanger avec le 3ème;
Nous répétons le même traitement jusqu’à arriver au dernier élément du
tableau.
NB :
Nous vous demandons d’écrire un algorithme de tri par sélection lors d’une
séance de TD.
5.3. Tri par Insertion:
Ce type de tri est utilisé naturellement par les joueurs des cartes, à chaque
distribution, le joueur insère la nouvelle carte dans la bonne position par rapport
aux cartes qui sont entre ses mains.
Pour effectuer un tri par insertion nous vous proposons les étapes suivantes :
Nous considérons le sous tableau former d’un seul élément ayant
l’indice 0 est trié, et le sous tableau former des éléments ayant les
indices de 1 à dim-1 est non trié ;
Nous prenons le 1er élément du sous tableau non trié (indice 1) puis
nous cherchons à l’insérer dans la bonne position dans le sous
tableau trié (le nombre des éléments triés s’augmente et celui des
éléments non triés se diminue);
Puis nous prenons le 1er élément du sous tableau non trié (indice 2) et
nous cherchons à l’insérer dans la bonne position dans le sous
tableau trié (toujours le nombre des éléments triés s’augmente et celui
des éléments non triés se diminue);
Nous appliquons le même traitement aux autres éléments jusqu’à
placer le dernier élément du tableau dans sa bonne position, dans ce
cas (placement du dernier élément) le tableau sera trié.
NB :
Nous vous demandons d’écrire un algorithme de tri par insertion lors d’une
séance de TD.
5.4. Tri à Bulles:
L'objectif de ce type de tri est de déplacer les petits éléments vers la gauche et les
grands éléments vers la droite, jusqu’à ce que chaque élément du tableau soit plus
petit que celui qui le suit.
Pour effectuer un tri à bulles nous vous proposons les étapes suivantes :
Nous parcourons le tableau à partir du 1er élément, en comparant
chaque élément avec l'élément qui le suit;
Si deux éléments du tableau ne sont pas triés alors nous échangeons
leurs valeurs et nous continuons le parcours du tableau jusqu’au dernier
élément;
1er parcours :
La figure ci-après décrit les étapes de tri à bulles, dans cette exemple nous
parcourons (1er parcours) tous les éléments du tableau :
2ème parcours :
Lors du 1er parcours nous avons des permutations effectuées, alors il faut
reprendre les étapes de tri à bulles pour un 2ème parcours en commençant à partir du 1er
élément.
La figure ci-après décrit les étapes de tri à bulles, dans cette exemple nous
parcourons (2ème parcours) tous les éléments du tableau :
3ème parcours :
Lors du 2ème parcours nous avons une permutation effectuée, alors il faut
reprendre les étapes de tri à bulles pour un 3ème parcours en commençant toujours à
partir du 1er élément.
La figure ci-après décrit les étapes de tri à bulles, dans cette exemple nous
parcourons (3ème parcours) tous les éléments du tableau :
Lors du 3ème parcours, aucune permutation effectuée, alors le tableau est trié.
NB :
Nous vous demandons d’écrire un algorithme de tri à bulles lors d’une séance
de TD.