11
1Commentaborderunproblème
«Cequel’onconçoitbiens’énonceclairement,
etles
motspourledirearriventaisément.»
NicolasBoileau
Objectifduchapitre
Présenteruneméthodesimpleservantàrésoudreunegrande variétéde
problèmes.
Ilseraitfaciledecroirequelaprogrammationserésumesimplementà
l’écritured’unpro
gramme,soitd’unesuited’instructionsécritessousuneforme
quel’ordinateurpeutcomprendre
pourtraiterunproblèmeoupoureffectuerune
tâche.Enréalité,laprogrammationconstitueun
exercicebeaucouppluslargequi
englobedesactivitésdeconception,d’écriture,detestetde
maintenance;elle
s’apparenteautant,voiredavantage,àlarésolutiondeproblèmesqu’àl’écriture
decode.
Danscechapitre,nousétudieronsunethodesimpledécrivantcomment
aborderunproblème
etpouvantêtreutiliséenonseulementlorsdudéveloppement
d’uneapplicationlogicielle,mais
égalementdanslaviedetouslesjours.
1Lesbasesdelaprogrammation
12
1.1Méthodederésolutiondeproblèmes
Laméthodeproposéecomportequatreétapesessentiellesàlarésolutionde
toutproblème1:
1.
Compréhensionduproblème;
2.
Recherched’unesolution;
3.
Implémentationd’unesolution;
4.
Testsetvalidationdel’implémentation.
1.1.1Compréhensionduproblème
Avantd’entreprendrequelqueactionquecesoit,ilimportedebiencomprendreleproblème.Il
fautdoncs’assurerdebiensaisirl’énoncéduproblème
etd’identifierl’ensembledesobjectifsà
atteindrepoursolutionnerleproblème.
Ilestinutiledetenterdecoderquoique
cesoitavantd’avoircomprisleproblèmeàrésoudre.
1.1.2Recherched’unesolution
Unefoisleproblèmebiencompris,l’étapesuivanteconsisteàeffectuer
unremueméningesafin
d’élaborerunouplusieursalgorithmespermettantde
solutionnerleproblèmeetd’atteindreles
objectifsidentifiésàl’étapeprécédente.
Unalgorithmeestuneséquenced’instructionspermettantderéaliser
unetâcheenunnombrefinid’étapes.
Quelquesexemplesd’algorithme:
unerecettedecuisine;
lesdirectivespourserendred’unpointdedépartàunpointd’arrivée;
lesinstructionsàsuivrepourassemblerunmeuble.
Puisquelacréationd’algorithmespeuts’avérertrèsardue,ilnefautpashésiter
àvérifiersiun
problèmeadéjàétérésoluouencoreàs’inspirerd’unalgorithme
conçupourrésoudreun
problèmesimilaire.Aprèsl’élaborationd’unouplusieurs
algorithmes,onidentifielemeilleur

1Enfait,cetteméthodeestinspiréedumodèleencascade,quiestuncyclededéveloppementpourlespetitslogicielsinitialement
proposéparWinstonW.Royce.[3]
Définition:Algorithme
Commentaborderunproblème1
13
d’entreeuxquiserviradesolution.Les
questionsquisuiventaidentàdéterminerl’algorithmeà
choisircommesolution:
Cetalgorithmerespectetillescontraintesformuléesdansl’énoncédu
problème?
Cetalgorithmeestilréalisable(dupointdevuedelacomplexité,dutemps,
des
ressourcesnécessaires,etc.)?
Quelssontlesavantagesetlesdésavantagesdecetalgorithme?
Avantdepasseràl’implémentationdelasolution,ilfautd’aborddécrirecette
dernièredefaçon
claire,enfaisantabstractiondetoutlangagedeprogrammation
etennelaissantaucuneplaceà
l’interprétation.Cettedescriptionestimportante,
puisqu’ilsepeuttrèsbienquelasolutionsoit
implémentéeparuneouplusieurs
personnesn’ayantpastravaillésursaconception.L’ordino
grammeetlepseudocodesontdeuxfaçonscourantesdedécrireunalgorithme.
Unordinogramme(aussinomméorganigrammeouschémafonctionnel)
estundiagrammecomposédesymboles(boîtes,flèches,etc.)quipermet
d’illustrerlaséquencedesinstructionsàréaliserdansunalgorithme.
L’ordinogrammeal’avantaged’êtretrèsfacileàcomprendreetconvientparfaitementlorsque
ladescriptiondelasolutionsedestineàdesindividusn’ayantaucune
connaissanceenprogram
mation.Cependant,ilseprêtemalàladescription
desolutionscomplexes,cariltendalorsà
devenirtrèsvolumineuxetdifficile
àcomprendre.Lafigure1.1offreunexempled’ordino
grammedécrivantun
algorithmepermettantdedéterminerleschiffresàcomposerpoureffec
tuerun
appeltéléphonique.
Figure1.1Ordinogrammed’unalgorithmedéterminantleschiffres
àcomposerpoureffectuerunappeltéléphonique
 
DÉBUT
L’appelest
interurbain
VRAI Composerle011
VRAI
Composerle
coderégional
FAUX
Composerle1
FAUX
Composerl’indicatif
dupays
Composerlenuméro
detéléphonelocal
Composerl’indicatif
delarégion/ville
FIN
Lappelest
international
Définition:Ordinogramme
1Lesbasesdelaprogrammation
14
Lepseudocodeestunlangagequicombinedesélémentsdelangagede
programmationetdelangagenaturel,etquisertàdécrireunalgorithme.
Lepseudocodes’apparentedavantageàunlangagedeprogrammation,cequi
enfacilitela
traductionencode.Ilestd’ailleursbeaucoupplusfréquentdansla
littérature.Àlafigure1.2,
nousretrouvonslesinstructionsdumêmealgorithme,
maiscettefois,sousformedepseudo
code.
Figure1.2Pseudocoded’unalgorithmedéterminantleschiffres
àcomposerpoureffectuerunappeltéléphonique
début
si (l’appel est interurbain) alors
si (l’appel est international) alors
composer le 011
composer l’indicatif du pays
composer l’indicatif de la région/ville
sinon
composer le 1
composer le code régional
fin si
sinon
composer le code régional
fin si
composer le numéro de téléphone local
fin
.
1.1.3Implémentationdelasolution
Silasolutionchoisienécessitel’écritured’unprogramme,alorsontraduitl’algorithmedansun
langagedeprogrammationcompréhensibleparunemachine2.Ainsi,aucunelignedecodene
devraitêtreécriteavantcetteétape.
1.1.4Testsetvalidationdel’implémentation
Ilresteàvérifierquel’implémentationdelasolutionfonctionnecorrectement.
Àcettefin,on
développeunestratégiedevérification.

2Lechoixdulangageàutilisersortdesobjectifsdecetouvrage.Soulignonscependantquelelangageestfréquemmentimposé,tant
danslemilieuscolairequedanslemilieudutravail.
Définition:Pseudocode
Commentaborderunproblème1
15
Unestratégiedevérificationestunensembledetestsaccompagnédu
résultatattendupourchacundecestests.
Lestestsd’unestratégiedevérificationdoiventêtreconçusdefaçonà
permettredevérifierle
respectdescontraintes,lavaliditédescalculs,lagestion
descasinvalidesetlimites,etc.
Lastratégiedevérificationdoitêtreécriteavant
ouenmêmetempsquel’algorithmeafind’éviterl’oublidecasparticuliers.
Oneffectuechacundestestsdelastratégieencomparantlesrésultatsobtenus
aveclesrésultats
attendus.Durantlavalidation,s’iladvientquelasolutionne
respectepaslescontraintesde
performanceimposéesouqu’uneerreurs’ysoit
glissée,onreprendalorslaméthodede
résolutiondeproblèmeàpartirdela
deuxièmeétape.Cependant,siuneerreurs’estglisséedans
lecodemaisque
l’algorithmeestvalide,oncorrigel’erreurdanslecodeetonrefaitchacundes
testsdelastratégiedevérification.
1.2Exemple:rendrelamonnaie
Étudionsunproblèmerelativementsimple:«Commentfaireensortequ’une
machinedistribu
tricerendelamonnaieenutilisantunnombreminimaldepièces
demonnaie?»
1.2.1Compréhensionduproblème
Àlalecturedel’énoncé,nousconstatonsqueceluiciestvagueetincomplet.
Eneffet,latâcheà
accomplirn’estpasprécise;fautilconstruirelemécanismedel’appareilous’agitilsimplement
dedévelopperuneméthodedéterminantles
piècesàremettre?D’autrepart,certaines
informationsessentiellesn’apparaissent
pasdansl’énoncé:lesvaleursnominalesdespièces
aveclesquellesnousdevons
travailler,lenombredepiècesdechaquevaleurànotredisposition
etcequ’ilfaut
fairelorsqu’ilneresteplusdepiècesd’unecertainevaleur.
Clarifionsdoncl’énoncéavantdepasseràl’étapesuivante:«Écrivezun
programmedéterminant
lespiècesdemonnaieàutiliserpourreprésenterun
montantd’argentm expriméencents.Votre
programmedevraminimiserle
nombredepiècesutilisées.Lesvaleursnominalesdisponibles
sont:1cent,5
cents,10cents,25cents,1dollar(100cents)et2dollars(200cents).Supposez
quevousdisposezd’unnombreinfinidepiècesdechaquevaleur.»
Définition:Stratégiedevérification
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !