• Aucun résultat trouvé

Algorithmique et structures dedonnées

N/A
N/A
Protected

Academic year: 2021

Partager "Algorithmique et structures dedonnées"

Copied!
14
0
0

Texte intégral

(1)

Support de cours de la matière :

Algorithmique et structures de données

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

Dr Chehili Hamza

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

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

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

(2)

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

(3)

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>

Déclaration

Constantes:

<Liste des constantes>

Variables:

<Liste des variables>

Début

<Liste des instructions>

1

5

4

3

2

(4)

La première ligne permetjuste 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 les constantes et les variables utilisées dans l’algorithme.

La partie principale de l’algorithme se trouve entre les mots clés ‘début’ et ‘fin’ . Elle contient la suite d’instructions à exécuter.

Exemple :

4. Notion de variable

Une variable est un motqui permet l’identification de l‘emplacement mémoire où on stocke une valeur à manipuler.

AlgorithmeProduit Déclaration

x, y, z : entier Début

Lire(x, y) zx *y Ecrire(z) Fin

5 3 4

2

1

(5)

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 coursde l’exécution de l’algorithme.

Exemple de déclaration des constantes : TVA = 0,17

N = 50 Admis = Vrai

III. LES TYPESD’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 typed’instruction est utilisé pour interagir avec l’utilisateur, en lui permettant d’entrer des valeurs des variables. Ainsi, le résultat des traitementset des messages d’informationpeuvent ê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

(6)

C’est l'instruction de lecture de données sur le périphérique d'entrée.

Structure générale :

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 :

Exemple :

Écrire (moyenne)

Écrire (‘ entrer la taille’) Écrire (‘leré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.

Ala 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 :

Exemple 1 : x 15,2 xy xy+ 4

Lire (variable)

Lire (variable1, variable2,…)

Écrire (variable) Écrire (‘message’)

Écrire (‘message’, variable)

variableexpression (variable)

(7)

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 ?

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 ?

o Calculer la différence entre deux variables.

o Permuter les valeurs de deux variables.

xx + y yx - y xx - y 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.

(8)

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 :

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 choixdel’exécutionentre deux blocsd’instructions.

Structure :

SI (Condition) alors Instructions Fin Si

(9)

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 :

Exemple : Lire (x)

Selon le cas (x)

Selon le cas (variable)

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

Variable = valeur n : instructions Sinon

Instructions Fin Si

SI (Condition) alors Instructions Sinon

Instructions Fin Si

(10)

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éhensionde 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

(11)

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 :

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

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

Fin Pour

(12)

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 :

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.

Répéter

Instructions Jusqu’à (Condition)

(13)

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.

(14)

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

Références

Documents relatifs

L’accès aux archives de la revue « Nouvelles annales de mathématiques » implique l’accord avec les conditions générales d’utilisation ( http://www.numdam.org/conditions )..

Les Discounts présentent un risque de perte du capital en cours de vie et à l’échéance, ils sont adaptés aux investisseurs avertis qui possèdent suffisamment d’expérience et

de façon systématique et plus encore lorsqu'une pathologie se développe dans l'axe Z (c'est-à-dire lorsqu'elle est observée sur un certain nombre de coupes axiales transverses en X

Ce sont des molécules synthétisées dans le foie, stockées dans la vésicule biliaire et déversées au moment du passage du bol alimentaire venant de l'estomac dans l'intestin

[r]

Indiquer s’il s’agit d’un caractère quantitatif discret, d’un caractère quantitatif continu ou d’un caractère qualitatif dans les cas suivants :. a) le nombre de

Objectif : dire pour chacune des 3 images données jeudi 13/09/2018 ce qu'est la population. ce qu'est

Objectif : dire pour chacune des 3 images données mercredi 07/09/2016 ce qu'est la population. ce qu'est