algorithme gmp[1]

37
 COURS D’ALGORITHME Licence GMP

Transcript of algorithme gmp[1]

Page 1: algorithme gmp[1]

5/12/2018 algorithme gmp[1] - slidepdf.com

http://slidepdf.com/reader/full/algorithme-gmp1 1/37

 

COURS D’ALGORITHME

Licence GMP

Page 2: algorithme gmp[1]

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.

Page 3: algorithme gmp[1]

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.

 

Page 4: algorithme gmp[1]

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

 

Page 5: algorithme gmp[1]

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

 

Page 6: algorithme gmp[1]

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.

 

Page 7: algorithme gmp[1]

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

 

Page 8: algorithme gmp[1]

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

 

Page 9: algorithme gmp[1]

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*/

 

Page 10: algorithme gmp[1]

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’à

 

Page 11: algorithme gmp[1]

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

 

Page 12: algorithme gmp[1]

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

 

Page 13: algorithme gmp[1]

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.

 

Page 14: algorithme gmp[1]

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.

 

Page 15: algorithme gmp[1]

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.

 

Page 16: algorithme gmp[1]

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] ;

 

Page 17: algorithme gmp[1]

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.

 

Page 18: algorithme gmp[1]

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]

 

Page 19: algorithme gmp[1]

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

 

Page 20: algorithme gmp[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.

 

Page 21: algorithme gmp[1]

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

 

Page 22: algorithme gmp[1]

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

 

Page 23: algorithme gmp[1]

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.

 

Page 24: algorithme gmp[1]

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.

 

Page 25: algorithme gmp[1]

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

 

Page 26: algorithme gmp[1]

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

 

Page 27: algorithme gmp[1]

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 »

 

Page 28: algorithme gmp[1]

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.

 

Page 29: algorithme gmp[1]

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

 

Page 30: algorithme gmp[1]

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:

 

Page 31: algorithme gmp[1]

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

 

Page 32: algorithme gmp[1]

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

 

Page 33: algorithme gmp[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.

 

Page 34: algorithme gmp[1]

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

 

Page 35: algorithme gmp[1]

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.

 

Page 36: algorithme gmp[1]

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

 

Page 37: algorithme gmp[1]

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.