You are on page 1of 44

Mohammed EL GHZAOUI Anne 2012/2013

Sommaire
2

Introduction l'algorithmique Les Variables Expressions et oprateurs Lecture et Ecriture Les Tests Les Boucles Les Tableaux Tableaux Multidimensionnels Procdures et Fonctions
Supmanagement 2012/2013 M. EL GHZAOUI

Avant propos
3

Exemple dun algorithme: Considrons la suite d'instructions suivante : 1. Faites chauffer de l'eau dans une casserole 2. Une fois que l'eau boue, placez les ptes dans l'eau 3. Attendez dix minutes 4. Versez le tout dans un cumoire

5. Vos ptes sont prtes.

Supmanagement 2012/2013

M. EL GHZAOUI

Avant propos
4

Cette recette ne vous expose pas le dtail des ractions chimiques qui font que les ptes cuisent en dix minutes, ni pourquoi il faut les goutter.

Il s'agit seulement d'une suite d'instructions devant tre excutes la lettre. Si vous ne les suivez pas, vous prenez le risque que le rsultat ne soit pas celui que vous attendez.

Si vous dcidez de suivre une recette, vous dcidez de vous


conformer aux instructions sans poser de questions.

Supmanagement 2012/2013

M. EL GHZAOUI

Avant propos
5

Exemple: Mode demploi dun tlcopieur Extrait du mode demploi dun tlcopieur concernant lenvoi dun document. 1. Insrez le document dans le chargeur automatique.

2.Composez le numro de fax du destinataire laide du pav


numrique. 3. Enfoncez la touche envoi pour lancer lmission.

Supmanagement 2012/2013

M. EL GHZAOUI

Avant propos
6

Ce mode demploi prcise comment envoyer un fax. Il est compos dune suite ordonne dinstructions: insrez..., composez..., enfoncez...)

o o o

Qui manipulent des donnes (document, chargeur automatique, numro de fax, pav numrique, touche envoi) pour raliser la tche dsire (envoi dundocument).

Supmanagement 2012/2013

M. EL GHZAOUI

Avant propos
7

Exemple: Trouver son chemin Extrait dun dialogue entre un touriste gar et un autochtone. Pourriez vous mindiquer le chemin de lagare, sil vous plait? Oui bien sr : vous allez tout droit jusquau prochain carrefour, vous prenez gauche au carrefour et ensuite la troisime droite, et vous verrez la gare juste en face de vous. Merci.

Supmanagement 2012/2013

M. EL GHZAOUI

Avant propos
8

Dans ce dialogue, la rponse de lautochtone est la description dune suite ordonne dinstructions (allez tout droit, prenez gauche, prenez la troisime droite) qui manipulent des donnes (carrefour, rues) pour raliser la tche dsire (aller la gare).

Dans ce cours, nous devrons apprendre dfinir des

algorithmes pour quils soient comprhensibles et donc


excutables par un ordinateur.

Supmanagement 2012/2013

M. EL GHZAOUI

Avant propos
9

Nous retiendrons donc que Un algorithme est une squence d'instructions excute de faon logique mais non intelligente.

Logique parce que la personne (ou la machine) qui excute les

instructions est capable de comprendre et excuter sans erreur


chacune d'elles.

Non intelligente parce que la personne qui excute l'algorithme

n'est pas suppose apte comprendre pourquoi la succession


d'tapes dcrite par l'algorithme donne bien un rsultat correct.

Dfinitions
10

QUEST-CE QUUN ALGORITHME ?

Le mot algorithme provient du nom d'un clbre mathmaticien

arabe du IXe sicle: Mohammed Ibn Musa al Khwarizmi. But dun algorithme : Rsolution dun problme algbrique, numrique ou dcisionnel. Algorithme : Suite dinstructions qui, une fois excute, conduit un rsultat. Intrt : Explicite clairement les ides de solutions d'un problme indpendamment d'un langage de programmation.

Le programme sert ensuite automatiser un calcul.


M. EL GHZAOUI

Supmanagement 2012/2013

Dfinitions
11

Dfinitions dun algorithme : est une suite finie dinstructions appliquer dans un ordre dtermin un nombre fini de donnes pour arriver un certain rsultat. est une dmarche logique de rsolution d'un problme . est un langage de description utilis pour crire le rsultat de lanalyse. est une suite d'actions que devra effectuer pour arriver en un temps fini, un rsultat dtermin partir d'une situation donne. Exemple - trier une liste par ordre alphabtique - trouver un chemin pour aller dune station de mtro a une autre - calculer la factorielle dun nombre

Supmanagement 2012/2013

M. EL GHZAOUI

tapes de rsolution dun problme


12

La rsolution dun problme sur ordinateur passe par trois tapes


essentielles : Comprendre le problme pos.

Associer chaque sous problme, une spcification :


Les donnes ncessaires Les donnes rsultantes La dmarche suivre pour arriver au rsultat en partant d'un ensemble de donnes. Elaboration d'un algorithme
Supmanagement 2012/2013 M. EL GHZAOUI

Qualits d'un algorithme, d'un programme.


13

Pour obtenir un bon programme, il faut partir d'un bon algorithme qui doit, entre autres, possder les qualits suivantes:
Etre clair, facile comprendre par tous ceux qui le lisent.
Prsenter la plus grande gnralit possible pour rpondre au plus grand nombre de cas possibles. Etre d'une utilisation facile mme par ceux qui ne l'ont pas crit.

Supmanagement 2012/2013

M. EL GHZAOUI

Comment crit-on un algorithme ?


14

Les actions sont gnralement dcrites par un symbole Eviter les confusions. Le langage algorithmique est appel pseudo-code. Pour crire un algorithme, on commence par: le titre (de lalgorithme), les donnes fournies lordinateur, le rsultat souhait. Puis on donne la squence dinstructions comprise entre les deux termes: Dbut (indiquant le dbut des instructions) Fin (indiquant la fin des instructions).

Supmanagement 2012/2013

M. EL GHZAOUI

validit dun algorithme


15

La validit dun algorithme est son aptitude raliser exactement la tche pour la quelle il a t conu. Si lon reprend lexemple de lalgorithme de recherche du chemin de la gare, ltude de sa validit consiste sassurer quon arrive effectivement la gare en excutant scrupuleusement les instructions dans lordre annonc.

Supmanagement 2012/2013

M. EL GHZAOUI

Robustesse et efficacit dun algorithme


16

La robustesse dun algorithme est son aptitude se protger de conditions anormales dutilisation.

Dans lexemple (chemin de la gare), la question de la robustesse de lalgorithme se pose par exemple si le chemin propos t pens pour un piton, alors que le touriste gar est en voiture et que la troisime droite est en sens interdit.

Lefficacit dun algorithme est son aptitude utiliser de manire optimale les ressources du matriel qui lexcute.

Nexister ait-il pas un raccourci pitonnier pour arriver plus vite lagare?

Supmanagement 2012/2013

M. EL GHZAOUI

Syntaxe dun algorithme


17

Declaration (Variables): Dbut Bloc dinstruction 1 Bloc dinstruction 1 Bloc dinstruction 1 : : Fin

Supmanagement 2012/2013

M. EL GHZAOUI

Les types de donnes


18

Un type en algorithmique est une information permettant de traduire les valeurs depuis une

reprsentation binaire (celle de lordinateur) vers une autre reprsentation plus adapte leur
programmation dans un langage volu. Le rle du type est dassurer cette traduction en indiquant quelle place en mmoire occupe la valeur et quelle est la technique de codage utilise. Nous distinguons quatre types lmentaires en algorithmique : Entier : Stocker des valeurs entires, positives ou ngatives et occupe quatre octets (32 bits) en mmoire. Rel : Stocker les nombres virgule. Un rel occupe huit octets (64 bits) en mmoire. Caractre : Stocker les caractres. Un caractre occupe un octet (8 bits)en mmoire. Boolen : Stocker les valeurs de type vrai/faux. Un boolen occupe un octet (8 bits) en mmoire.

Supmanagement 2012/2013

M. EL GHZAOUI

Les variables
19

Une variable est une donne quun programme peut manipuler. Tout variable possde : Un type (entier, rel, caractre ou boolen). Un nom ou identificateur que lutilisateur choisit ; il permet au programme de reconnatre quelle donne il doit manipuler. Une valeur qui peut voluer au cours du programme, mais qui doit respecter le type.

Supmanagement 2012/2013

M. EL GHZAOUI

Les variables
20

Lidentificateur ou nom de la variable peut tre quelconque, mais doit respecter les critres suivants : un identificateur commence toujours par une lettre minuscule ; les majuscules et les minuscules sont des lettres diffrentes : les identificateurs toto et Toto sont diffrents ; le nom de variable doit avoir une relation avec le rle de cette variable et tre comprhensible.

Seules les lettres ordinaires sont autorises. Les lettres accentues, les cdilles, les espaces, les caractres spciaux tels que $, #, @, etc. sont interdits, lexception du caractre _ (soulign); Le langage lui-mme peut se rserver quelques noms. Ces mots rservs ne peuvent donc pas tre utiliss comme noms de variable.

Supmanagement 2012/2013

M. EL GHZAOUI

Les variables
21

Exemples

taux : rel Cre une variable nomme taux Stocke des nombres virgule. taux =0.2 , taux=0.23, x: entier x est lidentificateur de entier . x=49, x=20, x=150,.

Supmanagement 2012/2013

M. EL GHZAOUI

Constantes
22

Les constantes Ce sont des objets qui ne peuvent pas varier dans lalgorithme. Une constante est une quantit fixe. Invariante durant l'excution d'un algorithme.
Exemples: PI=3.14 N=100 TVA=20%

Supmanagement 2012/2013

M. EL GHZAOUI

Oprations et oprateurs de base


23

Affectation

Elle consiste attribuer (donner) une valeur ou une expression une variable.
Elle est note par le symbole. Syntaxe

Nom_variable Valeur

Nom_variable Nom_variable
Nom_variable Expression Nom "algorithme" Prix_HT 10 A5 BA

Exemples :

Supmanagement 2012/2013

M. EL GHZAOUI

Oprations et oprateurs de base


24

Affectation

<nomvariable> est le nom de la variable dont on souhaite modifier la valeur, <valeur> est la valeur que lon veut placer dans la variable. Notez bien que cette valeur doit tre de mme type que la variable. Par exemple:

A 5 : place la valeur 5 dans la variable A. Si A contenait


pralablement une valeur, celle-ci est crase. Il est possible d'affecter une variable le rsultat d'une opration arithmtique (A B+2).

Supmanagement 2012/2013

M. EL GHZAOUI

Oprations et oprateurs de base


25

Affectation

On peut aussi affecter une variable la valeur d'une autre variable:

A B A B+5 La premire instruction lit la valeur de B et la recopie dans A la deuxime instruction, donc excute aprs la premire, lit la valeur de B, lui additionne 2, et recopie le rsultat dans A. Le fait que lon affecte A la valeur de B ne signifie pas que ces deux variables auront dornavant la mme valeur. Cela signifie que la valeur contenue dans B est crase par la valeur que contient A au moment de l'affectation. Si la par la suite, la valeur de A est modifie, alors la valeur de B restera inchange.
Supmanagement 2012/2013 M. EL GHZAOUI

Oprations et oprateurs de base


26

Affectation Si la par la suite, la valeur de .A est modifie, alors la valeur de B restera inchange. Il est possible de faire figurer une variable simultanment gauche et droite d'une affectation : A A+5 Cette instruction augmente de 5 la valeur contenue dans A, cela s'appelle une incrmentation. Exemple: Quelles sont les valeurs des variables aprs l'excution des instructions suivantes? A1 B2 C3 DA AC+l BD+C CD+l
M. EL GHZAOUI

Supmanagement 2012/2013

Oprations et oprateurs de base


27

Construisons un tableau nous montrant les valeurs des variables au fil des affectations :

n.i signifie ici non initialise.

Oprations et oprateurs de base


28

Une variable est non initialise si aucune valeur ne lui a t explicitement affecte. A < 1 modifie la valeur contenue dans la variable A. A ce moment l de l'excution, les valeurs des autres variables sont inchanges. B < 2 modifie la valeur de B, les deux variables A et B sont maintenant initialises. C < 3 et D < A initialisent les deux variables C et D, maintenant toutes les variables sont initialises. Vous remarquerez que D a t initialise avec la valeur de A, comme A est une variable initialise, cela a un sens. Par contre, si lon avait affect D le contenu d'une variable non initialise, nous aurions excut une instruction qui n'a pas de sens. Vous noterez donc qu'il est interdit de faire figurer du cot droit d'une affectation une variable non initialise.

Oprations et oprateurs de base


29

Oprateurs Permettent de produire un effet sur les objets d'un algorithme (variables et constantes) Effectuent des calculs, des vrifications d'galits et d'ingalits. On peut les classer en trois classes : arithmtiques, logiques et relationnels Il est a noter qu'il n'existe pas de vritable standard sur la forme d'criture des oprateurs algorimiques, mais seulement une tendance trs prononces pour les symboles mentionns.

Supmanagement 2012/2013

M. EL GHZAOUI

Oprations et oprateurs de base


30

Oprateurs arithmtiques:

Ce sont des oprateurs qui oprent sur les objets numriques.

Supmanagement 2012/2013

M. EL GHZAOUI

Oprations et oprateurs de base


31

Oprateurs Logiques :

Ce sont des oprateurs qui oprent sur les boolens.

Oprateurs de comparaison :

Ce sont des oprateurs qui oprent sur les types numriques.

Supmanagement 2012/2013

M. EL GHZAOUI

Oprations et oprateurs de base


32

Expressions

Une expression est une combinaison de variables, de constantes et d'oprateurs.


Exemples: (a+b)*(c-d)/2 a div b TTC=HT+HT*TVA

Exercice: crire un algorithme qui, tant donns deux nombres entiers, calcule leur somme et leur produit.

Supmanagement 2012/2013

M. EL GHZAOUI

Oprateurs dentre/sortie
33

Ecrire

Permet dafficher :

Texte ou les valeurs des variables.

On utilise afficher, suivi entre parenthses des diffrents lments faire apparatre lcran. Le texte crit entre doubles guillemets,

Le texte apparat tel quel lcran.


Lexpression, cest la valeur numrique du calcul de cette expression qui est affiche. Les lments successifs afficher sont spars par une virgule. Syntaxe :

Ecrire "texte /message:";


Ecrire variables; Ecrire "message:",variable;

Supmanagement 2012/2013

M. EL GHZAOUI

Oprateurs dentre/sortie
34

Lire

Permet dinitialiser une variable partir dune saisie faite au clavier. On utilise Lire, suivi entre parenthses du nom de la variable que lon veut saisir. Ds que le programme rencontre une instruction Lire, lexcution sinterrompt, attendant la frappe dune valeur au clavier.

Syntaxe : Lire variable1, variable2. . .variablen


lire Nom

Exemples:

lire A
lire X, Y

Supmanagement 2012/2013

M. EL GHZAOUI

La slection (instruction alternative)


35

Reprenons le cas de notre programmation algorithmique du touriste gar . Normalement, lalgorithme ressemblera quelque chose comme : Allez tout droit jusquau prochain carrefour, puis prenez droite et ensuite la deuxime gauche, et vous y tes . Mais en cas de doute lgitime de votre part, cela pourrait devenir : Allez tout droit jusquau prochain carrefour et l regardez droite. Si la rue est autorise la circulation, alors prenez la et ensuite cest la deuxime gauche. Mais si en revanche elle est en sens interdit, alors continuez jusqu la prochaine droite, prenez celle-l, et ensuite la premire droite .

Supmanagement 2012/2013

M. EL GHZAOUI

La slection (instruction alternative)


36

Linstruction SI

Elle permet de choisir suivant une condition entre deux blocs d'instructions. Il ny a que deux formes possibles pour un test. Exemple Si condition Alors Si x>0 Alors Instructions ecrire (" x est positive"); Finsi Finsi Si condition Alors Instructions 1 Sinon Instructions 2 Finsi Exemple Si x>0 Alors ecrire (" x est positive"); Sinon ecrire (" x est ngative"); Finsi

Supmanagement 2012/2013

M. EL GHZAOUI

37

Exprim sous forme de pseudo-code, la programmation de notre touriste de tout lheure donnerait donc quelque chose du genre :
Allez tout droit jusquau prochain carrefour Si la rue droite est autorise la circulation Alors Tournez droite Avancez Prenez la deuxime gauche Sinon Continuez jusqu la prochaine rue droite Prenez cette rue Prenez la premire droite Finsi

38

Conditions composes
Certains

problmes exigent parfois de formuler des conditions, linformatique met notre disposition quatre oprateurs logiques : ET, OU, NON, et XOR.

39

ET

Le ET a le mme sens en informatique que dans le langage courant. Pour que "Condition1 ET Condition2" soit VRAI, il faut imprativement que Condition1 soit VRAI et que Condition2 soit VRAI. Dans tous les autres cas, "Condition 1 et Condition2" sera faux.

40

OU

Il faut se mfier un peu plus du OU. Pour que "Condition1 OU Condition2" soit VRAI, il suffit que Condition1 soit VRAIE ou que Condition2 soit VRAIE. Le point important est que si Condition1 est VRAIE et que Condition2 est VRAIE aussi, Condition1 OU Condition2 reste VRAIE. Le OU informatique ne veut donc pas dire ou bien

41

XOR

Le XOR (ou OU exclusif) fonctionne de la manire suivante. Pour que "Condition1 XOR Condition2" soit VRAI, il faut que soit Condition1 soit VRAI, soit que Condition2 soit VRAI. Si toutes les deux sont fausses, ou que toutes les deux sont VRAI, alors le rsultat global est considr comme FAUX. Le XOR est donc l'quivalent du "ou bien" du langage courant. Jinsiste toutefois sur le fait que le XOR est une raret, dont il nest pas strictement indispensable de sencombrer en programmation.

42

NON

NON inverse une condition : NON(Condition1)est VRAI si Condition1 est FAUX, et il sera FAUX si Condition1 est VRAI. Alors, vous vous demandez peut-tre quoi sert ce NON. Aprs tout, plutt qucrire NON(Prix > 20), il serait plus simple dcrire tout bonnement Prix=<20. Dans ce cas prcis, cest vident quon se complique inutilement la vie avec le NON. Mais si le NON n'est jamais indispensable, il y a tout de mme des situations dans lesquelles il s'avre bien utile.

43

Tests imbriqus
Variable Temp en Entier Dbut Ecrire "Entrez la temprature de leau :" Lire Temp Si Temp =< 0 Alors Ecrire "Cest de la glace" FinSi Si Temp > 0 Et Temp < 100 Alors Ecrire "Cest du liquide" Finsi Si Temp > 100 Alors Ecrire "Cest de la vapeur" Finsi Fin

44

Les conditions se ressemblent plus ou moins, et surtout on oblige la machine examiner trois tests successifs alors que tous portent sur une mme chose. Il serait ainsi bien plus rationnel dimbriquer les tests de cette manire :
Variable Temp en Entier Dbut Ecrire "Entrez la temprature de leau :" Lire Temp Si Temp =< 0 Alors Ecrire "Cest de la glace" Sinon Si Temp < 100 Alors Ecrire "Cest du liquide" Sinon Ecrire "Cest de la vapeur" Finsi Finsi Fin

You might also like