Xem mẫu

Ch−¬ng 3

C¸c kh¸i niÖm vµ c¸c hµm c¬
b¶n trong lËp tr×nh trªn Maple

3.1. C¸c kh¸i niÖm c¬ b¶n ........................................................................... 85
3.1.1. Tªn (name) vµ x©u kÝ tù...................................................................... 86
3.1.2. BiÕn trong Maple ................................................................................. 87
3.1.3. Sù ®Þnh gi¸ ........................................................................................... 87
3.1.4. Ng¨n c¶n ®Þnh gi¸ .............................................................................. 90
3.1.5. Sù tù ®éng ®¬n gi¶n biÓu thøc........................................................... 91
3.1.6. C¸c tÝnh to¸n sè trong Maple ............................................................ 92
3.2. C¸c hµm th−êng dïng trong Maple ................................................. 92
3.2.1. ¦íc l−îng gi¸ trÞ .................................................................................. 92
3.2.2. §¬n gi¶n biÓu thøc: lÖnh simplify .................................................. 94
3.2.3. T×m gi¸ trÞ lín nhÊt vµ bÐ nhÊt............................................................ 96
3.2.4. Thay thÕ trong biÓu thøc: lÖnh subs................................................... 97
3.2.5. Tæ chøc biÓu thøc theo mét sè biÕn chÝnh ....................................... 99
3.2.6. S¾p xÕp c¸c sè h¹ng........................................................................ 100
3.2.7. ChuyÓn ®æi d¹ng cÊu tróc d÷ liÖu (lÖnh convert) ......................... 102
3.2.8. Thùc hiÖn mét phÐp to¸n trªn nhiÒu thµnh phÇn........................... 104
3.2.9. Xem cÊu tróc vµ thµnh phÇn cña mét biÓu thøc .......................... 105
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

85

3.2.11. KiÓm tra mét tªn ®· ®−îc g¸n hay ch−a ..................................... 109
3.3. C¸ch t¹o lËp hµm trong Maple .........................................................111
3.3.1.ThiÕt lËp c¸c hµm kÐp (hµm hîp, hµm lång nhau) ....................... 111
3.3.2. §Þnh nghÜa hµm b»ng to¸n tö mòi tªn (->)..................................... 112
3.3.3. §Þnh nghÜa hµm b»ng to¸n tö hîp thµnh @.................................... 113
3.3.4. Dïng chu tr×nh proc()...end ®Ó t¹o hµm.................................... 114
3.4. C¸c cÊu tróc d÷ liÖu c¬ b¶n ..............................................................117
3.4.1. CÊu tróc d÷ liÖu d·y ......................................................................... 117
3.4.2. CÊu tróc tËp hîp vµ danh s¸ch....................................................... 119
TËp hîp...................................................................................................................... 119
Danh s¸ch.................................................................................................................. 119
LÖnh t¹o danh s¸ch vµ tËp hîp.................................................................................. 120

3.4.3. CÊu tróc d÷ liÖu b¶ng....................................................................... 122
LÖnh t¹o b¶ng............................................................................................................ 122

3.4.4. CÊu tróc d÷ liÖu m¶ng...................................................................... 124
3.4.5. Sparse, symmetric, nh÷ng gi¶n ®å chØ ®Þnh ®Æc biÖt cho m¶ng vµ
b¶ng ............................................................................................................. 126

3.1. C¸c kh¸i niÖm c¬ b¶n
3.1.1. Tªn (name) vµ x©u kÝ tù
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
nh·n ®Ó ®¹i diÖn cho c¸c ®èi t−îng trong Maple cã thÓ thay ®æi ®−îc (nh− biÕn, kÝ
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
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
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 ®ã
(víi m¸y 32-bit th× chiÒu dµi tèi ®a cña tªn lµ 524275).
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Þ
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.
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
biÕn toµn côc, vµ v× thÕ chóng ta nªn tr¸nh sö dông chóng.
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×
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
86

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
kú b»ng c¸ch cho nã vµo trong cÆp dÊu nh¸y ®¬n ( ` ) (backquote), thÝ dô nh− x©u
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
b»ng lÖnh `a variable!`:=10.
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
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Ø
®Õ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×
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ã
vµo trong cÆp dÊu nh¸y.
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ô
nh− khi ta viÕt: print(` I``m a student`); th× kÕt qu¶ sÏ cho ta x©u: I`m a student.

3.1.2. BiÕn trong Maple
BiÕn trong Maple lµ nh÷ng tªn ®−îc dïng ®Ó thay thÕ cho mét ®èi t−îng nµo
®ã, 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
gi¸ trÞ,... Cã hai lo¹i biÕn trong Maple: BiÕn lËp tr×nh vµ biÕn to¸n häc.
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
l−u tr÷ cho ®Õn tËn lóc nã thùc sù bÞ thay ®æi.
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¸
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
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
häc) trong Maple th× b¹n cã thÓ nghÜ r»ng biÕn to¸n häc trong Maple lµ biÕn ®−îc
g¸n mµ gi¸ trÞ lu«n b»ng chÝnh tªn biÕn.
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
kh¸c, c¸c ch÷ sè, vµ dÊu g¹ch d−íi.

3.1.3. Sù ®Þnh gi¸
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
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¸
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
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
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
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
tiÕt b»ng c¸ch ph©n tÝch mét vÝ dô cô thÓ.
XÐt d·y c¸c phÐp g¸n:
[>restart;
[>z:=y;
y:=t;
t:=x^2+5*x-12;

87

x;

z := y
y := t
t := x 2 + 5 x − 12

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
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
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).
Sau c¸c phÐp g¸n, gi¸ trÞ cña

z , y , t ®Òu tham chiÕu ®Õn biÓu thøc

x + 5 x − 12 , chóng ®−îc xem nh− lµ biÕn cã thÓ lËp tr×nh ®−îc, gièng nh− kh¸i
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Ø
®−î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è :
2

[>z;
x 2 + 5 x − 12

[>y;
x2 + 5 x − 12

[>t;
x 2 + 5 x − 12

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
®æi, vµ tÊt nhiªn gi¸ trÞ cña z còng b»ng gi¸ trÞ cña y:
[>y:=10;
y := 10

[>z;
10

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
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
ch−¬ng tr×nh (tøc lµ cã ph¶i chóng ®· ®−îc g¸n gi¸ trÞ) hay kh«ng. NÕu ®óng nh−
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,
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
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
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
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
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
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
to¸n trªn ®Êy. Nh− vËy, trong vÝ dô trªn, khi ®äc ®Õn z ®Ó in gi¸ trÞ cña nã, Maple
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
z. Cßn biÕn t vÉn kh«ng thay ®æi néi dung cña nã:
88

[>t;
x 2 + 5 x − 12

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
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
ch−¬ng tr×nh, thÝ dô:
[>x:=10;
x := 10

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Õ
nµo:
[>t;
138

Nh− vËy, t ®−îc −íc l−îng theo gi¸ trÞ x=10 vµ do ®ã t ®−îc tÝnh to¸n thµnh
t:=10^2+5*10-12=138.

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
to¸n häc nh− cò:
[>x:='x';
[>t;

x := x
x 2 + 5 x − 12
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
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
to¸n tæng sum. VÝ dô d−íi ®©y minh ho¹ cho vÊn ®Ò nµy.

[>x:=3;
x := 3

[>i:=4;
i := 4

[>x^i!;
282429536481

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è
tÝnh tæng:
89