Chapitre 5-Introduction Algorithmique
Chapitre 5-Introduction Algorithmique
Chapitre 5-Introduction Algorithmique
Chapitre 5 : Introduction à
l’algorithmique
Réalisé par Ouares Akila
Plan du chapitre
Introduction
Notion d’Algorithme et d’action primitive.
Structure d’un algorithme.
Différentes parties d’un algorithme
Les types standards et opérations appropriées.
Actions simples et structures de contrôle
Les types complexes (tableaux et
enregistrements).
Objectifs du cours
Source: www.lesfoodies.com
Notion d’algorithme et d’action primitive
Un algorithme en informatique est un procédé de
calcul qui permet de résoudre un problème donné.
Ce procédé est une suite d’étapes à effectuer dans
un ordre donné afin d’aboutir au résultat attendu.
Une action est une étape de l'algorithme. C'est un
événement de durée finie qui modifie
l'environnement (changement des valeurs des
variables, résultat d’une expression, …).
Une action primitive est une action exécutée sans
aucune information complémentaire. Exemple:
A45
Notion d’algorithme et d’action primitive
Un algorithme est une suite d’actions
primitives, qui une fois exécutées réalisera un
travail bien précis.
Un algorithme doit tenir compte de tous les cas
possibles (le cas général et les cas particuliers).
Il contient toujours un nombre fini d'actions.
Il est souvent répétitif (il contient un
traitement qui se répète).
Il est indépendant des langages de
programmation et des matériels informatiques.
Notion d’algorithme et d’action primitive
Pourquoi un algorithme?
Un algorithme utilise un formalisme (ensemble de mots,
de structures, de règles) nommé LDA (Langage de
description d’algorithme). dont le but est de:
offrir un langage commun compris par tous ne
dépendant pas d’un langage de programmation
Facilite la communication de la solution d’un
problème.
Assurer une meilleure conception d’une solution
avant son passage à la programmation qui nécessite
des ressources (machine, compilateur, …)
Préparer sa traduction dans un langage de
programmation (C, C++, java) car le passage d’un
Notion d’algorithme et d’action primitive
Démarche de résolution d’un problème
Pour obtenir les résultats attendus, on doit suivre les étapes:
Enoncé bien clair du problème posé.
Faire une analyse détaillée qui tient en compte des cas
particuliers.
Ecrire l’algorithme.
Algorithme nom_algorithme
Const nom_constante= valeur /*Déclaration des
Entête
Constantes*/
Type nom_type… /*Déclaration de nouveaux types */
Var var1,var2:type1, var3:type2 /*Déclaration des
variables */
Procedure ou fonction …/* Déclaration des sous-algorithmes
Des commentaires sont insérés pour donner une
*/
explication textuelle à certaines actions dont on
Corps
Algorithme rattrapage
Const note_elimin=7 /* note éliminatoire fixée à
7*/
Var moyenne:reel
Début
Lire (moyenne)
Si moyenne <note_elimin
Alors écrire (‘l.etudiant refait le module’)
Fsi
Fin algorithme
Structure d’un algorithme
Déclaration des variables
Les variables sont des zones mémoires contenant les
données manipulées par un programme ayant des adresses
mémoire pour pouvoir les atteindre. Le contenu d’une
variable peut changer une à plusieurs fois.
Les variables sont nommées afin d’être utilisées dans un
algorithme et doivent être définies ainsi que leurs types
dans la partie déclaration.
Exemple:
Var A,B: entier, V: booleen, Quotient: reel
Ici nous avons déclaré pour les besoins de notre algorithme: 4
variables (deux de type entier, une de type booléen et une
de type réel).
Structure d’un algorithme
Différentes parties d’un algorithme
Déclaration des variables
Un nom d’une variable (identifiant) doit être:
Porteur de sens pour pouvoir comprendre facilement
l’algorithme en cours de sa lecture ou de son déroulement
(notamment pour les algorithmes compliqués et longs).
Il doit toujours être présent dans la partie déclaration des
variables (avant de l’utiliser).
Il ne doit pas commencer par un chiffre.
Il ne doit pas contenir un symbole sauf la caractère
souligné (_).
Il doit être différent des mots réservés utilisés dans la
structure d’un algorithme (si, sinon, pour, tant que, var,
const, type, entier, booleen,…)
Structure d’un algorithme
Les types standards et opérations appropriées.
Le type de variable définit les valeurs qu’elle peut contenir.
Les types standards sont:
Exemples:
A5 (ou A=5) /*Affectation d’une valeur*/
AB /*Affectation du contenu d’une variable*/
A(B+C)/10 /*Affectation du résultat d’une expression*/
Ce qui est affecté à la variable doit être de même type que cette
dernière.
Si A est de type entier, A10.5 est considéré comme une erreur.
Actions simples et structures de contrôle
Une action de lecture permet de stocker une
valeur dans une variable. Cette valeur est
donnée par l’utilisateur en utilisant un organe
d’entrée. Si l’exécution est répétée , la valeur
peut être changée.
Exemple:
Lire (A,B)
CA+B
Si l’utilisateur a introduit 5 pour A puis 2 pour B
alors C aura 7 comme valeur.
Actions simples et structures de contrôle
Une action d’écriture permet d’afficher un message,
le contenu d’une variable, ou le contenu d’une
expression sur un organe de sortie (écran, imprimante,
… ).
Exemple:
Lire (A,B)
CA+B
Écrire (‘La somme de A et de B est:’, C)
Action 1 Exemple:
Action 2 Lire (A)
..... B A**4
CB*100
Action n
Ecrire (A,B,C)
Actions simples et structures de contrôle
Exemple
Si C1 alors A1
sinon si C2
alors A1 Si A<0 alors écrire (‘A est non
Sinon A2 nul’)
sinon si A>0 alors écrire (‘A est non
nul’)
Sinon écrire (‘A est nul’)
A2 est exécutée si C1 et C2 sont toutes les deux non
vérifiées
Actions simples et structures de contrôle
Les Structures alternatives
Si (A<0 et B<0) alors écrire (‘somme est
Si (C1 et C2) alors A1 de signe négatif’)
Sinon A2 Sinon écrire(‘la somme dépend du signe de
la plus grande valeur absolue’)
m ple
E xe
Si A<0 alors
si B<0
Si C1 alors si C2 alors alors écrire (‘somme est de signe
A1 négatif’)
sinon écrire(‘la somme dépend du
sinon A2 signe de
Fsi la plus grande valeur
Sinon A2 absolue’)
Fsi
Fsi Sinon écrire(‘la somme dépend du signe de la
plus grande valeur absolue’)
Exercice
Afficher le résultat admis ou refait l’année selon la
moyenne
Algorithme passage
Var moy:reel
Début
Écrire (‘Donnez la moyenne de l’étudiant’)
Lire(moy)
Si moy>=10 alors Ecrire (‘L étudiant admis en année
suivante)
Sinon Ecrire (‘L Etudiant refait lannée en cours’)
Fsi
Fin Algorithme
Actions simples et structures de contrôle
Les boucles
a i p
Entrée de la valeur de
2 1 1 a:
2 2 On suppose que c’est
3 4 2
Affichage sur écran:
4 8
a puissance 5 est 32
5 16
32
Actions simples et structures de contrôle
D’autres caractéristiques de la boucle « pour »
On peut définir un pas pour
l’incrémentation du compteur.
Exemple: somme de 2+4+6+8+ …+100
S0
Pour i de 2 à 100 pas 2 faire
Début
SS+i
Fin pour
Actions simples et structures de contrôle
D’autres caractéristiques de la boucle « pour »
La boucle « pour » peut être utilisée avec un
compteur qui se décrémente.
Exemple: somme de 1+2+3+4+ …+50
S0
Pour i de 50 à 1 pas -1 faire
Début
SS+i
Fin pour
Actions simples et structures de contrôle
La boucle tant que
La boucle tant que utilise une expression
booléenne comme condition d’arrêt de la
répétition.
La boucle tant que est plus générale que la boucle
Pour qui ne peut avoir de condition que sur le
nombre d’itérations spécifié par la valeur
maximale du compteur. (toute boucle « pour » peut
être écrite à l’aide de la boucle « tant que »).
S’il y’a un compteur, son incrémentation doit être
explicite (ii+1).
Actions simples et structures de contrôle
La boucle tant que
5.5 6.5 10.0 11.5 12.0 12.0 13.0 14.5 15.0 20.0
Les Types complexes
Les tableaux
Déclaration d’un tableau à une dimension
VT[3]
T[4]X+1
Pour i de 1 à 10 faire
Lire(T[i])
Fin pour
Les Types complexes
Les tableaux
Ecriture des éléments d’un tableau
Si l’on souhaite afficher le contenu des éléments d’un
tableau, on utilise également une boucle
Pour i de 1 à 10 faire
écrire(‘La valeur du’,i,’eme élément
est ,’T[i])
Fin pour
Les Types complexes
Les tableaux
Exemple: somme des éléments d’un tableau
Algorithme som_tab
Var T: tableau[1..10] d’entiers, S,i:entier
Début
Pour i de 1 à 10 faire
Lecture des
Lire(T[i]) éléments du tableau
Fin pour T
S0
Pour i de 1 à 10 faire On rajoute à S le
Début
contenu de chaque
SS+T[i]
élément de T
Fin pour
Écrire (‘La somme est: ‘,S)
Fin Algorithme
Les Types complexes
Les tableaux (Le tri d’un tableau)
Il existe plusieurs méthodes pour faire les tri des
valeurs d’un tableau selon l’ordre croissant ou
décroissant.
Le tri par sélection consiste à comparer le premier
élément aux éléments suivants. Si un élément
quelconque est inférieur au premier élément, les
valeurs sont permutées. A la fin la valeur minimale
est affectée à T[1].
L’opération sera répétée avec le 2eme élément en le
comparant aux autres valeurs sauf le premier et ainsi
de suite on compare le 3eme élément, le 4eme, …
jusqu'à l’avant dernier.
Les Types complexes
Les tableaux (Le tri d’un tableau)
Pour i de 1 à 10 faire
Lire(T[i])
Fin pour
Pour i de 1 à 9 faire
Pour j de i +1 à 10
Si T[i]>T[j] alors
CT[j]
T[j]T[i]
T[i]C
Fsi
Fin pour
Fin pour
Les Types complexes
Les tableaux (La recherche dans un tableau trié)
La recherche d’une valeur dans un tableau non trié
nécessite de parcourir tous ses éléments.
La recherche dans un tableau trié est optimisée, elle
s’appelle une recherche dichotomique.
La recherche dichotomique permet rechercher un
élément dans la moitié du tableau et de comparer la
valeur à la valeur du premier élément du dernier, s’il
est compris entre ses valeurs, on se suffit à la
première partie, sinon la recherche se fait dans la
deuxième partie.
Les Types complexes
Les tableaux (La recherche dans un tableau trié)
1 3 4 8 11 15 20 21 25 30
Source: http://larp.marcolavoie.ca/fr/description/description.htm
Ressources bibliographiques