Xem mẫu

Ch−¬ng 3<br /> <br /> C¸c kh¸i niÖm vµ c¸c hµm c¬<br /> b¶n trong lËp tr×nh trªn Maple<br /> <br /> 3.1. C¸c kh¸i niÖm c¬ b¶n ........................................................................... 85<br /> 3.1.1. Tªn (name) vµ x©u kÝ tù...................................................................... 86<br /> 3.1.2. BiÕn trong Maple ................................................................................. 87<br /> 3.1.3. Sù ®Þnh gi¸ ........................................................................................... 87<br /> 3.1.4. Ng¨n c¶n ®Þnh gi¸ .............................................................................. 90<br /> 3.1.5. Sù tù ®éng ®¬n gi¶n biÓu thøc........................................................... 91<br /> 3.1.6. C¸c tÝnh to¸n sè trong Maple ............................................................ 92<br /> 3.2. C¸c hµm th−êng dïng trong Maple ................................................. 92<br /> 3.2.1. ¦íc l−îng gi¸ trÞ .................................................................................. 92<br /> 3.2.2. §¬n gi¶n biÓu thøc: lÖnh simplify .................................................. 94<br /> 3.2.3. T×m gi¸ trÞ lín nhÊt vµ bÐ nhÊt............................................................ 96<br /> 3.2.4. Thay thÕ trong biÓu thøc: lÖnh subs................................................... 97<br /> 3.2.5. Tæ chøc biÓu thøc theo mét sè biÕn chÝnh ....................................... 99<br /> 3.2.6. S¾p xÕp c¸c sè h¹ng........................................................................ 100<br /> 3.2.7. ChuyÓn ®æi d¹ng cÊu tróc d÷ liÖu (lÖnh convert) ......................... 102<br /> 3.2.8. Thùc hiÖn mét phÐp to¸n trªn nhiÒu thµnh phÇn........................... 104<br /> 3.2.9. Xem cÊu tróc vµ thµnh phÇn cña mét biÓu thøc .......................... 105<br /> 3.2.10. KiÓm tra mét phÇn tö cã thuéc mét d÷ liÖu cã cÊu tróc nµo ®ã 108<br /> <br /> 85<br /> <br /> 3.2.11. KiÓm tra mét tªn ®· ®−îc g¸n hay ch−a ..................................... 109<br /> 3.3. C¸ch t¹o lËp hµm trong Maple .........................................................111<br /> 3.3.1.ThiÕt lËp c¸c hµm kÐp (hµm hîp, hµm lång nhau) ....................... 111<br /> 3.3.2. §Þnh nghÜa hµm b»ng to¸n tö mòi tªn (->)..................................... 112<br /> 3.3.3. §Þnh nghÜa hµm b»ng to¸n tö hîp thµnh @.................................... 113<br /> 3.3.4. Dïng chu tr×nh proc()...end ®Ó t¹o hµm.................................... 114<br /> 3.4. C¸c cÊu tróc d÷ liÖu c¬ b¶n ..............................................................117<br /> 3.4.1. CÊu tróc d÷ liÖu d·y ......................................................................... 117<br /> 3.4.2. CÊu tróc tËp hîp vµ danh s¸ch....................................................... 119<br /> TËp hîp...................................................................................................................... 119<br /> Danh s¸ch.................................................................................................................. 119<br /> LÖnh t¹o danh s¸ch vµ tËp hîp.................................................................................. 120<br /> <br /> 3.4.3. CÊu tróc d÷ liÖu b¶ng....................................................................... 122<br /> LÖnh t¹o b¶ng............................................................................................................ 122<br /> <br /> 3.4.4. CÊu tróc d÷ liÖu m¶ng...................................................................... 124<br /> 3.4.5. Sparse, symmetric, nh÷ng gi¶n ®å chØ ®Þnh ®Æc biÖt cho m¶ng vµ<br /> b¶ng ............................................................................................................. 126<br /> <br /> 3.1. C¸c kh¸i niÖm c¬ b¶n<br /> 3.1.1. Tªn (name) vµ x©u kÝ tù<br /> Tªn lµ mét x©u h×nh tù (string of letters) ®−îc dïng nh− mét chØ môc hay mét<br /> nh·n ®Ó ®¹i diÖn cho c¸c ®èi t−îng trong Maple cã thÓ thay ®æi ®−îc (nh− biÕn, kÝ<br /> hiÖu to¸n häc, c¸c biÓu thøc nãi chung,...) mµ ta cã thÓ g¸n cho nã. Tªn lµ mét<br /> trong c¸c thµnh phÇn kh«ng thÓ thiÕu ®−îc cña Maple trong viÖc t¹o ra c¸c biÓu<br /> thøc. ChiÒu dµi tèi ®a cña tªn phô thuéc vµo hÖ m¸y tÝnh mµ Maple ch¹y trªn ®ã<br /> (víi m¸y 32-bit th× chiÒu dµi tèi ®a cña tªn lµ 524275).<br /> BÊt cø biÓu thøc nµo ®Òu cã thÓ ®−îc g¸n cho mét c¸i tªn. NÕu kh«ng cã gi¸ trÞ<br /> nµo ®−îc g¸n cho mét tªn th× nã sÏ nhËn chÝnh tªn nã lµm gi¸ trÞ mÆc ®Þnh.<br /> Ch−¬ng tr×nh Maple sö dông tªn b¾t ®Çu víi mét dÊu g¹ch d−íi ( _ ) lµm c¸c<br /> biÕn toµn côc, vµ v× thÕ chóng ta nªn tr¸nh sö dông chóng.<br /> Mét x©u ký tù bÊt kú (string of characters) cã thÓ kh«ng ph¶i lµ x©u h×nh tù (v×<br /> cã thÓ chøa c¸c ký tù ®Æc biÖt nh−: kho¶ng trèng, dÊu chÊm than,...) vµ do ®ã kh«ng<br /> 86<br /> <br /> thÓ lµ mét tªn hîp lÖ. Tuy nhiªn, Maple cho phÐp t¹o mét tªn tõ mét x©u ký tù bÊt<br /> kú b»ng c¸ch cho nã vµo trong cÆp dÊu nh¸y ®¬n ( ` ) (backquote), thÝ dô nh− x©u<br /> kÝ tù `a variable!` lµ mét tªn biÕn hîp lÖ, vµ ng−êi ta cã thÓ g¸n cho nã gi¸ trÞ 10<br /> b»ng lÖnh `a variable!`:=10.<br /> Mét x©u h×nh tù th−êng lµ mét tªn hîp lÖ vµ ®−îc xem lµ trïng víi tªn ®−îc t¹o<br /> b»ng c¸ch bao chung quanh x©u nµy b»ng cÆp dÊu nh¸y (v× thÕ mµ x vµ `x` ®Òu chØ<br /> ®Õn mét tªn). Tuy nhiªn, nÕu x©u h×nh tù mµ trïng víi tõ khãa cña Maple th×<br /> kh«ng ph¶i lµ mét tªn hîp lÖ, vµ muèn cho nã trë thµnh mét tªn ta l¹i ph¶i cho nã<br /> vµo trong cÆp dÊu nh¸y.<br /> Hai dÊu nh¸y liªn tiÕp trong mét x©u kÝ tù sÏ ®−îc hiÓu nh− lµ mét dÊu. VÝ dô<br /> nh− khi ta viÕt: print(` I``m a student`); th× kÕt qu¶ sÏ cho ta x©u: I`m a student.<br /> <br /> 3.1.2. BiÕn trong Maple<br /> BiÕn trong Maple lµ nh÷ng tªn ®−îc dïng ®Ó thay thÕ cho mét ®èi t−îng nµo<br /> ®ã, th«ng th−êng lµ c¸c gi¸ trÞ cÇn thay ®æi, hoÆc c¸c biÓu thøc tÝnh to¸n cÇn cho<br /> gi¸ trÞ,... Cã hai lo¹i biÕn trong Maple: BiÕn lËp tr×nh vµ biÕn to¸n häc.<br /> BiÕn lËp tr×nh lµ nh÷ng biÕn cã thÓ g¸n bëi mét gi¸ trÞ nµo ®ã vµ gi¸ trÞ ®ã ®−îc<br /> l−u tr÷ cho ®Õn tËn lóc nã thùc sù bÞ thay ®æi.<br /> Mét biÕn to¸n häc thÓ hiÖn cho Èn sè trong to¸n häc, kh«ng thÓ ®−îc g¸n gi¸<br /> trÞ vµ tÊt nhiªn ta kh«ng thÓ dïng nã nh− lµ mét biÕn lËp tr×nh. NÕu b¹n kh«ng<br /> muèn ph©n biÖt biÕn ®−îc g¸n (biÕn lËp tr×nh) vµ biÕn kh«ng ®−îc g¸n (biÕn to¸n<br /> häc) trong Maple th× b¹n cã thÓ nghÜ r»ng biÕn to¸n häc trong Maple lµ biÕn ®−îc<br /> g¸n mµ gi¸ trÞ lu«n b»ng chÝnh tªn biÕn.<br /> BiÕn còng gièng nh− mét tªn, b¾t ®Çu bëi mét h×nh tù, theo sau lµ c¸c ch÷ c¸i<br /> kh¸c, c¸c ch÷ sè, vµ dÊu g¹ch d−íi.<br /> <br /> 3.1.3. Sù ®Þnh gi¸<br /> Mét tªn mµ ®−îc g¸n mét gi¸ trÞ (kh¸c tªn nã) th× sÏ trë thµnh biÕn ch−¬ng<br /> tr×nh, cßn nÕu ch−a tõng ®−îc g¸n mét gi¸ trÞ nµo th× nã nhËn chÝnh tªn nã lµm gi¸<br /> trÞ vµ ®−îc xem nh− lµ mét kÝ hiÖu biÓu thÞ cho Èn sè trong to¸n häc (ch¼ng h¹n<br /> trong ph−¬ng tr×nh, biÕn trong ®a thøc,...). Nh− vËy, viÖc ph©n biÖt mét tªn lµ mét<br /> biÕn ch−¬ng tr×nh hay lµ mét biÕn to¸n häc (mang ý nghÜa lµ Èn sè) lµ rÊt quan<br /> träng ®èi víi Maple trong lóc thùc hiÖn c¸c lÖnh cã chøa tham sè. Ta xem xÐt chi<br /> tiÕt b»ng c¸ch ph©n tÝch mét vÝ dô cô thÓ.<br /> XÐt d·y c¸c phÐp g¸n:<br /> [>restart;<br /> [>z:=y;<br /> y:=t;<br /> t:=x^2+5*x-12;<br /> <br /> 87<br /> <br /> x;<br /> <br /> z := y<br /> y := t<br /> t := x 2 + 5 x − 12<br /> <br /> Trªn ®©y c¸c tªn x, y, z ®Òu ®−îc g¸n gi¸ trÞ (hoÆc lµ tªn biÕn, hoÆc lµ mét biÓu<br /> thøc,...) cßn x th× kh«ng ®−îc g¸n gi¸ trÞ, do ®ã x lµ mét biÕn to¸n häc vµ tÊt nhiªn<br /> x kh«ng chøa gi¸ trÞ nµo (hay nãi ®óng h¬n lµ gi¸ trÞ cña x chÝnh lµ kÝ hiÖu x).<br /> Sau c¸c phÐp g¸n, gi¸ trÞ cña<br /> <br /> z , y , t ®Òu tham chiÕu ®Õn biÓu thøc<br /> <br /> x + 5 x − 12 , chóng ®−îc xem nh− lµ biÕn cã thÓ lËp tr×nh ®−îc, gièng nh− kh¸i<br /> niÖm biÕn trong c¸c ng«n ng÷ lËp tr×nh truyÒn thèng nh− C, Pascal,... Cßn x th× chØ<br /> ®−îc xem lµ biÕn theo ý nghÜa to¸n häc, tøc lµ mét kÝ hiÖu thÓ hiÖn cho mét Èn sè :<br /> 2<br /> <br /> [>z;<br /> x 2 + 5 x − 12<br /> <br /> [>y;<br /> x2 + 5 x − 12<br /> <br /> [>t;<br /> x 2 + 5 x − 12<br /> <br /> BiÕn y cã thÓ ®−îc g¸n bëi c¸c gi¸ trÞ kh¸c, do ®ã néi dung cña nã hoµn toµn thay<br /> ®æi, vµ tÊt nhiªn gi¸ trÞ cña z còng b»ng gi¸ trÞ cña y:<br /> [>y:=10;<br /> y := 10<br /> <br /> [>z;<br /> 10<br /> <br /> Ta cã thÓ hiÓu ®iÒu nµy nh− sau: BÊt cø khi nµo Maple thùc hiÖn viÖc tÝnh to¸n, c¸c<br /> tªn trong biÓu thøc ®Òu ®−îc kiÓm tra xem cã ph¶i chóng ®−îc dïng nh− lµ biÕn<br /> ch−¬ng tr×nh (tøc lµ cã ph¶i chóng ®· ®−îc g¸n gi¸ trÞ) hay kh«ng. NÕu ®óng nh−<br /> vËy, Maple thay thÕ tªn b»ng néi dung cña nã (cã thÓ lµ mét tªn kh¸c, biÕn, h»ng,<br /> hay biÓu thøc,...) vµo trong biÓu thøc ®ang tÝnh, råi sau ®ã nã tiÕp tôc kiÓm tra xem<br /> liÖu cã cßn gi¸ trÞ hay biÕn ch−¬ng tr×nh nµo cã thÓ ®−îc thay thÕ n÷a kh«ng, cßn<br /> nÕu néi dung cña tªn ®Êy chÝnh lµ tªn cña nã th× Maple xem tªn nµy lµ mét biÕn<br /> to¸n häc vµ ®−îc gi÷ nguyªn. Qu¸ tr×nh cø tiÕp tôc nh− vËy cho ®Õn khi kh«ng cßn<br /> tªn nµo ®−îc g¸n n÷a. KÕt qu¶ thu ®−îc, sau khi kh«ng cßn cã thÓ g¸n thªm ®−îc<br /> n÷a, th× ®−îc gäi lµ biÓu thøc ®−îc ®Þnh gi¸ hoµn toµn vµ Maple thùc hiÖn c¸c phÐp<br /> to¸n trªn ®Êy. Nh− vËy, trong vÝ dô trªn, khi ®äc ®Õn z ®Ó in gi¸ trÞ cña nã, Maple<br /> thay thÕ nã bëi y, sau ®ã thay thÕ y bëi 10 råi míi in gi¸ trÞ 10 ra nh− lµ gi¸ trÞ cña<br /> z. Cßn biÕn t vÉn kh«ng thay ®æi néi dung cña nã:<br /> 88<br /> <br /> [>t;<br /> x 2 + 5 x − 12<br /> <br /> BiÕn to¸n häc ch¼ng qua lµ biÕn ch−¬ng tr×nh ®−îc g¸n gi¸ trÞ chÝnh lµ tªn cña<br /> nã. Khi ta g¸n cho nã mét gi¸ trÞ kh¸c (so víi tªn cña nã) th× nã trë l¹i thµnh biÕn<br /> ch−¬ng tr×nh, thÝ dô:<br /> [>x:=10;<br /> x := 10<br /> <br /> Khi x ®−îc g¸n mét gi¸ trÞ sè (nh− trªn), th× néi dung cña t ®−îc tÝnh to¸n nh− thÕ<br /> nµo:<br /> [>t;<br /> 138<br /> <br /> Nh− vËy, t ®−îc −íc l−îng theo gi¸ trÞ x=10 vµ do ®ã t ®−îc tÝnh to¸n thµnh<br /> t:=10^2+5*10-12=138.<br /> <br /> DÜ nhiªn, ta cã thÓ g¸n cho x gi¸ trÞ lµ tªn cña nã (lµ 'x') ®Ó x l¹i trë thµnh biÕn<br /> to¸n häc nh− cò:<br /> [>x:='x';<br /> [>t;<br /> <br /> x := x<br /> x 2 + 5 x − 12<br /> Chó ý Mét lçi mµ nhiÒu ng−êi sö dông Maple th−êng m¾c ph¶i lµ: dïng biÕn i<br /> lµm biÕn ch−¬ng tr×nh, råi sau ®ã th× l¹i dïng i nh− chØ sè cña tæng trong lÖnh tÝnh<br /> to¸n tæng sum. VÝ dô d−íi ®©y minh ho¹ cho vÊn ®Ò nµy.<br /> <br /> [>x:=3;<br /> x := 3<br /> <br /> [>i:=4;<br /> i := 4<br /> <br /> [>x^i!;<br /> 282429536481<br /> <br /> B©y giê xem i nh− lµ kÝ hiÖu to¸n häc vµ thùc hiÖn lÖnh sum() trong ®ã i lµ chØ sè<br /> tÝnh tæng:<br /> 89<br /> <br />