Vous êtes sur la page 1sur 14

RÉPUBLIQUE ALGERIENNE DÉMOCRATIQUE ET POPULAIRE

MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE

UNIVERSITÉ DES FRÈRES MENTOURI - CONSTANTINE 1

Faculté des sciences de la nature et de la vie

Département de Biologie Appliquée

Département de Biologie Appliquée

Support de cours de la matière :

Algorithmique et structures de
données

Spécialité : Bioinformatique
Niveau : Troisième année

Dr Chehili Hamza

Année universitaire 2020-2021


Objectifs de l’enseignement :

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.

Mode d’évaluation : Examens écrits, Contrôle continu

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

Un programme est un assemblage et un enchaînement d’instructions élémentaires écrites dans


un langage de programmation, et exécuté par un ordinateur afin de traiter les données d’un
problème et renvoyer un ou plusieurs résultats.

3. Langage de programmation

Un langage de programmation fournit un ensemble de mots-clés et de règles de syntaxe qui


permettent de créer des instructions formant des programmes et qui peuvent s’exécuter, sans
souci, sur une machine.

II. STRUCTURE D’UN ALGORITHME

La figure suivante donne la structure générale d’un algorithme :

Algorithme <Nom de l’algorithme>


1
Déclaration
2
Constantes :
3
<Liste des constantes>

Variables :
4
<Liste des variables>

Début 5

<Liste des instructions>

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).

Exemple de déclaration des variables :

M, Max : Entier

Poids, Moyenne : Réel

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.

Exemple de déclaration des constantes :

TVA = 0,17

N = 50

Admis = Vrai

III. LES TYPES D’INSTRUCTIONS

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 :

1. Les instructions d’entrée/sortie

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

C’est l'instruction de restitution de résultats sur le périphérique 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

Objectif : auto-évaluation de la compréhension de l'effet des instructions d'affectation sur


l'état des variables.

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.

o a= 10, b=20, c=40


o a= -5, b=20, c= 10
o a= 0, b=20, c=20

Exercice 2

Quelle est l'objectif de cette séquence d'instructions ?

xx+y

yx-y

xx-y

o Calculer la différence entre deux variables.

o Permuter les valeurs de deux variables.

6
o Sans objectif.

4. Les instructions conditionnelles

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 :

a. L’instruction conditionnelle simple

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 :
A5
B  12
SI (B>A*2) alors
BA
Fin Si
Ecrire (B)

b. L’instruction conditionnelle alternative

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 :
A5
B  12
SI (B>A*2) alors
BA
Sinon
B A + 4
Fin Si
Ecrire (B)

c. L’instruction conditionnelle de choix

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 :

Selon le cas (variable)


Variable = valeur 1 : instructions
Variable = valeur 2 : instructions

Variable = valeur n : instructions
Sinon
Instructions
Fin Si

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

1. Test sur l'utilisation des instructions conditionnelles

Objectif : auto-évaluation de la compréhension de du rôle des instructions conditionnelles.


Exercice

Soit l’algorithme suivant :

Algorithme Test2

Déclarations :

a, b, c : Entier

Début

1: Lire (a, b)

Si (b/2>a) Alors :

2:cb-a

Sinon

3:cb+a

4:ab-c

Fin si

5 :Ecrire (a, b, c)

Fin.

Quelles sont les instructions exécutées pour les valeurs : a = 5, b = 10 ?

2. Les instructions itératives

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’

Dans ce type d’instructions itératives on connait à l’avance le nombre d’itérations. En effet,


on doit préciser, dans l’entête de l’instruction ‘Pour’, la valeur initiale et la valeur finale et
éventuellement le pas (lorsqu’il est différent de 1).

Structure :

Pour i allant de VI à VF (pas = V) faire

Instructions

Fin Pour

VI : valeur initiale de la variable i,


VF ; valeur finale de la variable i,
V : valeur à ajouter la variable i après chaque itération (par défaut 1).

Exemple :

Pour i allant de 1 à 10 faire


Ecrire (‘L3 Bioinformatique’)
Fin pour
a. L’instruction ‘Tant que

Dans ce type d’instructions itératives on ne connait pas forcement à l’avance le nombre


d’itérations. En effet, on continue la répétition de l’exécution du bloc d’instructions tant
qu’une condition est encore satisfaite.

Tant que (condition) faire

Instructions

Fin Tant que

10
Exemple :

i =1

Tant que (i <= 10) faire


Ecrire (‘L3 bioinformatique’)
i i + 1
Fin Tant que

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 :

Écrire un l'algorithme qui échange les valeurs des variables A et B.

Exercice 3 :

Écrire un algorithme qui résout une équation du premier degré ax+ b=0.

Exercice 4 :

Ecrire un algorithme qui donne la valeur absolue d'un entier.

Exercice 5 :

Écrire un algorithme qui convertit un nombre de secondes en heures: minutes: secondes.

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 :

Ecrire un algorithme qui calcule le factoriel d'un entier positif.

Exercice 10 :

Ecrire un algorithme qui calcule a puissance b avec a réel et b entier par multiplication
successives.

Exercice 11 :

Ecrire un algorithme qui vérifie si ce nombre est premier ou non.

12
Exercice 12 :

Ecrire un algorithme qui calcule le PGCD de deux entiers positifs.

Exercice 13 :

Ecrire un algorithme qui détermine si un entier positif est parfait.


Un nombre parfait est un nombre présentant la particularité d'être égal à la somme de tous ses
diviseurs, excepté lui-même.

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

Vous aimerez peut-être aussi