You are on page 1of 10

Lp trnh trn maple

1. Cc lnh lp trnh c bn 1.1. Vng lp While Cu trc c php: While <iu kin> do <dy lnh> od; Chc nng: Vng lp while cho php lp chui cc cu lnh gia do v od khi m iu kin condition vn cn ng (tc l biu thc iu kin cho gi tr true). iu kin condition c kim tra ngay ti u mi vng lp, nu n tha mn (gi tr ca n l ng) th cc cu lnh bn trong c thc hin, sau li tip tc kim tra iu kin condition cho n khi iu kin khng cn tha mn na.Vng lp while thng c s dng khi s ln lp mt hay mt chui biu thc l khng xc nh r, ng thi ta mun cc biu thc cn c lp trong khi mt iu kin no cn c tha mn. iu kin condition trong vng lp phi l mt biu thc boolean, tc l gi tr ca n ch c th l ng hoc sai, nu khng th s sinh ra li. Trong trng hp mun thot ra khi vng lp ngay t trong gia vng lp, ta c th thc hin bng cch dng cu lnh RETURN, break hoc quit. Ch rng vng lp while- do- od; khng bt buc phi nm trn nhiu dng lnh nhng ngi ta thng vit trn nhiu dng cu lnh d c v d hiu hn. Vng lp While cho php lp chui cc cu lnh nm gia do v od khi m iu kin vn cn ng.

1.2. Vng lp for Cu trc c php: for name from start by change to finish do statement sequence od; Hoc dng pht biu khc: for name in expression do statement sequence od; Chc nng: Vng lp for c dng lp mt chui cc biu thc c t gia do v od, mi ln lp tng ng vi mt gi tr phn bit ca bin ch s name ng sau t kho for. Ban u, gi tr start c gn cho bin ch s. Nu gi tr ca bin name nh hn hay bng gi tr finish th chui lnh nm gia do v od c thc hin, sau bin name c gn gi tr tip theo bng cch cng thm vo n gi tr change (name:=name+change). Sau , bin name c so snh vi finish quyt nh xem vic thc hin chui lnh c c tip tc na khng. Qu trnh so snh bin ch s name v thc hin chui lnh c lp lin tip cho n khi gi tr ca bin name ln hn gi tr finish. Gi tr cui cng ca bin name s l gi tr vt qu finish u tin. Ch . Nu cc t kha from start hoc by change b b qua th mc nh from 1 v by 1 c dng. Vng lp for- in- do- od thc hin vic lp vi mi gi tr m bin ch s name ly t biu thc expression cho. Chng hn vng lp ny c s dng hiu qu khi m gi tr ca bin name l mt phn t ca mt tp hp hoc danh sch.

Trong trng hp mun thot khi t gia vng lp, ta c th dng cc cu lnh break, quit, RETURN ging nh trong vng lp while. 1.3. Lnh iu kin if Cu trc c php: if condition then statement sequence | elif condition then statement sequence | | else statement sequence | fi; (Ghi ch: Cc cu lnh trong cp du ngoc ng l cc lnh tu chn. Th d: biu thc | statement | cho bit rng statement l mt cu lnh tu chn). Chc nng: Nu bn mun mt dy biu thc c thc hin khi iu kin no c tho mn v mt dy biu thc khc c thc hin nu tri li th c th dng cu lnh if- then- else- fi. Trong cu lnh trn, nu iu kin condition l ng th chui biu thc ng sau then c thc hin, nu tri li th iu kin condition sau t kho elif s c kim tra, nu n ng th chui lnh tng ng sau then c thc hin, c tip tc cho n khi cc iu kin condition u khng tha mn, th cc biu thc sau lnh else c thc hin. Lu rng cu trc lnh (tu chn) elif...then... c lp li vi s ln tu . T kho elif l dng vit tt ca else if. Cc biu thc iu kin condition c s dng trong cu lnh if phi c to thnh t cc bt ng thc, cc ng thc (cc php ton quan h), cc bin s, cc php ton logic, cc hm c gi tr tr li l gi tr logic. Nu tri li th s gy ra li. 1.4. Lnh break Cu trc c php: break Chc nng:

Trong lc vng lp while/for ang c thc hin, nu lnh break c gi th chng trnh s thot ngay lp tc ra khi vng lp while/for tn trong cng nht m c cha lnh break (v cng c th c nhiu vng lp while/for c lng nhau). Mt v d kh in hnh trong vic s dng lnh break l trong qu trnh tm kim search, r rng l bn s mun dng qu trnh qut li ngay khi bn tm thy i tng cn tm. Khi , ngay ti thi im tm thy, bn dng lnh break nhy ra khi vng lp tm kim. Trc lnh break thng c mt cu lnh iu kin if... then... Nu lnh break dng ngoi cc vng lp while/for th s sinh ra li. Ch : break khng phi l t kho (t dnh ring cho Maple), v vy ta c th gn gi tr cho bin c tn l break m khng h sinh ra li (mc d iu ny l khng nn). 1.5. Lnh next Cu trc c php: next Chc nng: Cng ging nh cu lnh break, lnh next c thc hin trong vng lp while/for vi mc ch b qua mt s lnh bn trong vng lp nhy qua ln lp tip theo. Khi gp lnh next trong vng lp, chng trnh b qua cc lnh tip theo ca vng lp tn cng nht cha next cho n khi gp t kho xc nh kt thc vng lp ( y l lnh od). n y vng lp tip tc nhy qua ln lp tip theo (nu c th) bng cch tng ch s hoc kim tra iu kin quyt nh xem c nn thc hin vng lp tip theo. Lnh next sinh ra li nu n c gi ngoi vng lp while/for. Tng t nh break, next cng khng phi l t kha, do ta hon ton c th gn cho next mt gi tr (xem nh next l mt bin). Ngay trc lnh next cng thng l mt cu lnh iu kin if... then...

1.6. S dng cc hm RETURN, ERROR Hm RETURN c s dng cho gi tr hm trc khi thot khi chu trnh. Nu khng c lnh RETURN, chu trnh t ng cho kt qu ca php tnh cui cng trong chu trnh. Hm ERROR c s dng a thng ip li ra mn hnh t bn trong chu trnh.

Cch Thit lp mt chu trnh


2.1. Gii thiu Maple l mt ngn ng lp trnh hng chu trnh (procedure). Chng ta c th lm vic vi Maple bng hai ch khc nhau: Ch tng tc trc tip thng qua vic nhp tng lnh n l ngay ti du nhc lnh ca Maple v nhn c ngay kt qu ca lnh . Ch chu trnh c thc hin bng cch ng gi mt dy cc lnh x l cng mt cng vic vo trong mt chu trnh (procedure) duy nht, sau ta ch cn gi chu trnh ny v Maple t ng thc hin cc lnh c trong chu trnh mt cch tun t v sau tr li kt qu cui cng. Maple cha mt lng rt ln cc hm to sn p ng cho nhng yu cu tnh ton khc nhau trong nhiu lnh vc. Cc hm ny c lu tr trong cc gi chu trnh (package) v ngi s dng c th d dng gi n mi khi cn thit. Tuy nhin, ngi dng Maple c th t to cho ring mnh nhng gi chu trnh cng nh c th trao i dng chung nhng gi chu trnh no y, phc v cho cng vic mang tnh c th ring ca mnh. Cc khi nim c bn cn phi nm vng to ra mt chu trnh (procedure) l: Cu trc proc()..end; cng vi cc khai bo trong cu trc ny (global, local, option,...). Cc cu trc d liu v cc hm c lin quan (dy-sequence, tp hp-set, danh sch-list, mng-array, bng-table). Cc hm lp trnh c bn ( nu trn) v cc hm lin quan n vic x l d liu (eval, evalf, subs, map, convert,...). 2.2. Khai bo chu trnh Li gi khai bo mt chu trnh: 6

procedure_name:=proc(parameter_sequence) [local local_sequence] [global global_sequence] [options options_sequence] statements_sequence; end; Gii thch cc khai bo: parameter_name: L mt dy cc k hiu, ngn cch nhau bi cc du phy, cha tn cc tham bin truyn cho chu trnh. local_sequence: L mt dy cc tn c khai bo l bin cc b trong chu trnh, n ch c gi tr s dng trong phm vi chu trnh ang xt (local c s dng khai bo cho cc bin ch s dng bn trong mt chu trnh). global_sequen: Dy cc tn bin ton cc c gi tr s dng ngay c bn ngoi chu trnh. options_sequence: Dy cc tu chn cho mt chu trnh. statements_sequence: Dy cc cu lnh do ngi lp trnh a vo. 2.3. Tham bin Tham bin (parameter) l cc bin c t gia hai du ngoc trong biu thc proc(...). Tham bin c dng nhn d liu truyn cho chu trnh khi gi chu trnh . V d ta c th khai bo chu trnh tnh tng ca 2 s [tong:=proc(x,y) x+y; end.] th khi gi chu trnh ny tnh tng ca hai s 10 v 5 ta phi truyn cc d liu ny cho cc tham bin (cho x nhn gi tr l 10, y nhn gi tr l 5), tc l ti du nhc lnh ta phi vit tong(10, 5); v sau khi thc hin chu trnh tr li kt qu l 15. Tham bin c tnh cc b: chng ch c s dng bn trong chu trnh c khai bo, bn ngoi chu trnh ny chng khng mang ngha g. Kiu ca tham bin c th c khai bo trc tip.

2.4. Phm vi cc bin (bin ton cc, bin cc b v tham bin) Bin ton cc: Bin ton cc c khai bo sau t kho global trong khai bo chu trnh. Bin ton cc c khai bo bn trong mt chu trnh, nhng c phm vi gi tr trong ton b chng trnh, tc l bn ngoi phm vi ca chu trnh m n c khai bo trong . Bin cc b: Bin cc b c khai bo sau t kho local trong khai bo chu trnh. Bin cc b ch c gi tr bn trong chu trnh m n c khai bo. Ngoi chu trnh ny n khng mang ngha g. Tham bin: Cng ging nh bin cc b, cc tham bin ch c gi tr bn trong phm vi ca chu trnh m n c khai bo. Sau khi chu trnh kt thc, chng khng cn gi tr. Tham bin cn c s dng tr li kt qu, nh cc ngn ng lp trnh truyn thng. Ngoi ra, do Maple c nhng hm c kh nng tr li nhiu hn mt gi tr. Ta c th gp cc gi tr ny vo mt danh sch tr li nh mt phn t. 2.5. nh gi trn cc bin nh gi tn hm v tham bin: Nh cp trc y, cc tn bin trong mt biu thc c Maple nh gi trc khi thc hin cc php tnh trn chng. i vi vic thc hin cc hm cng tng t nh vy. Trc tin l tn chu trnh c nh gi. Sau ln lt n cc i s trong danh sch cc i s truyn cho chu trnh (c nh gi t tri sang phi). Nu tn chu trnh c nh gi tr n mt chu

trnh, th chu trnh y c thc thi trn cc i s c nh gi. Tuy nhin vn c mt s chu trnh ngoi l: l cc hm eval, assigned, seq.

nh gi bin cc b v bin ton cc: Cc bin cc b v tham bin truyn cho chu trnh c nh gi mt cp (nh gi mt ln), cn cc bin ton cc th c nh gi hon ton (full evaluation). Hm eval(...) c dng p nh gi hon ton cho bin cc b v tham bin, v nh gi mt mc cho cc bin ton cc. 2.6. Cc chc nng khc Mun in ra mn hnh cc "vng lnh n" ta s dng bin
printlevel.

y l

cch n gin nht xem xt cc qu trnh thc hin lnh. Khi printlevel c gn
gi tr m th khng hin g c, nu c gn gi tr 0 th ch c kt qu ca cc cu lnh c hin ra.

D tng lnh trong chu trnh: trace(f) trace(f, g, h, . . .) Tham s: Cc hm f, g, h,... l cc hm cn chy tng bc. Lnh trace cho in cch thc hin tng lnh ca mt chu trnh ra mn hnh. Lnh d trace() hot ng tng t nh khi ta gn cho bin
hin. Trong sut qu trnh thc hin, cc im vo, cc kt qu ca cc cu lnh, cc im ra ca hm cn d c hin ra mn hnh. Cc tham bin c hin ra im vo chu trnh, gi tr tr li ca hm c hin ra im cui chu trnh. Ch : Khng th d tng bc mt s hm c quy tc nh gi c bit, bao gm: assigned, eval, evalhf, evalf, evaln, traperror, seq, userinfo. Xem m ngun mt chu trnh: showstat(procName) showstat(procName, statRange) Tham s: procName: Tn ca chu trnh cn hin th m ngun. StatRange: Phm vi cc dng lnh cn c hin th (t dng no n dng no). Phn ln cc lnh trong Maple u c vit bng ngn ng Maple, do chng ta c th c c m ngun ca nhng lnh ny. Maple cung cp hm showstat() hin on chng trnh l m ngun ca cc printlevel mt s ln c th hin ra mn hnh tt c cc cu lnh cng nh im vo v im ra ca hm m ta ang thc

lnh trn. Nh c hm ny m ngi hc lp trnh trn Maple c th d dng hc c cch thc cng nh c trng ngn ng bng cch nghin cu phng thc m cc lnh ca Maple thc hin (thng qua vic xem m ngun ca chng). Ta c th hin th mt phn m ngun ca cc chu trnh bng cch nh r phm vi ca cc dng cn th hin. Chng ta cng c th s dng cc hm print() v interface() c m ngun ca cc hm trong Maple. Thng thng th Maple khng hin th phn thn ca cc chu trnh nu ta cho hin th chng. Mun lm iu ny, ta phi gi lnh interface() vi tham s verbosepro =2 trc, sau dng lnh print th ta c th xem c thn ca chu trnh.

Chn bt li: traperror(expr1, expr2,...) Tham s: expr1, expr2,... l cc biu thc. Maple s dng bin lasterror lu thng bo li ca li xy ra mi nht trong qu trnh tnh ton. Ta c th s dng bin ny ging nh bt c bin no khc trong Maple, c th l ta c th gn gi tr bt k no cho n, tnh ton trn bin ny v ghi gi tr n ang lu tr ra mn hnh. Tuy nhin khi xy ra li, Maple t ng gn cho bin ny xu k t thng bo li m hm ERROR() s hin th ra mn hnh. Cng vi bin lasterror, hm traperror() c s dng chn bt mt li no trong mt biu thc trc khi li c thng bo ra mn hnh. Nu c li no xy ra trong lc nh gi tr hoc n gin biu thc, hm traperror() s tr li xu k t thng bo li ca li u tin gp phi khi tnh ton biu thc . Nu khng c li, hm traperror() tr li kt qu tnh ton biu thc. Mi ln gi n hm traperror(), Maple t ng xo i gi tr c c trong bn ln tnh ton trc.

10

You might also like