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
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.
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.
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).
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.
Dfinitions
10
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.
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
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
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
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
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
Declaration (Variables): Dbut Bloc dinstruction 1 Bloc dinstruction 1 Bloc dinstruction 1 : : Fin
Supmanagement 2012/2013
M. EL GHZAOUI
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
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
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:
Supmanagement 2012/2013
M. EL GHZAOUI
Affectation
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
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
Construisons un tableau nous montrant les valeurs des variables au fil des affectations :
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.
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
Oprateurs arithmtiques:
Supmanagement 2012/2013
M. EL GHZAOUI
Oprateurs Logiques :
Oprateurs de comparaison :
Supmanagement 2012/2013
M. EL GHZAOUI
Expressions
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 :
On utilise afficher, suivi entre parenthses des diffrents lments faire apparatre lcran. Le texte crit entre doubles guillemets,
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.
Exemples:
lire A
lire X, Y
Supmanagement 2012/2013
M. EL GHZAOUI
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
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