{VERSION 3 0 "IBM INTEL LINUX" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 1 14 0 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 } {CSTYLE "normal C" -1 340 "Times" 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 341 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 342 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 343 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 344 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 345 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 346 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 347 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 348 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 349 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 350 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 351 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 352 "" 0 1 0 0 0 0 1 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 353 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 354 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 355 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 356 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 357 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 358 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 359 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 360 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 361 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 362 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 363 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 364 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 365 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 366 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 367 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 368 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 369 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 370 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 371 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 372 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 373 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 374 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 375 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 376 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 377 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 378 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 379 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 380 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 381 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 382 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 383 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 384 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 385 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 386 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 387 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 388 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 389 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 390 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 391 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 392 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 393 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 395 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 396 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 397 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 398 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 399 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 400 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 401 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 402 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 403 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 404 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 405 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 406 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 407 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 408 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 409 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 410 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 418 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 419 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 420 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 421 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 422 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 423 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 424 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 425 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 426 "" 0 1 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 431 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 432 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 433 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 434 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 436 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 437 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 438 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 439 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 440 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 442 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 8 2 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 3 " 4 5 1 {CSTYLE "" -1 -1 "" 1 12 0 0 0 0 1 0 0 0 0 0 0 0 0 }0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 " " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "List Item" 0 14 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 3 3 0 0 0 0 0 0 14 5 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 257 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 260 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT -1 191 "\253 Que j'aime \340 fa ire apprendre un nombre utile aux sages !\nImmortel Archimede, artiste , ing\351nieur,\nQui, de ton jugement peut priser la valeur\nPour moi \+ ton probl\350me eut de s\351rieux avantages. \273" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 34 "Universit\351 Paris 7 - Denis Diderot" }}{PARA 0 " " 0 "" {TEXT -1 15 "Ann\351e 2000-2001" }}{PARA 257 "" 0 "" {TEXT 340 16 "MI 101 - Maple V" }}{PARA 258 "" 0 "" {TEXT 340 20 "Groupes A4 - A 5 - D5" }}}{EXCHG {PARA 18 "" 0 "" {TEXT 341 45 "7. Introduction \340 \+ la programation sous Maple." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "Som maire" }}{PARA 14 "" 0 "" {TEXT -1 142 "1. Expressions logiques\n 1 .1 Les commandes is et type.\n 1.2 Operateurs bool\351ens et comman des conditionnelles.\n 1.3 Quelques exemples." }}{PARA 14 "" 0 "" {TEXT -1 33 "2. Operations r\351p\351t\351es et suites." }}{PARA 14 " " 0 "" {TEXT -1 18 "3. Les procedures." }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 0 "" }}{PARA 4 "" 0 "" {TEXT -1 27 "1. Les Expressions logiqu es" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 5 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT -1 29 "1.1 Les commandes is et type." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 167 "Nous avons vu au chapitre 5 les differents type de donn\351es sou s Maple. Nous nous interesserons ici au type bool\351en (boolean) avec les connecteur logiques \"et et \"ou\" (" }{TEXT 343 3 "and" }{TEXT -1 4 " et " }{TEXT 342 2 "or" }{TEXT -1 104 ").\nPour illustrer l'util isation des conencteurs logique, il est pratique d'introduire la comma nde Maple " }{TEXT 344 2 "is" }{TEXT -1 127 ", qui determine si tun ex pression a (ou non) certaines propri\351t\351s. Je vous encourage \340 lire l'aide \340 propos de cette commande :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "?is;" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 117 "Par exemple, on peut sav oir si un nombre est dans un interval donn\351 (l'interval se determin e \340 l'aide de la commande " }{TEXT 345 9 "RealRange" }{TEXT -1 78 " ), ou bien si unne fonction ets continue, ou encore si un nombre est u n entier" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "is(3,RealRange( 2,4));\nis(sin,continuous);\nis(5/2,integer);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 26 "\nLes connecteurs logiques " }{TEXT 346 4 "and " } {TEXT -1 3 "et " }{TEXT 347 3 "or " }{TEXT -1 66 "sont appliqu\351s \+ \340 une paire de proposition alors que le connecteur " }{TEXT 348 3 " not" }{TEXT -1 65 " est appliqu\351 \340 un \351l\351ment unique. Ces \+ operateurs renvoient soit " }{TEXT 349 4 "true" }{TEXT -1 43 " (si l'e xpression consid\351r\351 est vrai) soit " }{TEXT 350 5 "false" } {TEXT -1 25 " (dans le cas contraire)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "true or false;" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 21 "not is(Pi, fraction);" }{TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "not is(5/2,fraction);" } {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "is(5,intege r);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "is(-5 , positive);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "not is(-5, positive);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "is(-5,positive) and is(5/2,fraction);" }{TEXT -1 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "is(-5,positive) or not \+ is(5/2,fraction);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "is(-5,positive) or is(5/2,fraction);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 81 "De meme, la commande type permet de verifier si une expression est du type voulu." }}{PARA 0 "" 0 "" {TEXT -1 25 "Voici quelques exemples : " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "type(1,integer);\ntype( .5,fraction);\ntype(a*b,`*`);\ntype(sin(x),`+`);" }}}{EXCHG {PARA 5 " " 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT -1 53 "1.2 Operateurs boo l\351ens et commandes conditionnelles." }}{PARA 5 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 148 "Lorsquon a une expression et que l'on veut determiner si celle-ci est vrai ou fausse (ie: la determiner de fa\347on bool\351en ne), on utilise la commande " }{TEXT 351 8 "evalb( )" }{TEXT -1 27 ". \+ Voici quelques exemples :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 135 "evalb(5>3);\nevalb(3>5);\nevalb(5>3 and type(3/2,integer));\neval b(not(isprime(6)));\nevalb(type(Pi,rational) or type(evalf(Pi),positiv e));" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 131 "Nous allo ns voir maintenant les commande conditionnelles (de type si... alors . .. ou bien ...). La commande Maple est de la forme :" }}{PARA 260 "" 0 "" {TEXT -1 3 "if " }{TEXT 352 19 "condition_booleenne" }{TEXT 426 1 "\n" }{TEXT -1 8 " then " }{TEXT 353 3 "..." }{TEXT -1 9 "\n eli f " }{TEXT 354 3 "..." }{TEXT -1 9 "\n else " }{TEXT 355 3 "..." } {TEXT -1 4 "\nfi;" }{TEXT 356 0 "" }}{PARA 0 "" 0 "" {TEXT -1 6 "Note: " }{TEXT 357 4 "elif" }{TEXT -1 4 " et " }{TEXT 358 4 "else" }{TEXT -1 21 " sont optionnels. Le " }{TEXT 359 2 "fi" }{TEXT -1 92 " \340 la fin est indispensable.\nPour plus de d\351tails sur la structure de i f, consultez l'aide :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "?if " }}}{EXCHG {PARA 5 "" 0 "" {TEXT -1 0 "" }}{PARA 5 "" 0 "" {TEXT -1 22 "1.3 Quelques exemples." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 12 "La commande " }{TEXT 363 2 "dd" }{TEXT -1 31 ", qui depend de deux variables " }{TEXT 360 1 "x" }{TEXT -1 4 " et " }{TEXT 361 1 "y" }{TEXT -1 2 ". " }{TEXT 362 2 "dd" }{TEXT -1 50 " evalue le denominateur commun \340 x et y (commande " }{TEXT 364 5 "denom" }{TEXT -1 61 ") si x et y sont rationnels, sinon si x ou y e st rationnel, " }{TEXT 365 2 "dd" }{TEXT -1 108 " evalue le denominat eur de celui qui est rationel et enfin, si aucun n'est rationnel, dd \+ renvoie l'infini.\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 296 "dd: =(x,y) ->\n if type(x,rational) and type(y,rational)\n then d enom(x+y)\n elif not(type(x,rational)) and type(y,rational) \n \+ then denom(y) \n elif not(type(y,rational)) and t ype(x, rational) \n then denom(x) \n e lse infinity\n fi:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "dd (7/5,5/3);\ndd(exp(1),5/3);\ndd(7/5,exp(1));\ndd(evalf(Pi),exp(1));" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 62 " Voici un autre exemple, dependant d'une seule variable r\351elle " } {TEXT 366 1 "x" }{TEXT -1 14 ", La fonction " }{TEXT 367 4 "ent " } {TEXT -1 45 "retourne l'entier le plus proche du nombre x." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "en t:= x->\n if abs(x-round(x))<1/4 \n then round(x)\n \+ else (floor(x) +ceil(x))/2\n fi:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "ent(4.8);\nent(4.7);\nent(4.3);\nent(4.2);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 104 "S 'il n'y a que deux alternatives dans une commande donn\351e, on peut a lors utiliser la forme abreg\351e `if`(" }{TEXT 368 4 "expr" }{TEXT -1 2 ", " }{TEXT 369 4 "alt1" }{TEXT -1 2 ", " }{TEXT 370 4 "alt2" } {TEXT -1 15 "), qui renvoie " }{TEXT 371 4 "alt1" }{TEXT -1 4 " si " } {TEXT 372 4 "expr" }{TEXT -1 13 " est vrai et " }{TEXT 373 5 "alt2 " } {TEXT -1 6 "sinon." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "Moy:= x->\n if ent(x) > round(x) \n then 1/2\n e lse 0\n fi :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "Moy( 7.4);\nMoy(7.9);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "aMoy:= \+ x-> `if`(halfround(x)>round(x), 1/2, 0) :" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 21 "aMoy(7.4);\naMoy(7.9);" }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 0 "" }}{PARA 4 "" 0 "" {TEXT -1 33 "2. Operations r\351pet \351es et suites." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 31 "Npus avons d\351ja vu la commande " }{TEXT 374 3 " seq" }{TEXT -1 77 " qui permet de cr\351er une suite \"arbitraire\". I l existe \351galement la commande " }{TEXT 375 3 "sum" }{TEXT -1 77 ", qui permet de faire la somme d'une suite donn\351e. La syntaxe de la \+ commande " }{TEXT 376 4 "sum " }{TEXT -1 25 "est la meme que celle de \+ " }{TEXT 377 3 "seq" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "seq( sin(n*theta), n=1..8 );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "sum(a[n]*sin(n*theta),n=1..8);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 98 "\nLe meme r\351sultat (generer une suite ou bie n la sommer) peut etre obtenu en utilisant la commande " }{TEXT 378 3 "for" }{TEXT -1 1 " " }{TEXT 383 2 ".." }{TEXT 379 7 " while " }{TEXT 384 2 ".." }{TEXT -1 1 " " }{TEXT 380 2 "do" }{TEXT 382 1 " " }{TEXT -1 2 ".." }{TEXT 385 1 " " }{TEXT 381 2 "od" }{TEXT -1 64 ".\nLa synat xe de cette commande est illlust\351e par ces exemples : " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "S:=sin(theta);\nfor n from 2 to 8 \+ \ndo\n S:=S,sin(n*theta)\nod:\nS;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 40 "Ici la variable S a une valeur initiale " }{XPPEDIT 18 0 "sin(t heta);" "6#-%$sinG6#%&thetaG" }{TEXT -1 58 ". Les termes suivants sont determin\351 en ajoutant le terme " }{XPPEDIT 18 0 "sin(n*theta);" "6 #-%$sinG6#*&%\"nG\"\"\"%&thetaGF(" }{TEXT -1 50 " \340 la suite pr\351 cedente, pour n variant de 2 \340 8. " }}{PARA 0 "" 0 "" {TEXT -1 9 " Note: le " }{TEXT 386 2 "od" }{TEXT -1 28 " \340 la fin est indispensa ble." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 48 "\nOn peut chosir l'increm entation, en pla\347ant un " }{TEXT 387 3 "by " }{TEXT -1 9 "entre le \+ " }{TEXT 388 4 "from" }{TEXT -1 7 " et le " }{TEXT 389 2 "to" }{TEXT -1 2 " :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "S:=sin(theta): \nfor n from 2 by 2 to 8\ndo\n S:=S,sin(n*theta)\nod:\nS;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 112 "\nSi l'on veut une somme plutot q u'une suite, il suffit de remplacer la vigule (,) par un plus (+).\nPa r exemple :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "S:=a[1]*sin( theta):\nfor n from 2 to 8\ndo \n S:=S+a[n]*sin(n*theta)\nod:\nS;" } {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 72 "On peut aussi gen erer une suite si un index est dans un ensemble donn\351 :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "S:=sin(theta):\nfor n in \{4,7,10,1 4\}\ndo S:=S,sin(n*theta)\nod:\nS; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 83 "\nLa commande while permet de faire une opetation tanbt qu'une \+ condition reste vrai." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "S: =sin(Pi/7):\nn:=1:\nwhile evalf(sin(n*Pi/7))>0\ndo \n S:=S,sin(n*Pi/ 7);\n n:=n+1:\nod:\nS;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 39 "Pour plus de details, regardez l'aide :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "?do" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 431 11 "Exercice 1." }}{PARA 14 "" 0 "" {TEXT -1 65 "a. Tro uvez toutes les racines (en nombres flottants) du polynome " } {XPPEDIT 18 0 "x^3+a*x+b;" "6#,(*$%\"xG\"\"$\"\"\"*&%\"aGF'F%F'F'%\"bG F'" }{TEXT -1 55 " lorsque a et b sont des entiers compris entre -5 et 5." }}{PARA 14 "" 0 "" {TEXT -1 30 "b. En utilisant les commandes " } {TEXT 434 3 "seq" }{TEXT -1 2 ", " }{TEXT 432 7 "isprime" }{TEXT -1 5 ", et " }{TEXT 433 6 "select" }{TEXT -1 159 ", Trouvez tous les nombre s entiers entre 1235 et 1270.\nc. Faites une liste ordonn\351e des ent iers inferieurs \340 200 divisibles soit par 2, soit par 3 soit par 5. " }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 0 "" }}{PARA 4 "" 0 "" {TEXT -1 17 "3. Les procedures" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 311 "Les procedures Maple sont une sequence d e commandes dependantes d'un nombre fini de variables, qui permettent \+ d'obtenir un r\351sultat de mani\350re simple. Cela peut etre vu comme une g\351n\351ralisation des fonctions math\351matiques, ou bien des \+ \"porgrammes\" en langage Maple.\nVoici la structure g\351n\351rale d' une procedure :" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 4 " " }{TEXT 257 4 "proc" }{TEXT -1 2 " (" }{TEXT 391 16 "suite_d'argument" }{TEXT -1 2 ") " }{TEXT 390 0 "" }}{PARA 0 "" 0 "" {TEXT 259 14 " loca l " }{TEXT 392 0 "" }{TEXT 393 14 "suites_de_noms" }{TEXT -1 2 "; " }} {PARA 0 "" 0 "" {TEXT 261 14 " global" }{TEXT -1 1 " " }{TEXT 395 13 "suite_de_noms" }{TEXT -1 1 ";" }}{PARA 0 "" 0 "" {TEXT 263 16 " options " }{TEXT 397 0 "" }{TEXT 398 13 "suite_de_noms" } {TEXT -1 3 " ; " }{TEXT 396 0 "" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 264 20 " description " }{TEXT -1 0 "" }{TEXT 399 16 "suit e_de_chaines" }{TEXT -1 2 "; " }}{PARA 0 "" 0 "" {TEXT -1 8 " \+ " }{TEXT 269 1 " " }{TEXT -1 0 "" }{TEXT 400 9 "programme" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT 265 11 " end" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 35 "Les parties indispensables sont le " }{TEXT 401 4 "proc" }{TEXT -1 2 "()" }{TEXT 405 1 " " }{TEXT -1 13 "au d\351but, le " }{TEXT 402 9 "programme" }{TEXT -1 7 " et le " }{TEXT 403 3 "end" } {TEXT -1 273 " \340 la fin. S'il doit y avoir des variable \340 entrer , on les mets en tant qu'arguments. Si on veut sp\351cifeir le type de la variable, on mets deux ':' apr\350s le nom de celle-ci, suivi du t ype voulu.\n\n Toutes les autres parties de la structure sont optionne lles. Les noms apr\350s " }{TEXT 404 5 "local" }{TEXT -1 77 ", permett ent de definir des variables locales \340 la procedure. Les noms apr \350s " }{TEXT 406 6 "global" }{TEXT -1 47 " permettent de d\351finir \+ des variables globales.\n" }{TEXT 407 7 "options" }{TEXT -1 4 " et " } {TEXT 408 11 "description" }{TEXT -1 147 " ne servent pas pour le prog ramme en tant que tel, mais pour les fioritures que l'on peut mettre a utour du programme.\nLes options sont de la forme " }{TEXT 418 8 "reme mber" }{TEXT -1 2 ", " }{TEXT 419 7 "builtin" }{TEXT -1 2 ", " }{TEXT 420 6 "system" }{TEXT -1 2 ", " }{TEXT 421 8 "operator" }{TEXT -1 2 ", " }{TEXT 422 5 "arrow" }{TEXT -1 2 ", " }{TEXT 423 5 "trace" }{TEXT -1 2 ", " }{TEXT 424 7 "package" }{TEXT -1 4 " et " }{TEXT 425 9 "Copy right" }{TEXT -1 62 ". Nous detaillerons certaines optiosn dans un pr ochain cours." }}{PARA 0 "" 0 "" {TEXT -1 32 "\nVoici un exemple de pr ocedure :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "AP:=\nproc(x:: uneval,y::uneval,z::uneval)\n (x+y)^z\nend; " }{TEXT -1 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 75 "On peut voir \347a comme une fonct ion et donc s'en servir comme une fonction :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "AP(a,b,c);\nAP(1,5,2);" }{TEXT -1 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 25 " The parameter property " }{TEXT 290 7 "uneval " }{TEXT -1 130 "that has been assigned to all the argum ents implies that the expression remains unevaluated until evaluation \+ is explicitly called." }}{PARA 0 "" 0 "" {TEXT -1 8 "Le type " }{TEXT 409 6 "uneval" }{TEXT -1 112 " de chaque argument, implique que l'expr ession ne sera pas evalu\351 tant que ce ne sera pas explicitement dem and\351." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "a:=1:\nb:=5:\nc :=2:\nAP(a,b,c);\neval(%);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 55 "\nPour connaitre tout les types Maple, ragardez l'aide : " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "?procedure,paramtype" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "?type" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 189 "Bien sur les proc edures peuvent etre plus complexes que la precedente. Maple permet de \+ lire certaines des procedures qui sont impl\351ment\351 dans son code. pour cela il faut mettre la variable " }{TEXT 410 11 "verboseproc" } {TEXT -1 90 " \340 2, puis l'on peut voir comment sont faites certaine s procedures (pas toutes cependant)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "interface(verboseproc=2):\nprint(log);" }{TEXT -1 0 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 132 "\nVoici un autre exemple de \+ procedure, qui dzetermine dans quel cadrant se trouve le point (cos(x) , sin(x)) etant donn\351 un r\351el x. :" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 318 "QUAD:=\nproc(x::realcons)\n if 0<=evalf(sin(x)) an d 0 " 0 "" {MPLTEXT 1 0 29 "QUAD(1+I); \nQUAD(3);\nQUAD(13);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 139 "Voici une procedure qui determine si une expression appartient \340 uen liste donn\351 et si c'est el cas, ell e donne sa prosition dans la liste." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 163 "MEMBER:=\nproc(x::anything,L::list)\n local i;\n f or i from 1 to nops(L)\n do\n if L[i]=x \n then RETURN(\"oui , \340 la position \",i)\n fi;\n od;\n 'non';\nend;" }}{PARA 11 " " 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 114 "MEM BER(oiseau, [poissons,reptile,oiseau,animal,insecte]);\nMEMBER(plant, \+ [poissons,reptile,oiseau,animal,insecte]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 117 "Notez l'apparence de la \+ commande return, qui entraine un arret imm\351diat de la procedure. Re gardez l'aide \340 ce sujet :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "?RETURN" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 438 11 "Exercice 2." }} {PARA 14 "" 0 "" {TEXT -1 33 "a. Faites une procedure, appel\351e " } {TEXT 442 6 "Racine" }{TEXT -1 64 "(c,d) -avec a et b entiers- qui cal cule les racines du polynome " }{XPPEDIT 18 0 "x^3+a*x+b" "6#,(*$%\"xG \"\"$\"\"\"*&%\"aGF'F%F'F'%\"bGF'" }{TEXT -1 35 ". Pour a et b compris entre c et d." }}{PARA 14 "" 0 "" {TEXT -1 33 "b. Faites une proc\351 dure, appel\351e " }{TEXT 436 8 "PrimeSeq" }{TEXT -1 89 "(m,n) -avec m < n entiers - qui donne la liste des nombres premiers compris entre m et n." }}{PARA 14 "" 0 "" {TEXT -1 32 "c. Faites une prcedure, appel \351e " }{TEXT 437 6 "IntDiv" }{TEXT -1 126 "(p,q,r) - avec p,q,r prem iers - qui donne la liste des entiers inferieurs \340 200 divisibles s oit par p, soit par q, soit par r." }}}{EXCHG {PARA 0 "" 0 "" {TEXT 439 11 "Exercice 3." }}{PARA 14 "" 0 "" {TEXT -1 56 "a. Trouvez tout l es triplets d'entiers (a,b,c) tels que " }{XPPEDIT 18 0 "a^2+b^2 = c^2 ;" "6#/,&*$%\"aG\"\"#\"\"\"*$%\"bG\"\"#F(*$%\"cG\"\"#" }{TEXT -1 122 " et c <50.\nRepetez cette operation si la puissance est 3, 4 ou 5. Com parez ce r\351sultat avec le dernier th\351or\350me de Fermat." }} {PARA 14 "" 0 "" {TEXT -1 12 "b. Pour les " }{TEXT 440 23 "informatici ens en herbe" }{TEXT -1 310 " : \nTracez une serie de graphe de foncti on \340 deux variables (appell\351es f(x,t)) tels que sur chaque graph e, la fonction est trac\351e suivant x avec t fixe. On tracera autant \+ de graphe qu'il y a de nombres entiers entre a et b (a,b etant eux-mem e entiers donn\351s).\nChaque graphe doit porter le titre \"f(x,t) pou r t=" }{XPPEDIT 18 0 "t[0];" "6#&%\"tG6#\"\"!" }{TEXT -1 34 "\". en cl air a< t < b et c < x< d.\n" }{TEXT -1 44 "Testez votre procedure pour les fonctions : " }{XPPEDIT 18 0 "f(x,t) = sin(x-2*t);" "6#/-%\"fG6$% \"xG%\"tG-%$sinG6#,&F'\"\"\"*&\"\"#F-F(F-!\"\"" }{TEXT -1 30 " avec ( a=0,b=5,c=-3,d=3) et " }{XPPEDIT 18 0 "f(x,t) = exp(-x^2+2*x*t);" "6# /-%\"fG6$%\"xG%\"tG-%$expG6#,&*$F'\"\"#!\"\"*(\"\"#\"\"\"F'F2F(F2F2" } {TEXT -1 27 "avec (a=0,b=5,c=-10,d=10)." }}}}{MARK "0 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 }