Académique Documents
Professionnel Documents
Culture Documents
Algorithmique et structures de
données
Spécialité : Bioinformatique
Niveau : Troisième année
Dr Chehili Hamza
Cette matière vise à amener progressivement l’étudiant à assimiler et utiliser les concepts et
les techniques nécessaires pour construire des algorithmes aux problèmes rencontrés. Ceci,
doit impérativement passé par la compréhension de la démarche algorithmique et les énoncés
nécessaires à sa représentation en pseudo code.
1
I. CONCEPTS DE BASE
1. Algorithme
Une succession finie d’opérations qui donne la solution d’un problème donné. Pour écrire un
algorithme, on utilise un pseudo-langage compréhensible par une communauté. Donc, l’idée
générale d’un algorithme est de donner la solution d’un problème sous forme d’opérations qui
peuvent être traduites dans un langage compréhensible par la machine tout en le gardant
lisible et compréhensible par une personne ordinaire.
2. Programme
3. Langage de programmation
Variables :
4
<Liste des variables>
Début 5
Fin
2
La première ligne 1 permet juste d’identifier l’algorithme. Donc, le nom attribué ne change
pas l’exécution et les résultats.
Avant de mettre les instructions, il faut déclarer 2 les constantes 3 et les variables 4
utilisées dans l’algorithme.
La partie principale de l’algorithme se trouve entre les mots clés ‘début’ et ‘fin’ 5 . Elle
contient la suite d’instructions à exécuter.
Exemple :
Algorithme Produit
Déclaration
x, y, z : entier
Début
Lire(x, y)
z x *y
Ecrire(z)
Fin
4. Notion de variable
Une variable est un mot qui permet l’identification de l‘emplacement mémoire où on stocke
une valeur à manipuler.
3
Malgré que le choix est libre du nom de la variable, il préférable, pour des raisons de lisibilité
et de compréhension de choisir des noms de variables en fonctions de ce qu’elles représentent.
Par exemple : Moyenne, Poids, Taille,…etc.
La notion de type d’une variable est capitale, car elle implique le choix du codage de la
variable (par exemple, un entier sur 32 bits et un caractère sur 16 bits) ainsi que les possibilité
d’usage ( par exemple : on ne peut pas multiplier un caractère par un nombre entier).
M, Max : Entier
Premier : Bouléen
5. Notion de constante
On peut assimiler la notion d’une constante à une variable dont la valeur ne change pas au
cours de l’exécution de l’algorithme.
TVA = 0,17
N = 50
Admis = Vrai
La partie principale d’un algorithme contient la suite d’instruction qui va être traduite vers un
langage de programmation. Il existe quatre types d’instruction dont le détail est donné par la
suite :
Ce type d’instruction est utilisé pour interagir avec l’utilisateur, en lui permettant d’entrer des
valeurs des variables. Ainsi, le résultat des traitements et des messages d’information peuvent
être affichés à l’utilisateur via ce type d’instruction. En réalité, il existe plusieurs
périphériques et manières pour échanger des données avec un algorithme ou un programme
(via des fichiers, des bases de données, des formulaires,…). Toutefois, pour se concentrer sur
les principes de l’algorithmique, on se contente par les entrées et les sorties standards, à
savoir, l’écriture sur le clavier et l’affichage sur écran. L’exploitation des autres possibilités
vont être abordées dans la matière dédiée à la programmation.
a. Instruction d'entrée
4
C’est l'instruction de lecture de données sur le périphérique d'entrée.
Structure générale :
Lire (variable)
Lire (variable1, variable2,…)
Exemple :
Lire(Taille)
Lire (x, y)
b. Instruction de sortie
Structure générale :
Écrire (variable)
Écrire (‘message’)
Écrire (‘message’, variable)
Exemple :
Écrire (moyenne)
Écrire (‘ entrer la taille’)
Écrire (‘le résultat est :’, max)
2. L’instruction d’affectation
Cette instruction permet d’affecter une valeur à une variable, après l’évaluation d’une
expression logique ou arithmétique.
A la place d’une expression, on peut utiliser une simple valeur ou une variable
Il faut noter que le résultat de l’évaluation de l’expression doit avoir le même type que la
variable qui va le recevoir.
Structure générale :
variable expression
(variable)
Exemple 1 :
x 15,2
x y
x y+ 4
5
3. Test sur l’instruction d’affectation
Exercice 1
Quelles sont les valeurs des variables a,b et c écrites par l'algorithme suivant ?
Algorithme Affectation1
Variables :
a,b,c: entier
Début
a 10
b a*2
a a- b/2
c b + a*2
Ecrire (a,b,c)
Fin.
Exercice 2
xx+y
yx-y
xx-y
6
o Sans objectif.
Ces instructions sont utilisées pour faire le choix entre l’exécution ou non des blocs
d’instructions suite à l’évaluation d’une condition. On en distingue trois types :
Ce type d’instructions permet de faire le choix entre l’exécution ou non d’un seul boc
d’instructions.
Structure :
SI (Condition) alors
Instructions
Fin Si
Exemple :
A5
B 12
SI (B>A*2) alors
BA
Fin Si
Ecrire (B)
Ce type d’instructions permet de faire le choix de l’exécution entre deux blocs d’instructions.
Structure :
7
SI (Condition) alors
Instructions
Sinon
Instructions
Fin Si
Exemple :
A5
B 12
SI (B>A*2) alors
BA
Sinon
B A + 4
Fin Si
Ecrire (B)
Ce type d’instructions permet de faire le choix de l’exécution entre plusieurs blocs selon la
valeur d’une variable donnée.
Structure :
Exemple :
Lire (x)
Selon le cas (x)
x = 1 : Ecrire (‘Très Faible’)
8
x = 2 : Ecrire (‘Faible)
x = 3 : Ecrire (‘Moyen)
x = 4 : Ecrire (‘Bien’)
x = 5 : Ecrire (‘Excellent’)
Sinon
Ecrire (‘Valeur hors intervalle acceptée’)
Fin Si
Algorithme Test2
Déclarations :
a, b, c : Entier
Début
1: Lire (a, b)
Si (b/2>a) Alors :
2:cb-a
Sinon
3:cb+a
4:ab-c
Fin si
5 :Ecrire (a, b, c)
Fin.
9
Les instructions itératives ou répétitives, appelées aussi communément par les développeurs
les boucles, permettent d’exécuter plusieurs le même bloc d’instructions. On en distingue
trois types :
a. L’instruction ‘Pour’
Structure :
Instructions
Fin Pour
Exemple :
Instructions
10
Exemple :
i =1
a. L’instruction ‘Répéter’
Comme le cas pour l’instruction ‘Tant que’, l’instruction ‘Répéter’ ne permet pas de connaitre
forcement à l’avance le nombre d’itérations. En effet, on continue la répétition de l’exécution
du bloc d’instructions jusqu’à la satisfaction d’une condition.
Structure :
Répéter
Instructions
Jusqu’à (Condition)
Exemple :
i =1
Répéter
Ecrire (‘L3 bioinformatique’)
i i + 1
Jusqu’à (i > 10)
Remarque : L’instruction ‘Tant que’ s’exécute zéro ou plusieurs fois, au moment où,
l’instruction ‘Répéter’ s’exécute une ou plusieurs fois.
11
Série de TD 1
Exercice 1 :
Écrire un algorithme qui calcule le carré d'un nombre entier donné par l'utilisateur.
Exercice 2 :
Exercice 3 :
Écrire un algorithme qui résout une équation du premier degré ax+ b=0.
Exercice 4 :
Exercice 5 :
Exercice 6 :
Écrire un algorithme qui résout une équation du second degré ax2+ bx +c=0.
Exercice 7 :
Ecrire un algorithme qui détermine si la valeur d'un entier est paire ou impaire.
Exercice 8 :
Ecrire un algorithme qui donne tous les diviseurs d'un entier positif.
Exercice 9 :
Exercice 10 :
Ecrire un algorithme qui calcule a puissance b avec a réel et b entier par multiplication
successives.
Exercice 11 :
12
Exercice 12 :
Exercice 13 :
Exercice 14 :
Ecrire un algorithme qui donne le nombre d'occurrences d'un caractère donné dans une chaine
lue caractère par caractère et qui se termine par un point.
Exercice 15 :
Ecrire un algorithme qui affiche tous les nombres parfaits inférieurs à 1000.
Exercice 16 :
Ecrire un algorithme qui affiche tous les nombres parfaits inférieurs à 1000.
Exercice 17 :
Ecrire un algorithme qui calcule les 10 premiers termes de la suite de Fibonacci. La suite de
Fibonacci est définie par :
F0 = 1
F1= 1
Fn=Fn-2+Fn-1 pour n>1
13