Professional Documents
Culture Documents
M HIMMI (FSR)
Dfinition
Algorithme est un terme d'origine arabe, comme algbre, amiral, alcool, haras, chiffre, Un algorithme, c'est une suite finie d'instructions, qui une fois excute correctement, conduit un rsultat donn Si l'algorithme est juste, le rsultat est le rsultat voulu sinon le rsultat est, disons, alatoire Un algorithme est une mthode de rsolution d'un problme qui utilise un nombre fini d'tapes
FSR - M. HIMMI 2011
2
Dfinition
Un algorithme doit contenir uniquement des instructions comprhensibles par celui qui devra l'excuter ! La matrise de l'algorithmique requiert deux qualits: Avoir une certaine intuition. Etre mthodique et rigoureux.
Notation
Plusieurs types de notations ont reprsent des algorithmes: La reprsentation graphique, avec des carrs, des losanges, etc. qu'on appelait des organigrammes: Quasiment abandonne Utilisation d'un "pseudo-code". Il ressemble un langage de programmation sans les problmes de syntaxe. Ce pseudo-code est susceptible de varier lgrement d'un auteur un autre, tout en gardant la mme philosophie...
FSR - M. HIMMI 2011
4
Instruction
Les ordinateurs ne sont capables de comprendre que quatre familles d'instructions:
Instruction
Un algorithme se ramne toujours la combinaison de ces quatre petites briques de base L'ordre dans lequel les instructions sont crites joue un rle essentiel dans le rsultat final
La taille d'un algorithme ne conditionne pas sa complexit : de longs peuvent tre assez simples et de petits trs compliqus.
Cycle de production
Problme tudier le problme Mthode de rsolution
Documentation
Formulation
Ok
Tests
Ok Programmation
Exemples
FSR - M. HIMMI 2011
Algorithme
Variables
Ds quon a besoin de stocker une information au cours d'un programme, on utilise une variable Une variable est un emplacement de mmoire repr par une adresse binaire.
Variables
Avant d'utiliser des variables, il faut les dclarer:
Variables
Types numriques classiques le type de variable choisi pour un nombre dtermine: les valeurs maximales et minimales des nombres pouvant tre stocks dans la variable la prcision de ces nombres (dans le cas de nombres dcimaux)
10
Variables
Type alphanumrique (ou chane de caractres) Pour stocker des caractres: (entre guillemets " ") Lettres signes de ponctuation Espaces Chiffres Type boolen Pour stocker les valeurs logiques (VRAI et FAUX)
FSR - M. HIMMI 2011
11
Variables
En pseudo code une dclaration s'crit: Variable g en Numrique ou Variables PrixHT, TauxTVA, PrixTTC en Numrique
Type Numrique Plage
Byte (octet)
0 255
Rel double
1,7x10-308 1,7x10308
FSR - M. HIMMI 2011
12
Variables
Une variable possde un moment donn une valeur et une seule. A la rigueur, elle peut ne pas avoir de valeur du tout
Cette valeur ne "varie" que lorsqu'elle est l'objet d'une instruction d'affectation.
FSR - M. HIMMI 2011
13
Laffectation
La seule chose qu'on puisse faire avec une variable: lui attribuer une valeur L'instruction d'affectation se note: Ainsi : Toto 24
Laffectation
On peut attribuer une variable la valeur d'une autre variable Tutu Toto la valeur de Tutu est maintenant celle de Toto
15
Laffectation
Dans une instruction d'affectation, on trouve : gauche de la flche, un nom de variable droite de la flche, une expression.
Loprateur
Un oprateur est un signe qui relie deux valeurs pour produire un rsultat.
Les oprateurs dpendent du type des valeurs qui sont en jeu.
17
Oprateurs
Oprateurs numriques: + : addition * : multiplication - : soustraction / : division
* et / ont priorit sur + et (idem qu'en maths) Pour modifier cette priorit: utiliser des parenthses Oprateur alphanumrique de concatnation: Oprateurs logiques: ET,
&
Exercice 1
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ? Variables A, B en Entier Dbut A1 BA+3 A3 Fin
FSR - M. HIMMI 2011
19
Exercice 2
Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ? Variables A, B, C en Entier Dbut A5 B3 CA+B A2 CBA Fin
FSR - M. HIMMI 2011
20
Exercice 3
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier Dbut A5 BA+4 AA+1 BA4 Fin
FSR - M. HIMMI 2011
21
Exercice 4
Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ? Variables A, B, C en Entier Dbut A3 B 10 CA+B BA+B AC Fin
FSR - M. HIMMI 2011
22
Exercice 5
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ? Variables A, B en Entier Dbut A5 B2 AB BA Fin Les deux dernires instructions permettent-elles dchanger les deux valeurs de B et A ? Si lon inverse les deux dernires instructions, cela change-t-il quelque chose ?
FSR - M. HIMMI 2011
23
Exercice 6
Ecrire un algorithme permettant dchanger les valeurs de deux variables A et B, et ce quel que soit leur contenu pralable.
24
Exercice 7
On dispose de 3 variables A, B et C. Ecrivez un algorithme transfrant B la valeur de A, C la valeur de B et A la valeur de C ( quels que soient les
contenus pralables de ces variables ).
25
Exercice 8
Que produit lalgorithme suivant ? Variables A, B, C en Caractres Dbut A "423" B "12" CA+B Fin
FSR - M. HIMMI 2011
26
Exercice 9
Que produit lalgorithme suivant ? Variables A, B en Caractres Dbut A "423" B "12" CA&B Fin
FSR - M. HIMMI 2011
27
Lecture et Ecriture
Pour permettre la machine de dialoguer avec l'utilisateur: Lecture: rentrer des valeurs au clavier criture: affichage l'cran
FSR - M. HIMMI 2011
28
Lecture et Ecriture
Instruction de lecture:
Lire Titi
l'excution s'interrompt attendant la frappe d'une valeur au clavier, ds que la touche Entre est frappe,l'excution reprend.
Instruction dcriture:
Ecrire Toto
FSR - M. HIMMI 2011
29
Lecture et Ecriture
Avant de Lire une variable, il est trs fortement conseill d'crire des libells l'cran, afin de prvenir l'utilisateur de ce qu'il doit frapper !
30
Exercice 10
Que produit lalgorithme suivant ? Variables val, double numriques Dbut Val 231 Double Val * 2 Ecrire Val Ecrire Double Fin
FSR - M. HIMMI 2011
31
Exercice 11
Ecrire un algorithme qui demande un nombre lutilisateur, puis calcule et affiche le carr de ce nombre.
32
Exercice 12
Ecrire un algorithme qui lit le prix HT dun article, le nombre darticles et le taux de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libells apparaissent clairement.
FSR - M. HIMMI 2011
33
Tests
Une condition est une expression compose de trois lments: une valeur un oprateur de comparaison une autre valeur
36
Tests
Les oprateurs de comparaison sont:
gal = diffrent de <> strictement plus petit que < strictement plus grand que > plus petit ou gal <= plus grand ou gal >=
FSR - M. HIMMI 2011
37
Tests
Conditions composes: (expression) Quatre oprateurs logiques: ET, OU, NON, et XOR ET Vrai Faux Vrai Vrai Faux Faux Faux Faux XOR Vrai Faux Vrai Vrai Faux Faux Faux Vrai
FSR - M. HIMMI 2011
OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux NON Vrai Faux
Faux Vrai
38
Tests
ET ou OU ? (transf. de Morgan)
les parenthses jouent un rle fondamental diffrentes possibilits, le choix est une affaire de style
39
Tests
Tests imbriqus Si boolen1 Alors instructions Si boolen2 Alors instructions Sinon instructions Finsi Finsi
FSR - M. HIMMI 2011
Les tests imbriqus sont des outils de simplification et d'optimisation des algorithmes
40
Tests
SinonSi Sinon et Si peuvent tre Si boolen1 Alors fusionns en instructions un SinonSi. SinonSi boolen2 alors instructions C'est un seul sinon bloc de test, instructions termin par un seul FinSi Finsi
41
Exercice 13
Ecrire un algorithme qui demande trois nombres lutilisateur et linforme ensuite sils sont rangs ou non dans lordre croissant.
42
Exercice 14
Ecrire un algorithme qui demande un nombre lutilisateur, et linforme ensuite si ce nombre est positif, ngatif ou nul.
43
Exercice 15
Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si le produit est ngatif, positif ou nul. On ne doit pas calculer le produit !
44
Exercice 16
Ecrire un algorithme qui demande lge dun enfant lutilisateur. Ensuite, il linforme de sa catgorie:
"Poussin" de 6 7 ans "Pupille" de 8 9 ans "Minime" de 10 11 ans "Cadet" aprs 12 ans Peut-on concevoir plusieurs algorithmes quivalents menant ce rsultat ?
FSR - M. HIMMI 2011
45
Exercice 17
Ecrire un algorithme qui lira au clavier lheure et les minutes, et affichera lheure quil sera une minute plus tard. Si l'utilisateur tape 21 puis 32, l'algorithme doit rpondre : "Dans une minute, il sera 21 heure(s) 33".
On suppose que l'utilisateur entre une heure valide.
FSR - M. HIMMI 2011
46
Exercice 18
Un magasin de photocopie facture 0,50Dh les dix premires pages, 0,40Dh les vingt suivantes et 0,20Dh au-del. Ecrivez un algorithme qui demande lutilisateur le nombre de photocopies effectues et qui affiche le montant payer.
FSR - M. HIMMI 2011
47
49
Boucles
viter !
Examinons l'algorithme suivant : Variable T en Entier Dbut Pour T 1 15 TT*2 Ecrire "Passage numro : ", T T Suivant Fin
FSR - M. HIMMI 2011
52
Exercice 19
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu ce que la rponse convienne. En cas de rponse suprieure 20, on fera apparatre un message : Plus petit !, et inversement, Plus grand ! si le nombre est infrieur 10.
53
Exercice 20
Ecrire un algorithme qui demande un nombre de dpart, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 27.
54
Exercice 21
Ecrire un algorithme qui demande un nombre de dpart, et qui ensuite crit la table de multiplication de ce nombre, prsente comme suit (l'utilisateur entre le nombre 7): Table de 7 : 7x1=7 7 x 2 = 14 7 x 10 = 70
FSR - M. HIMMI 2011
55
Exercice 22
Ecrire un algorithme qui demande un nombre de dpart, et qui calcule sa factorielle.
56
Exercice 23
Ecrire un algorithme qui demande successivement 20 nombres lutilisateur, et qui lui dise ensuite quel tait le plus grand parmi ces 20 nombres et sa position
57
58