Académique Documents
Professionnel Documents
Culture Documents
de données
Compétence : A l’aide des notions et des acquis qu’il aura reçu, l’apprenant sera capable de
mobiliser des ressources numériques pour écrire et exécuter un algorithme à la main.
Introduction
Les opérations élémentaires relatives à la résolution d‘un problème, peuvent
en fonction de leur enchainement, être organisées suivant une famille de structures
algorithmiques fondamentales. nous pouvons citer :
La structure séquentielle ;
La structure alternative ou de choix ;
La structure itérative ou répétitive.
Exemple : Ecrire qui vérifie et informe en fonction de l’âge de saisi si on peut déjà voter ou pas.
Algorithme electeur
Variables age : Entier ;
Début
Ecrire(‘’Entrez votre age’’) ;
Lire(age) ;
Si (age>=20) alors
Ecrire(‘’Vous pouvez être électeur’’) ;
Sinon
Ecrire(‘’Vous ne pouvez pas être électeur’’) ;
FinSi
Fin
Solution 2 :
Pour i allant de 0 à 20 faire
Si (i%2=0) alors
Ecrire(i) ;
FinSi
FinPour
Exercice : On souhaite calculer la somme des nombres pairs compris entre 1 et 100. Utilisez les
structures itératives pour écrire l’algorithme qui résout ce problème.
TANT QUE…FAIRE Pour
Algorithme Somme_nombre Algorithme Somme_nombre
Variable i, S : Entier ; Variable i, S : Entier ;
Début Début
S ← 0 ; S ← 0 ;
i ← 1 ; Pour i allant de 1 à 100
TantQue (i<=100) faire faire
Si (i%2=0) alors Si (i%2=0) alors
S ← S+i ; S ← S+i ;
FinSi FinSi
i ← i+1 ; FinPour
FinTantQue Ecrire(‘’La somme calculée
Ecrire(‘’La somme calculée est : ’’ S) ;
est : ’’ S) ; Fin
Fin
1) Tableaux
Un tableau est une structure de données représentant une séquence finie d'éléments de
même nature auxquels on peut accéder efficacement par leur position, ou indice, dans la
séquence.
C'est un type de conteneur que l'on retrouve dans un grand nombre de langages de
programmation.
Un tableau ressemble à ceci :
2) Enregistrement
Contrairement aux tableaux qui sont des structures de données dont tous les éléments
sont de même type, les enregistrements sont des structures de données dont les éléments
peuvent être de différents types et qui se rapportent à la même entité sémantique. Les éléments
qui composent un enregistrement sont appelés champs. Avant de déclarer une variable
enregistrement, il faut avoir au préalable définit son type, c’est à dire le nom et le type des
champs qui le composent. Le type d’un enregistrement est appelé type structuré. (Les
enregistrements sont parfois appelé structures, en analogie avec le langage C).
Syntaxe :
NomEnregistrement = Enregistrement
NomChamp1 : TypeChamp1
NomChamp2 : TypeChamp2
...
NomChampn : TypeChampn
Fin Enreg
Exemples
3) Pile
Une pile (en anglais stack) est une structure de données permettant des insertions ou des
suppressions qu’a une seule extrémité, appelée sommet de la pile.
Elle est fondée sur le principe « dernier arrivé, premier sorti » (en anglais LIFO pour last
in, first out), ce qui veut dire, qu'en général, le dernier élément, ajouté à la pile, sera le premier à
en sortir.
Quand on vous dit pile penser directement à une boite d’Efferalgan.
Empiler un objet sur une pile P consiste à insérer cet objet au sommet de P (dans la pile
d’assiettes une nouvelle assiette ne peut être ajoutée qu’au-dessus de celle qui se trouve au
sommet).
Dépiler un objet de P consiste à supprimer de P l'objet placé au sommet (dans la pile
d’assiettes seule peut être retirée celle qui se trouve au sommet).
La manipulation d’une pile revient à l’appel de fonctions et procédures dites de bases
définies une seule fois et utilisées autant de fois qu’il est nécessaire. Ces sous-algorithmes sont :
- Init_Pile : permet d’initialiser une pile à vide lors de sa création ;
- Pile_vide : pour vérifier si une pile est vide ou non et savoir alors s’il reste des valeurs à
traiter ou non ;
- Pile_pleine : pour vérifier s’il est possible de rajouter ou non un nouvel élément (utilisée
dans le seul cas des piles statiques) ;
- Empiler : permet d’ajouter une nouvelle valeur (envoyé en paramètre par l’appelant) à la
pile (au-dessus du sommet et dans le cas d’une pile non pleine) ;
- Depiler : permet de supprimer une valeur (se trouvant au sommet de la pile) et de la
renvoyer en paramètre. Cette opération n’est possible que si la file n’est pas vide.
4) File
Une file dite aussi file d'attente (en anglais queue), est une structure de données basée sur le
principe du premier entré, premier sorti ou PEPS, (en anglais FIFO (« first in, first out ») ce qui
veut dire que les premiers éléments ajoutés à la file seront les premiers à en être retirés.
Quand on vous dit file penser directement à une file d’attente où chacun à son tour qu’il doit
respecter.
Enfiler un objet sur une file F consiste à insérer cet objet à la fin de la file F (dans la file
d’attente un nouvel arrivant se met à la queue c.-à-d., après la personne arrivée juste avant lui) ;
Défiler un objet de F consiste à supprimer de F l'objet placé en début de file (dans la file
d’attente seule peut être servie la personne qui se trouve en début de file). L'objet défilé est
retourné comme résultat du traitement. En informatique une file sert essentiellement à stocker
des données qui doivent être traitées selon leur ordre d’arrivée. L’exemple le plus connu est celui
de l’impression de documents reçus par une imprimante qui imprime le premier document
arrivé et termine par le dernier. Ce qui fait que les objets quittent la pile dans l'ordre de leur
ordre d'arrivée.
Comme pour les piles, la manipulation d’une file revient à l’appel de fonctions et procédures
dites de bases définies une seule fois et utilisées autant de fois qu’il est nécessaire. Ces sous-
algorithmes sont :
- Init_File : permet d’initialiser une file à vide lors de sa création ;
- File_vide : pour vérifier si une file est vide ou non et savoir alors s’il reste des valeurs à
traiter ou non ;
- File_pleine : pour vérifier s’il est possible de rajouter ou non un nouveau élément (utilisée
dans le seul cas des files statiques) ;
- Enfiler : permet d’ajouter une nouvelle valeur (envoyé en paramètre par l’appelant) à la
file (après le dernier élément de la file qui se trouve au niveau de sa queue et dans le cas d’une
file non pleine) ;
- Defiler : permet de supprimer une valeur (se trouvant au début de la file) et de la renvoyer
en paramètre. Cette opération n’est possible que si la file n’est pas vide.
5) Listes
Une liste est une structure de données permettant de regrouper des données de manière
à pouvoir y accéder librement (contrairement aux files et aux piles, dont l'accès se fait
respectivement en mode FIFO et LIFO).
Il n'existe pas de normalisation pour les primitives de manipulation de listes, leurs noms
respectifs sont donc indiqués de manière informelle.
Primitives de base :
« Insérer » : ajoute un élément dans la liste. Terme anglais correspondant : « Add » ;
« Retirer » : retire un élément de la liste. Terme anglais correspondant : « Remove » ;
« La liste est-elle vide ? » : renvoie « vrai » si la liste est vide, « faux » sinon. Terme
anglais correspondant : « IsNil » ;
« Nombre d'éléments dans la liste » : renvoie le nombre d'éléments dans la liste. Terme
anglais correspondant : « Length ».
Primitives auxiliaires fréquemment rencontrées :
« Premier » : retourne le premier élément dans la liste. Terme anglais correspondant : «
First » ;
« Dernier » : retourne le dernier élément dans la liste. Terme anglais correspondant : «
Last » ;
« Prochain » : retourne le prochain élément dans la liste. Terme anglais correspondant :
« Next » ;
« Précédent » : retourne l'élément qui précède dans la liste. Terme anglais correspondant
: « Previous » ;
« Cherche » : cherche si un élément précis est contenu dans la liste et retourne sa position.
Terme anglais correspondant : « Find ».
Algorithme Recherche_Max
Var T: tab[1..n]: entier;
max, i: entier;
Début
max ← T[1];
Pour i de 2 à n Faire
Si (T[i] > max) Alors
max ← T[i];
FinSi
FinPour
Ecrire("Le max est: ", max);
Fin
Exercice 2
Algorithme Ajout
Var
T : tableau [1..100] de réels ;
N : entiers ;
X : réel ;
Début
Ecrire(‘‘entrer la valeur de l’’élément à ajouter :’’)
;
Lire(X) ;
N<-- N+1 ; //il y aura un élément en plus
T[N] <-- X ;
Finsi
Fin
Exercice 3
Algorithme tableau_Notes
Var
N : tableau [1..30] de réels ;
i :entier;
Début
//saisit des valeurs par l'utilisateur
Pour i <-- 1 à 30 faire
Ecrire(‘entrer la note N° ’,i);
Lire(N[i]) ;
Fin pour fin
Exercice 4
Algorithme tableau_somme
Var
V : tableau [1..5] de réels ;
S : réel ;
i :entier;
Début
//lecture des éléments du tableau
Pour i <-- 1 à 5 faire
Ecrire(‘‘entrer l’élément N° ‘’,i);
Lire(V[i]) ;
Fin pour
//calcul de la somme des éléments du tableau
S <-- 0 ;
Pour i <-- 1 à 5 faire
S <-- S + V[i] ;
Fin pour
//afficher des éléments du tableau
Pour i <-- 1 à 5 faire
Ecrire(‘’l’’élément N° ‘’,i, ‘’est : ‘‘,V[i]);
Fin pour
Ecrire(‘la somme des éléments du tableau est
:‘,S) ;
fin
Exercice 5
Algorithme saisie_affichage
Var
T : tableau [1..100] de réels ;
N,i : réel ;
Début
Ecrire(‘entrer le nombre d’éléments du tableau :’) ;
Lire(N) ;
// lecture des éléments du tableau
Pour i <-- 1 à N faire
Ecrire(‘entrer l’élément N° ’,i);
Lire(T[i]) ;
Fin pour
//afficher des éléments du tableau
Pour i <-- 1 à N faire
Ecrire(‘l’’élément T[’,i,’] est : ‘,T[i]);
Fin pour
Fin