Vous êtes sur la page 1sur 37

COURS DALGORITHME

Licence GMP

PLAN
Elments de base dun algorithme. Les structures alternatives et rptitives. Les tableaux. Les structures. Les fonctions prdfinies. Procdures et fonctions. Les algorithmes de tri et de recherche.

Chapitre 1: Elments de base dun algorithme.


Introduction.
Notion dalgorithme. Algorithmique et programmation.

Structure gnrale dun algorithme. Les variables et les constantes.


Notion des variables. Dclarations des variables. Les constantes.

Les instructions de base. Les commentaires.

Chapitre 1: Elments de base dun algorithme.


Notion dalgorithme. Une recette de cuisine, par exemple, est un algorithme: partir des ingrdients, elle expliquent parvenir au plat. dbut incorporer le beurre dans la farine. ajouter du lait. Mlanger. Si la pte est trop sche, alors ajouter du lait. fin. Un algorithme sert transmettre un savoir faire. Il dcrit les tapes suivre pour raliser un travail

Chapitre 1: Elments de base dun algorithme. Algorithmique et programmation.


Tout problme programmer doit tre rsolu, dabord sous forme dalgorithme, puis converti en programme dans le langage choisi. Lalgorithme est indpendant du langage de programmation utilis. Un programme est un enchanement dinstructions, crit dans un langage de programmation, excutes par un ordinateur, permettant de traiter un problme et de renvoyer des rsultats

Chapitre 1: Elments de base dun algorithme. Structure gnrale dun algorithme.


Un algorithme est compos de trois parties:
Lentte: sert donner un nom lalgorithme, prcde par le mot Algorithme. La partie dclarative: dclaration des diffrents objets que lalgorithme utilise (constantes, variables, etc.). Corps de lalgorithme: contient les instructions de lalgorithme. Elle est dlimiter par les mots Dbut et Fin.

Chapitre 1: Elments de base dun algorithme.


Les variables et les constantes.
Notions de variables: Les donnes ainsi que les rsultats des calculs intermdiaires ou finaux, sont rangs dans des cases mmoires qui correspondent des variables. Dclaration des variables:
Syntaxe: variable identificateur: type. Exemple: variable surface: rel. variable a : entier. variable nom: chane. variable absent: logique.

Les constantes. Comme une variable, il lui correspond un emplacement mmoire rserv , mais dont la valeur ne change jamais au cours du programme.
Syntaxe: Constante nom_de_la_constante = valeur. Exemple: Constante PI=3.14

Chapitre 1: Elments de base dun algorithme.


Les instructions de base.
Une instruction est une action lmentaire commandant la machine un calcule, ou une communication avec lun des priphriques dentre ou de sortie, les instructions de base sont:
linstruction daffectation: Syntaxe: variable Expression. Expression = {identificateur , constante, expression logique, expression arithmtique..}. Linstruction dentre ou de lecture. Donne la main lutilisateur pour saisir une donne au clavier. La valeur saisie sera affecter une variable. Syntaxe: Lire (identificateur). Linstruction de sortie : Permet dafficher des informations sur lcran. Syntaxe: Ecrire (expression).

Chapitre 1: Elments de base dun algorithme.


Les commentaires.
Lorsquun algorithme devient long, il est conseill dajouter des lignes de commentaires dans lalgorithme.
// Commentaire sur une ligne /* Commentaire */ Commentaire /* Commentaire

Sur Plusieurs Lignes*/

Chapitre2 : les structures alternatives et rptitives.


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 rptitives


Introduction. La boucle TantQue..Faire. La boucle PourFaire. La boucle Rpter Jusqu

Chapitre2 : les structures alternatives et rptitives.


Les structures alternatives.
Introduction. Il est souvent ncessaire lorsque lon crit un programme de distinguer plusieurs cas conditionnant lexcution de telles ou telles instruction. Pour ce faire, on utilise une structure alternative : si on est dans tel cas, alors on fait cela sinon on fait ceci. Syntaxe : SI condition ALORS instruction(s)1 [SINON instruction(s)2] FinSI Les crochets signifient que la partie SINON instruction(s)2 est facultative. Les conditions : Pour exprimer les conditions on utilise les oprateurs conditionnels suivants : = gal, < infrieur, > suprieur, <= infrieur ou gal, >= suprieur ou gal, <> diffrent

Chapitre2 : les structures alternatives et rptitives.


Les instructions qui suivent le SINON ou le ALORS peuvent tre :
Une simple instruction Une suite dinstructions spares par des ; Une autre alternative Une rptitive.

La structure de choix : Cas de : Exemple : Lire caractre Cas caractre de 0 9: crire "chiffre"; a z: crire "minuscule"; A Z: crire "majuscule"; Fin cas

Chapitre2 : les structures alternatives et rptitives.


Introduction. Un programme a presque toujours pour rle de rpter une mme action un certain nombre de fois. Pour ce faire on utilise une structure permettant de dire excute telles actions jusqu ce que telle condition soit remplie . Bien quune seule soit ncessaire, la plupart des langages de programmation proposent trois types de structure rptitive. La boucle TantQue..Faire. TantQue condition Faire actions FTQ Ce qui signifie : tant que la condition est vraie, on excute les actions.

Chapitre2 : les structures alternatives et rptitives.


La boucle PourFaire. Trs souvent, on utilise une structure rptitive avec un compteur et on sarrte lorsque le compteur a atteint sa valeur finale. POUR variable ALLANT DE valeur initiale A valeur finale [PAS valeur du pas] FAIRE actions FinPour. La boucle Rpter Jusqu Rpter actions Jusqu conditions Ce qui signifie que lon excute les actions jusqu ce que la condition soit vraie.

Chapitre 3: Les Tableaux


Introduction. Dfinition. Tableau une dimension.
Dclaration. Utilisation.

Tableau deux dimension.


Dclaration. Utilisation.

Tableau dynamique.

Chapitre 3: Les Tableaux


Introduction On peut regrouper plusieurs variables sous un mme nom, chacune tant alors repre par un numro. Cest ce que lon appelle un tableau. On peut faire un tableau avec des variables de nimporte quel type. Dans tous les cas le ime lment dun tableau appel TAB sera adress par TAB (i). Gnralement on fait des tableaux une dimension, mais il existe galement des tableaux deux dimensions, dans ce cas TAB (i,j) reprsente la jme colonne et la ime ligne. TABLEAU type variable [longueur] ;

Chapitre 3: Les Tableaux


Dfinition Un tableau est suite dlments de mme type. Il utilise plusieurs cases mmoire laide dun seul nom. Comme toutes les cases portent le mme nom, elles se diffrencient par un numro ou un indice.

Chapitre 3: Les Tableaux


Dclaration de tableau une dimension Variable identificateur : tableau[taille] de type Exemple :
Variable mot : TABLEAU [10] de caractre ; Variable liste_nb: TABLEAU [25] de rel; Variable A, B : tableau [1..10]

Chapitre 3: Les Tableaux


Utilisation Les lments dun tableau sont des variables indices qui sutilisent exactement comme nimporte quelles autres variables classiques. Elles peuvent faire lobjet dune affectation, elles peuvent figurer dans une expression arithmtique, dans une comparaison, elles peuvent tre affiches et saisie etc. Lutilisation de ces lments se fait ensuite, via le nom du tableau et son indice. Ce dernier peut tre soit une valeur (comme tab[3]), soit une variable (tab[i]) ou encoure une expression (tab[i+1])

Chapitre 3: Les Tableaux


Remarque : ne pas confondre lindice dun lment dun tableau avec son contenu. Exemples :
X note[1] Ecrire(note[4]) Lire(note[3])

Exercice: Ecrire un algorithme permettant de saisir 30 notes et de les afficher aprs avoir multipli toutes ces notes par un coefficient fourni par lutilisateur.

Chapitre 3: Les Tableaux


Solution: Algorithme tableau_note Variable Note: tableau[1..30] de rels coef, i : entier Dbut Ecrire( Entrer le coefficient ) Lire(coef) //remplissage du tableau Note Pour 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

Chapitre 3: Les Tableaux


Tableaux deux dimensions
Reprenons lexemple des notes en considrant cette fois quun tudiant a plusieurs notes (une note pour chaque matire). Pour 4 tudiants .
Matire Informatique Comptabilit Mathmatiques Etudiant1 12 12,5 15 Etudiant2 13 14 12 Etudiant3 9 12 10 Etudiant4 10 11 13

on peut schmatiser ce tableau comme suit:


Indices du tableau
1 2 3 1 12 15 2 13 12 3 9 12 10 4 10 11 13

12,5 14

Chapitre 3: Les Tableaux


Dclaration Exemple : Variable Note: tableau[1..3, 1..4] de rels. X Note[1,1] Parcours complet dun tableau 2 dimensions: Pour parcourir une matrice nous avons besoin de deux boucles, lune au sein de lautre, cest ce quon appelle les boucles imbriques.

Chapitre 3: Les Tableaux


Exercice Ecrire un algorithme qui permet le saisie des notes dune classe de 30 tudiants en 5 matires.

Les structures
Dclaration dune structure La dclaration dune structure ne dfinit aucune variable, elle permet de dfinir un modle de structure cest dfinir un nouveau type. Elle se fait dans une section spciale des algorithmes appele Type, qui prcde la section des variables. Syntaxe: Type structure nom_structure champ1 : type_champ1 champ2: type_champ2 finStruct

Les structures
Contrairement aux tableaux qui permettent de dsigner sous un mme nom un ensemble de valeurs de mme type, chacune dentre elles tant repr par indice, les structures permettent de dsigner sous un seul nom un ensemble de valeurs pouvant tre de types diffrents. Laccs chaque lment de la structure nomm champ se fera, cette fois, non plus avec lindication de position, mais par son nom au sein de la structure. Nous pouvons schmatiser une structure comme suit:
Champ_1 Champ_2 Champ_3 Champ_n

Les structures
Exemple: type structure etudiants Nom: chane prenom: chane age: entier finstruct Dclaration dune variable de type structure. aprs avoir dfini la structure, on peut lutiliser comme un type normale. Exemple: variable etud1, etud2: etudiants. Laccs un champ dune structure Etud1.nom Alami

Les fonctions prdfinies


Introduction Certains traitement sont complexes effectuer par un algorithme. Par exemple, le calcul du cosinus dun angle ncessite une formule complexe. Tous les langages de programmation ont un certain nombre de fonction prdfinies . Les fonctions de chane de caractres: Une chane est une squence de caractre dont la longueur correspond au nombre de caractre quelle contient.

Les fonctions prdfinies


Longueur dune chane Syntaxe : longueur(ch) Elle retourne le nbre de caractre dune chane. Exemple: longueur( bonjour ) elle renvoie 7 Concatnation de chanes Cest la juxtaposition de deux chanes ou plus afin den former une seule. Syntaxe: concat(ch1,ch2) Elle retourne une chane de caractre ch1+ch2 Exemple: concat( boujour , monsieur )

Les fonctions prdfinies


Copie dune chane Syntaxe copie(ch1, position,n) Cette fonction recopie une partie de la chane ch1 partir de la position position un nbre n de caractres. Exemple copie(bonjour,4,4) Elle retourne jour. Comparaison de deux chanes Syntaxe comp(ch1,ch2) Cette fonction compare 2 chanes e caractres en utilisant lordre des caractres dfinies par le code ASCII, elle fournie une valeur entire:

Les fonctions prdfinies


Positive si ch1>ch2 Ngative si ch1<ch2 Nulle si ch1=ch2

Exemple comp( bonjour , monsieur ) retourne une valeur ngative. Recherche dans une chane Cette fonction recherche la 1re occurrence dun caractre dans une chane. Syntaxe recherche(ch1,ch2). Exemple recherche( bonjour monsieur , jour ) retourne la valeur 4

Les fonctions prdfinies


Les fonctions mathmatiques: Elles permettent de raliser des traitements mathmatiques sur des donnes numriques.
fonction Abs(nbre) Ent(nbre) Cos(angle) Sin(angle) Sqrt(nbre) Alea() description Retourne la valeur absolue dun nbre Retourne la partie entire dun nbre Retourne le cosinus dun angle Retourne le sinus dun angle Retourne la racine carre dun nbre Retourne une valeur alatoire entre 0 et 1 exemple X Abs(-12) X Ent(12.3) X Cos(0) X Sin(0) X Sqrt(4) X Alea() rsultat X=12 X=12 X=1 X=0 X=2 0=<X<1

Les fonctions et les procdures


Un algorithme crit dun seul tenant devient difficile comprendre ds quil dpasse deux pages. La solution consiste alors dcouper lalgorithme en plusieurs parties plus petites. Ces parties sont appeles des sous-algorithmes. Le sous algorithme est crit sparment du corps de lalgorithme principal et sera appel par celui-ci quand il est ncessaire. Il en existe deux sortes de sous-algorithmes: les fonctions et les procdures.

Les fonctions et les procdures


Les procdures: Une procdure est une srie dinstructions regroupes sous un nom, qui permet deffectuer des actions par un simple appel de la procdure dans un algorithme ou dans un autre sous algorithme. Une procdure renvoie plusieurs valeurs et non pas une ou aucune valeur

Les fonctions et les procdures


Syntaxe Procdure nom_proc(liste de paramtres) variables identificateurs: type dbut instruction(s) FinProc Exemple: Ecrire une procdure qui affiche lcran une ligne de 15 toiles puis passe la ligne suivante.

Les fonctions et les procdures


Solution: Procdure Etoiles() Variables i : entier Dbut Pour i 1 jusqu 15 faire Ecrire ( * ) Finpour Ecrire( \n ) Finproc

Les fonctions et les procdures


Lappel dune procdure: Pour dclencher lexcution dune procdure dans un programme, il suffit de lappeler pour le nom de la procdure puis la liste des paramtres spars par des virgules. A lappel dune procdure, le programme interrompt son droulement normal, excute les instructions de la procdure, puis retourne au programme appelant et excute linstruction suivante. Exemple Ecrire un algorithme permettant de dessiner un carr dtoiles de 15 lignes et de 15 colonnes.