5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 1/37
COURS D’ALGORITHME
Licence GMP
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 2/37
PLAN Eléments de base d’un algorithme.
Les structures alternatives et répétitives.
Les tableaux.
es s ruc ures. Les fonctions prédéfinies.
Procédures et fonctions.
Les algorithmes de tri et de recherche.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 3/37
Chapitre 1: Eléments de base d’un algorithme.
Introduction.
Notion d’algorithme. Algorithmique et programmation.
Structure générale d’un algorithme.
es varia es et es constantes. Notion des variables.
Déclarations des variables.
Les constantes.
Les instructions de base.
Les commentaires.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 4/37
Chapitre 1: Eléments de base d’un algorithme.
Notion d’algorithme.
Une recette de cuisine, par exemple, est un algorithme: àpartir des ingrédients, elle expliquent parvenir au plat.
début
ncorporer e eurre ans a ar ne.
ajouter du lait.
Mélanger.
Si la pâte est trop sèche, alors ajouter du lait.…
fin.
Un algorithme sert à transmettre un savoir faire. Il décrit lesétapes à suivre pour réaliser un travail
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 5/37
Chapitre 1: Eléments de base d’un algorithme.
Algorithmique et programmation. Tout problème à programmer doit être résolu, d’abord sous
forme d’algorithme, puis converti en programme dans lelangage choisi.
L’algorithme est indépendant du langage de programmationutilisé.
Un programme est un enchaînement d’instructions, écrit dansun langage de programmation, exécutées par un ordinateur,permettant de traiter un problème et de renvoyer des
résultats
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 6/37
Chapitre 1: Eléments de base d’un algorithme.
Structure générale d’un algorithme.
Un algorithme est composé de trois parties:
L’entête: sert à donner un nom à l’algorithme, précédée
La partie déclarative: déclaration des différents objetsque l’algorithme utilise (constantes, variables, etc.).
Corps de l’algorithme: contient les instructions de
l’algorithme. Elle est délimiter par les mots Début et Fin.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 7/37
Chapitre 1: Eléments de base d’un algorithme.
Les variables et les constantes.
Notions de variables:Les données ainsi que les résultats des calculs intermédiaires ou finaux, sontrangés dans des cases mémoires qui correspondent à des variables.
Déclaration des variables:
yn axe: var a e en ca eur: ype.
Exemple: variable surface: réel.
variable a : entier.
variable nom: chaîne.
variable absent: logique.
Les constantes.Comme une variable, il lui correspond un emplacement mémoire réservé ,mais dont la valeur ne change jamais au cours du programme.
Syntaxe: Constante nom_de_la_constante = valeur.
Exemple: Constante PI=3.14
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 8/37
Chapitre 1: Eléments de base d’un algorithme.
Les instructions de base.
Une instruction est une action élémentaire commandant à la machine un calcule,ou une communication avec l’un des périphériques d’entrée ou de sortie, lesinstructions de base sont:
l’instruction d’affectation:
yn axe: var a e xpress on.
Expression = {identificateur , constante, expression logique, expressionarithmétique..}.
L’instruction d’entrée ou de lecture.
Donne la main à l’utilisateur pour saisir une donnée au clavier. La valeur saisie
sera affecter à une variable.Syntaxe: Lire (identificateur).
L’instruction de sortie :
Permet d’afficher des informations sur l’écran.
Syntaxe: Ecrire (expression).
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 9/37
Chapitre 1: Eléments de base d’un algorithme.
Les commentaires.
Lorsqu’un algorithme devient long, il est conseilléd’ajouter des lignes de commentaires dans l’algorithme.
// Commentaire sur une ligne
Commentaire ‘ Commentaire
/* Commentaire
Sur
Plusieurs
Lignes*/
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 10/37
Chapitre2 : les structures alternatives et répétitives.
Les structures alternatives.
Introduction. La structure Si ….Alors….Sinon….FinSi.
La structure Si ….Alors….FinSi.
La structure Si ….Alors….SinonSi….Sinon….FinSi.
Structures à choix multiples. Les structures répétitives Introduction.
La boucle TantQue…..Faire.
La boucle Pour……Faire.
La boucle Répéter …… Jusqu’à
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 11/37
Les structures alternatives. Introduction.
Il est souvent nécessaire lorsque l’on écrit un programme dedistinguer plusieurs cas conditionnant l’exécution de telles ou tellesinstruction. Pour ce faire, on utilise une structure alternative : si on est
Chapitre2 : les structures alternatives et répétitives.
Syntaxe : SI condition ALORS
instruction(s)1
[SINON instruction(s)2]
FinSI
Les crochets signifient que la partie SINON instruction(s)2 estfacultative.
Les conditions : Pour exprimer les conditions on utilise lesopérateurs conditionnels suivants : = égal, < inférieur, > supérieur,
<= inférieur ou égal, >= supérieur ou égal, <> différent
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 12/37
Les instructions qui suivent le SINON ou le ALORS peuvent être : Une simple instruction
Une suite d’instructions séparées par des ; Une autre alternative
Une répétitive.
Chapitre2 : les structures alternatives et répétitives.
…
Exemple : Lire caractèreCas caractère de
‘0’ … ‘9’: écrire "chiffre";
‘a’ … ‘z’: écrire "minuscule";
‘A’ … ‘Z’: écrire "majuscule";
Fin cas
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 13/37
Introduction.
Un programme a presque toujours pour rôle de répéter une mêmeaction un certain nombre de fois. Pour ce faire on utilise une structurepermettant de dire « exécute telles actions jusqu’à ce que tellecondition soit remplie ». Bien qu’une seule soit nécessaire, la plupart des
Chapitre2 : les structures alternatives et répétitives.
angages e programmation proposent trois types e structurerépétitive.
La boucle TantQue…..Faire.
TantQue condition
Faire actions
FTQ
Ce qui signifie : tant que la condition est vraie, on exécute les actions.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 14/37
La boucle Pour……Faire.
Très souvent, on utilise une structure répétitive avec un compteur et ons’arrête lorsque le compteur a atteint sa valeur finale.
POUR variable ALLANT DE valeur initiale A valeur finale [PAS valeur du
pas]
Chapitre2 : les structures alternatives et répétitives.
act ons
FinPour.
La boucle Répéter …… Jusqu’à
Répéter actions
Jusqu’à conditions
Ce qui signifie que l’on exécute les actions jusqu’à ce que la conditionsoit vraie.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 15/37
Chapitre 3: Les Tableaux Introduction.
Définition. Tableau à une dimension. Déclaration.
Utilisation. Tableau à deux dimension.
Déclaration.
Utilisation. Tableau dynamique.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 16/37
Chapitre 3: Les Tableaux Introduction
On peut regrouper plusieurs variables sous un même nom,chacune étant alors repérée par un numéro. C’est ce quel’on appelle un tableau. On peut faire un tableau avec des
’
Dans tous les cas le ième élément d’un tableau appelé TABsera adressé par TAB (i).
Généralement on fait des tableaux à une dimension, mais il
existe également des tableaux à deux dimensions, dans cecas TAB (i,j) représente la jème colonne et la ième ligne.
TABLEAU type variable [longueur] ;
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 17/37
Chapitre 3: Les Tableaux Définition
Un tableau est suite d’éléments de même type. Ilutilise plusieurs cases mémoire à l’aide d’un seul
nom. Comme toutes les cases ortent le même nom
elles se différencient par un numéro ou un indice.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 18/37
Chapitre 3: Les Tableaux Déclaration de tableau à une dimension
Variable identificateur : tableau[taille] de type
Exemple :
: ;
Variable liste_nb: TABLEAU [25] de réel;
Variable A, B : tableau [1..10]
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 19/37
Chapitre 3: Les TableauxUtilisation
Les éléments d’un tableau sont des variables indicéesqui s’utilisent exactement comme n’importe quellesautres variables classiques. Elles peuvent faire l’objet’ ,
expression arithmétique, dans une comparaison, ellespeuvent être affichées et saisie etc.
L’utilisation de ces éléments se fait ensuite, via le nom
du tableau et son indice. Ce dernier peut être soit unevaleur (comme tab[3]), soit une variable (tab[i]) ouencoure une expression (tab[i+1])
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 20/37
Chapitre 3: Les Tableaux Remarque : ne pas confondre l’indice d’un élément
d’un tableau avec son contenu. Exemples :
X note[1]
Ecrire(note[4]) Lire(note[3])
Exercice:
Ecrire un algorithme permettant de saisir 30 noteset de les afficher après avoir multiplié toutes cesnotes par un coefficient fourni par l’utilisateur.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 21/37
Chapitre 3: Les Tableaux Solution:
Algorithme tableau_note
Variable Note: tableau[1..30] de réels
coef, i : entierDébut
Ecrire(« Entrer le coefficient »)
Lire(coef)
//remplissage du tableau NotePour i jusqu’à 30 Faire
Ecrire (« entrer la valeur de la note »,i)
Lire(Note[i])
FinPour
//Affichage des notes * coef
Pour i 1 jusqu’à 30 faire
Ecrire (Note[i] * coef)
FinPour
FIN
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 22/37
Chapitre 3: Les Tableaux
Tableaux à deux dimensions
Reprenons l’exemple des notes en considérant cette fois qu’un étudiant a
plusieurs notes (une note pour chaque matière). Pour 4 étudiants .
on peut schématiser ce tableau comme suit:Indices
du tableau
Informatique 12 13 9 10
Comptabilité 12,5 14 12 11
Mathématiques 15 12 10 13
1 2 3 4
1 12 13 9 10
2 12,5 14 12 11
3 15 12 10 13
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 23/37
Chapitre 3: Les Tableaux
Déclaration
Exemple :Variable Note: tableau[1..3, 1..4] de réels.
o e ,
Parcours complet d’un tableau à 2 dimensions:
Pour parcourir une matrice nous avons besoin de
deux boucles, l’une au sein de l’autre, c’est ce qu’onappelle les boucles imbriquées.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 24/37
Chapitre 3: Les Tableaux
Exercice
Ecrire un algorithme qui permet le saisie des notesd’une classe de 30 étudiants en 5 matières.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 25/37
Les structures
Déclaration d’une structure
La déclaration d’une structure ne définit aucunevariable, elle permet de définir un modèle de structurec’est définir un nouveau type.
Elle se fait dans une section s éciale des al orithmes
appelée Type, qui précède la section des variables. Syntaxe: Type structure nom_structure
champ1 : type_champ1
…champ2: type_champ2
finStruct
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 26/37
Les structures
Contrairement aux tableaux qui permettent de
désigner sous un même nom un ensemble de valeursde même type, chacune d’entre elles étant repérépar indice, les structures permettent de désigner
être de types différents. L’accès à chaque élémentde la structure nommé champ se fera, cette fois, nonplus avec l’indication de position, mais par son nom
au sein de la structure. Nous pouvons schématiser une structure comme suit:
Champ_1 Champ_2 Champ_3 Champ_n
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 27/37
Les structures
Exemple: type structure etudiants
Nom: chaîneprenom: chaîne
age: entier
finstruct Déclaration d’une variable de type structure.
après avoir défini la structure, on peut l’utiliser comme
un type normale.Exemple: variable etud1, etud2: etudiants.
L’accès à un champ d’une structure
Etud1.nom « Alami »
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 28/37
Les fonctions prédéfinies
Introduction
Certains traitement sont complexes à effectuer par unalgorithme. Par exemple, le calcul du cosinus d’unangle nécessite une formule complexe.
Tous les langages de programmation ont un certainnombre de fonction prédéfinies .
Les fonctions de chaîne de caractères:
Une chaîne est une séquence de caractère dont lalongueur correspond au nombre de caractèrequ’elle contient.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 29/37
Les fonctions prédéfinies
Longueur d’une chaîne
Syntaxe : longueur(ch)
Elle retourne le nbre de caractère d’une chaîne.
Exemple: longueur(« bonjour ») elle renvoie 7
onca na on e c a nes
C’est la juxtaposition de deux chaînes ou plus afin d’enformer une seule.
Syntaxe: concat(ch1,ch2)
Elle retourne une chaîne de caractère ch1+ch2Exemple: concat(« boujour », « monsieur »)
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 30/37
Les fonctions prédéfinies
Copie d’une chaîne
Syntaxe copie(ch1, position,n)
Cette fonction recopie une partie de la chaîne ch1à partirde la position « position » un nbre n de caractères.
, ,
Elle retourne jour. Comparaison de deux chaînes
Syntaxe comp(ch1,ch2)
Cette fonction compare 2 chaînes e caractères en utilisantl’ordre des caractères définies par le code ASCII, ellefournie une valeur entière:
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 31/37
Les fonctions prédéfinies
Positive si ch1>ch2
Négative si ch1<ch2
Nulle si ch1=ch2
Exemple comp(« bonjour », « monsieur ») retourne unevaleur négative.
Recherche dans une chaîneCette fonction recherche la 1ère occurrence d’un caractère
dans une chaîne.
Syntaxe recherche(ch1,ch2).
Exemple recherche(« bonjour monsieur », « jour »)retourne la valeur 4
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 32/37
Les fonctions prédéfinies
Les fonctions mathématiques:
Elles permettent de réaliser des traitementsmathématiques sur des données numériques.
onct on escr pt on exemp e r su tat
Abs(nbre) Retourne la valeur absolue d’un nbre XAbs(-12) X=12
Ent(nbre) Retourne la partie entière d’un nbre XEnt(12.3) X=12
Cos(angle) Retourne le cosinus d’un angle XCos(0) X=1
Sin(angle) Retourne le sinus d’un angle X
Sin(0) X=0Sqrt(nbre) Retourne la racine carrée d’un nbre XSqrt(4) X=2
Alea() Retourne une valeur aléatoire entre 0 et 1 XAlea() 0=<X<1
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 33/37
Les fonctions et les procédures
Un algorithme écrit d’un seul tenant devient difficile
à comprendre dés qu’il dépasse deux pages. Lasolution consiste alors à découper l’algorithme enplusieurs parties plus petites. Ces parties sont
- .
Le sous algorithme est écrit séparément du corps del’algorithme principal et sera appelé par celui-ciquand il est nécessaire.
Il en existe deux sortes de sous-algorithmes: lesfonctions et les procédures.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 34/37
Les fonctions et les procédures
Les procédures:
Une procédure est une série d’instructions regroupéessous un nom, qui permet d’effectuer des actions par
un sim le a el de la rocédure dans un
algorithme ou dans un autre sous algorithme.Une procédure renvoie plusieurs valeurs et non pas
une ou aucune valeur
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 35/37
Les fonctions et les procédures
Syntaxe
Procédure nom_proc(liste de paramètres)variables identificateurs: type
début
instruction(s)FinProc
Exemple:
Ecrire une procédure qui affiche à l’écran une lignede 15 étoiles puis passe à la ligne suivante.
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 36/37
Les fonctions et les procédures
Solution:
Procédure Etoiles()Variables i : entier
Début
Pour i1 jusqu’à 15 faireEcrire (« * »)
Finpour
Ecrire(« \n »)
Finproc
5/12/2018 algorithme gmp[1] - slidepdf.com
http://slidepdf.com/reader/full/algorithme-gmp1 37/37
Les fonctions et les procédures
L’appel d’une procédure:
Pour déclencher l’exécution d’une procédure dans unprogramme, il suffit de l’appeler pour le nom de laprocédure puis la liste des paramètres séparés par desvirgules.
A l’appel d’une procédure, le programme interrompt sondéroulement normal, exécute les instructions de laprocédure, puis retourne au programme appelant etexécute l’instruction suivante.
ExempleEcrire un algorithme permettant de dessiner un carré
d’étoiles de 15 lignes et de 15 colonnes.