Professional Documents
Culture Documents
Techniques algorithmiques
Thmes abords
Comment concevoir un algorithme Q l Quelques techniques algorithmiques usuelles t h i l ith i ll
Mthodologies
Nature du problme
Mthodologies
Prsentation
Constat
Il existe des dizaines de mthodologies. Les mthodologies ne savent pas programmer notre place. La programmation reste un art difficile difficile.
Ncessite de la pratique.
Une mthodologie
Peut vous proposer un cadre formel. Ne peut pas rflchir votre place.
Une fois quune dmarche est trouve, analyser tape par tape ce que vous faites. Identifier ensuite les structures de contrle. Et noter les grandes lignes de lalgorithme.
Les organigrammes
Prsentation
dbut dbut
Mot
Gauche := 1 ; Droite := N ;
vrai Gauche >Droite? faux Milieu := (Gauche + Droite) / 2 "PAS TROUVE" fin
vrai Dico (Milieu) = Mot? faux Dico (Milieu) < Mot? faux Droite:= Milieu - 1 Milieu fin
Les organigrammes
Symboles
itrations action 2
condition
Les organigrammes
Analyse
Donc
Analyse et programmation 1 - Techniques algorithmiques 8
Les structogrammes
Nassi Shneiderman Diagram (NSD) - Prsentation Reprsentation graphique des structures de contrle, invente en 1972.
Limbrication graphique traduit limbrication logique. L imbrication l imbrication logique Diffrents symboles pour les structures de contrle habituelles.
squence
1er bloc structurel oui 2me bloc structurel 3me bloc structurel THEN - bloc ELSE - bloc
Alternative
Condition non
itration
DO WHILE (condition)
imbrication
1er bloc structurel 2me bloc structurel 3me bloc structurel
Bloc rptitif
Les structogrammes
Illustration
DO WHILE (condition) ( )
10
Les structogrammes
Analyse
Limitations
Des niveaux dimbrication multiples deviennent peu lisibles. Un outil ddition est indispensable (ou alors une bonne gomme).
Donc
11
Le pseudo code
Prsentation Principe du pseudo code
Pseudos instructions traduisant les structures de contrle.
SI . . . ALORS . . . SINON . . . SELECTION SUR I . . . 1 => . . . 2=> FAIRE . . . TANT QUE . . . TANT QUE . . . FAIRE
Indpendance par rapport la syntaxe relle du langage cible. On laisse de ct laspect dclaration des variables. Moyen rapide et simple de structurer ses ides.
Exemple
FAIRE Saisir X SI X < 0 ALORS Afficher un message derreur TANT QUE X < 0
12
Le pseudo code
Table de symboles
Table de symboles
Elle prcde le pseudo code Elle prcise
Le nom de lobjet : X Sa nature (variable, constante) : Son type de donnes : rel, entier rel entier, Un descriptif quand le nom nest pas assez explicite.
Exemple
Somme : rel, accumulateur pour la somme des rels saisis
Analyse et programmation 1 - Techniques algorithmiques 13
Le pseudo code
Analyse
Avantages
Trs similaire a code final au Donc, pas deffort de traduction particulier. Trs efficace, on ignore les exigences syntaxiques du langage cible. Structur. Documente lalgorithme pour les volutions futures. Ne ncessite aucun outil particulier.
Inconvnients
Laisse beaucoup (trop) de libert. Textuel : permet certaines ambiguts.
14
Mthodologie
Quelle approche choisir
15
Mthogologie
Comment choisir la structure de contrle adapte
Squence
Solution gnrale Dans une expression Conditions boolennes
Algorithme
Choisir un traitement
Slection
Rpter un traitement
Itration
16
17
Contexte
2 variables contiennent des valeurs diffrentes ariables ale rs diffrentes. On veut changer leurs valeurs.
But
Utile pour de nombreux algorithmes. Exemples
Ordonner 2 nombres. Rtablir les bornes d un intervalle. dun intervalle
18
10
21
11
22
Machine dassemblage
Quantit totale de colle dj utilise
Calcul de moyenne
En combinaison avec un comptage
12
But : rechercher le plus petit ou le plus grand lment d une dune collection par programme. programme Exemples
Station mto, thermomtre lectronique de conglateur :
Mmoriser les tempratures minimales et maximales.
25
13
But :
Rpter plusieurs fois un traitement l i mme constit d ne pl sie rs n traitement, lui constitu dune rptition.
Exemples
Machine de soudage :
Produire 100 pices Pour chaque pice, effectuer 15 points de soudure.
27
14
28
29
15
Quavons-nous appris ?
Comment formaliser un algorithme
Graphiq ement : organigramme str ctogramme Graphiquement organigramme, structogramme. Textuellement : pseudo code
30
Vos questions
31
16
32
17