Conditions Et Fonctions - Algo & Prog Avec R

2y ago
24 Views
2 Downloads
369.96 KB
17 Pages
Last View : 3m ago
Last Download : 3m ago
Upload by : Emanuel Batten
Transcription

Conditions et fonctionsAlgo & Prog avec RA. Malapert, B. Martin, M. Pelleau, et J.-P. Roy7 octobre 2019Université Côte d’Azur, CNRS, I3S, Francefirstname.lastname@univ-cotedazur.fr

Conditionnelle : la prise de décisions ifL’instruction conditionnelle if permet de prendre une décision.Dans l’éditeura - -2i f ( a 0) {cat (a , ’ est positif \ n ’)} else {cat (a , ’ est negatif ou nul \ n ’)}RUN -2 est négatif ou nulAu toplevelC’est moins agréable, il faut faire attention au(x) saut(s) de ligne. a - -2 i f ( a 0) { cat (a , ’ est positif \ n ’) } e l s e { cat (a , ’ est negatif ou nul \ n ’) }RUN Erreur : ’else’inattendu(e) in "else"1/15

Bloc et indentationSyntaxe pour une instruction conditionellei f ( condition ) {b lo cIn s t r u ct i o n s} else {b lo cIn s t r u ct i o n s}IndentationLa bonne distance à la marge d’une ligne permet de structurer et decomprendre un programme.Bloc d’instructionsC’est une suite d’instructions délimitée par des accolades.a - -2i f ( a 0) {cat (a , ’ est positif \ n ’)} else {cat (a , ’ est negatif ou nul \ ’)}2/15

Attention aux parenthèses et accolades !Une utilisation correcte des accolades est obligatoire en RIl est nécessaire d’ouvrir et fermer les paires d’accolades : {. . . }.a - -2i f ( a 0) {cat (a , ’ est positif \ n ’)else {cat (a , ’ est negatif ou nul \ n ’)}RUN Erreur : ’else’inattendu(e) in "else"Une utilisation correcte des parenthèses est obligatoire en RUne paire de parenthèses doit toujours délimiter la condition du if : (. . .).a - -2if a 0 {cat (a , ’ est positif \ n ’)} else {cat (a , ’ est negatif ou nul \ n ’)}RUN Erreur : unexpectedsymbol in "if a"3/15

Opérateurs logiques : ET (&&) et OU ( )Table de vérité : ces opérateurs ressemblent à ceux de la Logique.pqp && qp RUEFALSEFALSEFALSEFALSEMais, ils sont court-circuités a - -2 x 3Erreur : objet ’x ’ introuvable ( a 0) & & ( x 3)[1] FALSEL’expression x 3 n’a pas été évaluée car FALSE && ? FALSELa priorité de && étant plus faible que celle des opérations arithmétiques,on aurait pu écrire : a 0 & & x 3 .4/15

Liens avec l’électronique numériqueL’opérateur est aussi court-circuité a - -2 x 3Erreur : objet ’x ’introuvable ( a 0) ( x 3)[1] TRUEcar TRUE ? TRUEPortes logiques en électroniqueL’opérateur ! inverse les valeurs TRUE et FALSE. C’est l’inverseur . . .Les constructeurs d’ordinateurs utilisent beaucoup la porte nand.5/15

Les fonctions prédéfinies de RTous les langages de programmation fournissent un large ensemble defonctions prêtes à être utilisées.Exemples dans les entiers abs ( - 5) # la f o n c t i o n " valeur absolue "5 ’ ’ (4 ,9) # les op é rateurs sont des f o n c t i o n s cach é es13Certaines fonctions résident dans des modules/packages spécialisés,comme TurtleGraphics ou shiny . . . turtle forward ( dist 15) # je veux r é aliser un g r a p h i s m etortueErreur : impossible de trouver la fonction " turtle forward " library ( TurtleG raphics ) # il faut charger l ’ e x t e n s i o n turtle init () turtle forward ( dist 15)6/15

Comment définir une nouvelle fonction ?Syntaxe pour la définition d’une fonctionUne fonction est une routine qui retourne une valeur.nomFonction - f u n c t i o n ( listeDeParam è tres ) {b lo cIn s t r u ct i o n sr e t u r n ( r é sultatF onction )}Le mot return signifie "le résultat est . . . ".Définir la fonction f (n) 2n 1 f - f u n c t i o n ( n ) { r e t u r n ( 2 * n - 1) } f (5)[1] 9Paramètres non typés : n n’est pas forcément un entier. f (5 . 2) # avec des r é els approch é s9.4 f ( complex ( real 1 , imaginary 1) ) # avec des c o m p l e x e s[1] 1 2 i7/15

Les choix multiples avec if . else if . else .f - f u n c t i o n (x) {i f ( x - 1) r e t u r n ( - 1)e l s e i f ( x 1) r e t u r n (1)e l s e r e t u r n (x)}ou de manière équivalentef - f u n c t i o n (x) {i f ( x - 1) r e t u r n ( - 1)else {i f ( x 1) r e t u r n (1)e l s e r e t u r n (x)}}y1-11x-18/15

ExemplesComment (re)définir la valeur absolue ?Abs - f u n c t i o n ( n ) {i f ( n 0) {r e t u r n (n)} else {r e t u r n ( -n )}} cat ( ’ - 5 vaut ’ , Abs ( - 5) , ’\ n ’) - 5 vaut 5Comment (re)définir le maximum ?Max - f u n c t i o n (n , m ) {i f (n m) {r e t u r n (n)} else {r e t u r n (m)}} cat ( ’ max ( -10 , - 5) vaut ’ , Max ( -10 ,- 5) , ’\ n ’)max ( -10 , - 5) vaut -59/15

Exemple : année bissextileDepuis l’ajustement du calendrier grégorien, l’année sera bissextile (elleaura 366 jours, et non 365) :I si l’année est divisible par 4 et non divisible par 100, ouI si l’année est divisible par 400.Comment calculer le nombre de jours d’une année ?JoursParAn - f u n c t i o n ( n ) {i f ((( n %% 4 0) & & ( n %% 100 ! 0) ) ( n %% 400 0) ) {r e t u r n (366)} else {r e t u r n (365)}}Remarquez l’utilisation correcte des parenthèses.10/15

Notions élémentaires sur les nombres premiersNombre premierUn nombre premier ne peut être divisé que par lui-même et par 1.Plus grand commun diviseur (PGCD)Le PGCD de deux nombres entiers non nuls est le plus grand entier quiles divise simultanément.Premiers entre euxon dit que deux entiers sont premiers entre eux si leur plus grandcommun diviseur est égal à 1.Supposons que la fonction gcd(p, q) existe et renvoie le plus granddiviseur commun des entiers p et q (nous la programmerons en TP).11/15

Composition de fonctions ICréons une fonction PremiersEntreEux(p,q) basée sur la fonction gcd.P r e m i e r s E n tr e E u x - f u n c t i o n (p , q ) {i f ( gcd (p , q ) 1) {r e t u r n ( TRUE )} else {r e t u r n ( FALSE )}}ou encoreP r e m i e r s E n tr e E u x - f u n c t i o n (p , q ) {i f ( gcd (p , q ) 1) {r e t u r n ( TRUE )}r e t u r n ( FALSE )}Le mot clé return provoque un échappement. Le reste du texte de lafonction est abandonné !12/15

Composition de fonctions IIUne version qui renvoie directement le résultat de l’évaluation del’expression.P r e m i e r s E n tr e E u x - f u n c t i o n (p , q ) {r e t u r n ( gcd (p , q ) 1)}Une version encore plus courte qui omet les accolades et return.P r e m i e r s E n tr e E u x - f u n c t i o n (p , q ) gcd (p , q ) 1 P r e m i e r s E nt r e E u x (21 ,6)[1] FALSE P r e m i e r s E nt r e E u x (21 ,8)[1] TRUEVous voyez qu’il existe différentes manières de coder une fonction. Ellesse distinguent par leur efficacité, mais aussi leur élégance.13/15

Documenter une fonctionPour l’instantAjouter simplement des commentaires au début de la fonction.Pr em ie rs E n tr e E u x - f u n c t i o n (p , q ) {# D é termine si deux entiers p et q sont p r e m i e r s entre euxpar calcul du PGCD .## Arguments :# p un entier# q un entier## Returns : TRUE si p et q sont p r e m i e r s entre eux , etFALSE sinon .}En effet, il suffit de taper le nom d’une fonction pour voir son code.14/15

Consulter la documentation de R ? paste # c o n s u l t e r la d o c u m e n t a t i o n d ’ une f o n c t i o nConcatenate StringsDescription :Concatenate vectors after converting to character .Usage :paste ( . . . , sep " " , collapse NULL )paste0 ( . . . , collapse NULL )Arguments :. ? paste # r e c h e r c h e r dans la d o c u m e n t a t i o n15/15

Questions?Retrouvez ce cours sur le site webwww.i3s.unice.fr/ malapert/R15/15

Conditionsetfonctions Algo & Prog avec R A. Malapert, B. Martin, M. Pelleau, et J.-P. Roy 7 octobre 2019 U

Related Documents:

Tout le spectre de ALGO en L3 Thèmes : ˇ Grands paradigmes : glouton, diviser-pour-règner, programmation dynamique, . ˇ Algo des ensembles (structures de données) ˇ Algo des nombres et d'algèbre ˇ Algo des mots ˇ Algo des graphes ˇ Algo géométrique Mise en pratique : ˇ Modéliser les problèmes : énoncés avec des histoires qui ne donnent aucune indication sur la méthode à .

117 tanu agrawal 18/63008 (cbcs) b.com (prog.) i i 64% 118 shivangi bodwal 18/63253 (cbcs) b.com (prog.) i i 63% 119 manish kumar yadav 18/63205 (cbcs) b.com (prog.) i i 63% 120 keshav garg 18/63247 (cbcs) b.com (prog.) i i 63% 121 aryan sharma 18/63166 (cbcs) b.com (prog.) i i 6

1e78-140 1e78-140 digital stat 24.15 1e78-144 1h/1c non-prog dig stat 24.15 1f56n-444 1h/1c manual stat 27.19 1f78-144 1h/1c non prog thermostat 24.16 1f79-111 2h/1c hp digital hardwire 33.00 1f83c-11np 1h/1c non-prog thermostat 34.36 1f83h-21np 2h/1c non-prog hp dual fuel thermostat 39.36 1f85u-22np 2h/1c non-prog 5in display dual fuel

Configuring Algo 8180 SIP Audio Alerter Configuring Algo 8180 via Broadworks The Algo 8180 SIP Audio Alerter will first need to be configured via BroadWorks. For detailed information on configuring Algo 8180 with BroadWorks, see BroadSoft Partner Configura

4.2. ons L 18 5. La thèse de Tate : la correspondance de Langlands pour GL(1) 22 5.1. Fonctions Ldes caractères de Hecke et fonctions ζ attachéesauxfonctionslisses 25 5.2. FonctionsLdeHeckeetd’Artin 29 6. Lesformesmodulaires 30 6.1.

1e78-140 1e78-140 digital stat 22.64 1e78-144 1h/1c non-prog dig stat 24.03 1f78-144 1h/1c dig non-prog 24v stat 24.04 1f78-151 1h/1c dig 5/2prog 24v stat 28.69 1f80-361 1h/1c 5/1/1/ programmable 49.85 1f83c-11np 1h/1c non-prog thermostat 34.36 1f83c-11pr 1h/1c universal thermostat 48.11 1f83h-21np 2h/1c non-prog hp dual fuel thermostat

Alpha Generating Algo : Blitz Master Scalping Ver 1.0 Blitz Master Scalpping Algo format is an Alpha Seeking Algo Format. It supports a narrow range Trading were it Enters and Exits on a predefined level from the Starting point. This format is design

human behavior interacts with the organization, and the organization itself. Although we can focus on any one of these three areas independently, we must remember that all three are ultimately connected and necessary for a comprehensive understanding of organizational behavior. For example, we can study individual behavior (such as the behavior of a company’s CEO or of one of its employees .