Fonctions et programmation

Fonctions et programmation

Documents
7 pages
Lire
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Fonctions1 Fonctions et programmmationLa programmation d’un probl`eme est une taˆche complexe difficile a` maitriser globalement.Pour limiter les erreurs et la taille des programmes (donc du code objet), on va chercher`a identifier des sous-tˆaches qui correspondent `a des calculs bien d´etermin´es qu’on est amen´e a`r´ep´eter plusieurs fois dans le programme.Cela permet de raisonner de mani`ere plus abstraite sur l’ensemble du programme et de seconcentrersurlaprogrammationdepartiesplussimplesetpluscourtes.L’exp´eriencemontrequ’unprogrammeur standard ne peut maitriser qu’un programme de 2-3 pages, soit 200-300 lignes, cequi impose de d´ecouper les programmes plus complexes en parties plus simples `a ´ecrire. Pour lesapplications de taille importante -par exemple le noyau Unix- on utilisera en plus des techniqueset des outils de g´enie logiciel.Exemple 1 : calculer le minimum de deux entiersDans les calculs num´eriques, on a souvent besoin de prendre le maximum de deux nombres.Plutotqueder´ep´eterlesinstructionsquipermettentdecalculercemax,onvautiliserunefonction:fonction min (a: reel,b:reel):reelsi a > b alors retourner bsinon retourner a fsiEn fait, vous avez d´eja` utilis´e des fonctions des librairies : print, input sont des fonctionsprogramm´ees dans les librairies python (et leur code est suffisamment compliqu´e pour essayer `atout prix de ne pas le r´e´ecrire!).Exercice 1 Le programme de r´esolution d’une ´equation de degr´e 2 vu au premier cours ...

Sujets

Informations

Publié par
Nombre de visites sur la page 22
Langue Français
Signaler un problème
Fonctions
1 Fonctionset programmmation Laprogrammationdunproble`meestunetˆachecomplexedicilea`maitriserglobalement. Pour limiter les erreurs et la taille des programmes (donc du code objet), on va chercher `aidentierdessoustˆachesquicorrespondenta`descalculsbiende´termine´squonestamen´ea` r´epe´terplusieursfoisdansleprogramme. Celapermetderaisonnerdemanie`replusabstraitesurlensembleduprogrammeetdese concentrersurlaprogrammationdepartiesplussimplesetpluscourtes.Lexpe´riencemontrequun programmeur standard ne peut maitriser qu’un programme de 23 pages, soit 200300 lignes, ce quiimposedede´couperlesprogrammespluscomplexesenpartiesplussimplesa`´ecrire.Pourles applications de taille importante par exemple le noyau Unix on utilisera en plus des techniques etdesoutilsdeg´enielogiciel.
Exemple 1: calculer le minimum de deux entiers Danslescalculsnum´eriques,onasouventbesoindeprendrelemaximumdedeuxnombres. Plutotqueder´ep´eterlesinstructionsquipermettentdecalculercemax,onvautiliserunefonction:
fonction min (a: reel,b:reel):reel si a> b alors retourner b sinon retourner a fsi
Enfait,vousavezde´j`autilise´desfonctionsdeslibrairies:print, inputsont des fonctions programm´eesdansleslibrairiespython(etleurcodeestsusammentcomplique´pouressayer`a toutprixdenepaslere´´ecrire!).
Exercice 1rpgoeLderearmmluti´esoune´ondnoitauqee´rgededreupua2vurcoermitonscenti descalculscomplexeseectu´esavecdesfonctionsdelabibliothe`quepython.Identiercesfonctions.
Exemple 2: calculer la factorielle. fonction fact (n: entier):entier si n<=0 alorsretourner 1 sinon retourner (n*fact(n1)) fsi La fonction ici estceru´risevleeltiutniaot´ieennnacfoonnncdteiloitnoofcnal`:adlapple mˆeme:lapartiefact(n1)ledondeladeexpressigien.nr`irele Exercice 2Donner (sous forme algorithmique) une fonctionrsiv´ecurecalculant la somme des npremiers entiers.
1
2 Principes 2.1 Unexemple Leprogrammepythoncontenudanslechierpuissance.pycontientlad´enitiondelafonction puis(x, n) qui calcule la fonction x, n xn (x, n entiers) et un script d’utilisation de cette fonction. #la definition de la fonction defpuis(x,n):#x,nparame`tresdelafonction "calcule x**n"#commentaires pour la documentation #d´ebutducorpsdelafonction p=1 #p,ivariables locales i=1 while (i<=n): p=p*x i=i+1 returnp#renvoidelavaleurcalcule´e
#un script i=0 while (i<10): x=puis(2,i)#appeldelafonctionaveclesparame`tres #effectifs 2 et i print ’la puissance’,i,’eme de 2 est’, x i=i+1
2.2Parame`tres Enprogrammation,lesargumentsdunefonctionsappellentlesparame`tres.Ilyadeuxtypes deparame`tres: Lesparam`etresformelssontlesidenticateursquisontutilis´espourde´nirlafonction.Il nontpasdevaleurde´termine´eetcorrespondent`adesvariablesmathe´matiquesutilis´eespour n lade´nitioncommexoundanspuis:x, nx Lesparame`treseectifssontlesvaleursutilis´eeslorsdelappeldelafonctionquicalculealors lavaleurdelafonctionapr`essubstitutiondesparame`tresformelscorrespondants.Ainsi2 estleparam`etreeectifdelappelpuis(2,1) qui calculepuisdnoietsbututiprass`expar 2 etndnetioie´nslad1danparpuis. Unparame`treformelesttoujoursunnomdevariable,unparam`etreeectifpeuteˆtreune expression. Par exemplepuis(y+ 2, zis´eutorondi(`acseat)etaaimesde´ectleuqnoitmargorpe valeurs`ayetzavant cet appel).
2.3 Profild’une fonction Enmathe´matiques,unede´nitiondefonctionestintroduiteparuneformulationdelaforme + log:R →R quidonnelenomdelafonctionetsondomaineded´epartetsondomainedarrive´e.Cesdomaines d´eterminentleprofilsdeare´pslpcaratlmoefssneodaoinn.eEsndcotmieo,rlmeantiiqnufTypeset
2
on parlera par exemple de la fonctionf loor:f loatintdol)ntrembeer´(parterdnuoneineite` le profil est doncf loatint´eelppdur´type.Lessaitsuaatetselutype de retourEn python, les typesne´tantpasexplicites(leprogrammeurneles´ecritpas),ilestplusdiciledappre´hender leproldunefonction.Deplusunedicult´eli´ee`alinformatique,estquelestypessontli´es`a desquestionsderepre´sentationetlensembledestypespossibleestpauvre.Ainsiladivisionsera parexemplede´nieavecunprolf loat, f loatf loatdtechencl´eneauerexceptionsi elle est utilis´eeavecundiviseur´egala`0.Leslangagesmodernescommepythoncontiennentunegestion des exceptions, mais nous ne verrons pas ce point dans le cadre du cours.
2.4 Structured’une fonction Lad´enitiondelafonctionsede´composeensonentˆetedede´nitionquidonnelenomet lesparame`tresformelsutilis´esparlafonction,suividuneligne(facultative)decommentairede descriptiondelafonctionpuisducorpsdelafonctionquide´critlescalculseectu´esparcelleci.
2.5Calculdelavaleurretourne´e Lex´ecutiondelinstructionreturn exp 1.e´valueexp, 2.stoppele´valuationdelafonction, 3.retournelavaleurdeexpcommer´esultatdelappelcourant`alafonctionappelante. Le type de retour de la fonction et celui de exp doivent correspondre. Une fonction peut contenir plusieurs instructionsreturnx´ecutioee`al´e´avela´ueslusereondnetu.n Danslade´nitionfonctionpuisetvoturnonreuctisnrtluieenesylua,ieuqpousezuverv´erin lavaleurretourn´eecorrespondbien`ax(sinest positif ou nul). def echo (char c) #affiche son argument sur la sortie standard print(c) Lint´erˆetdunetellefonctionestleseetsdebordsquelleproduit(cest`adirelamodication delenvironnementproduitparlexe´cutiondelafonction).Iciceteetdebordestlimpression duncaracte`resurlasortiestandard. PIEGE:ne´gnera´eneluncfoontiaiuqptigeraedtemmraogprduesbliaravsedeidomdrobe (les variablesglobalesefedctonic.Sypetlsul)niotinpnoietutilis´clnoc¸euoientsamad´eoirl,v celaestlasourcederreursdeprogrammationdiciles`aidentier. Unprogrammepythonnestriendautrequunesuccessionded´enitiondefonctions(etil estinterditdimbriquerlesd´enitions:onnepeutpasd´enirunefonctiona`linte´rieurdune d´enitiondefonction). Exercice 3nrEntnareepnoeesnceitmmedonn´leprogra??pourpuissneuqxoitsndpoaure´e,r 1.Quellessontlesvariableslocales,param`etresettypederetourdelafonctionpuis? 2.Quellessontlesvariableslocales,param`etresettypederetourdelafonctionmain? 2.6 Appelde la fonction Unappeldelafonctionestlinvocationdelafonctionsurdesvaleursparticuli`eres.Lappel renvoieunr´esultatquiestutilise´parlafonctionappelantemainouuneautrefonctionquia demand´ecetappel.Usuellementcelasefaitdansuneaectationx=f(e1, .., en) avecxune variable de la fonction appelante.
3