Giáo trình MSWLogo

I. MSWLogo là gì.  
Gii thiu.  
Là mt ngôn nglập trình được thiết kế và phát trin bi Seymour Papert, Daniel Bobrow và  
Wallace Feurzeig. Trong chương trình này bạn sẽ điều khin 1 hoc nhiu con rùa (là mt hình  
tam giác) di chuyển trên sân chơi thông qua các lệnh, bên cạnh đó nó cũng được dùng để xử  
lý tính toán xđưa ra kết qucác bài toán lp trình phc tp.  
Cách cài đặt.  
Bn có thtải chương trình từ nhiu ngun trên mng hoc theo địa chsau  
http://www.softronix.com/download/mswlogo65.exe và cài đặt theo hướng  
dn của chương trình. Sau khi cài đặt xong bn sthy biểu tượng của chương  
trình ngoài Desktop.  
Giao din MSWLogo.  
Cách viết và lưu một chương trình.  
Vi MSWLogo bn có ththoát bng cách Click vào  
Bn có thra lnh cho Mswlogo làm vic thông qua các lnh nhn tbàn phím vào ngăn nhập  
lnh và nhn phím enter hay Click để ra lnh cho Mswlogo thc hin lnh. Tuy nhiên  
hoc nhp lnh Bye.  
khi bạn thoát chương trình thì những lnh này sẽ không lưu lại, bn phi thc hin li từ đầu  
ln làm vic tiếp theo, nếu muốn lưu lại bn thc hin theo trình tsau.  
Bước 1: Click vào Edall để mkhung son thảo chương trình.  
Bước 2: Đặt tên chương trình sau to, kế đó bạn ghi các lnh mà bn mun thc hin gia  
to end. d:  
Các  
lnh  
cn  
thc  
hin  
Bước 3: Click File Save and Exit. Nếu có li, bn sẽ được thông báo và phi chnh sa li  
xong mi có ththoát ra. Sau đó, bn có thgọi chương trình từ ngăn lệnh bng lnh  
Ve_Hinh_Vuong và nhn phím enter, kế đó hãy lưu lại thành file chương trình của Mswlogo.  
Bước 4: Click vào File Save và lưu lại thành tp tin mặc định ca Mswlogo .lgo.  
Chn File Save  
Chn vị trí lưu trên máy  
Đặt tên cho tp tin tại đây  
Click Save  
Như vậy ln làm vic sau mun tiếp tc làm vic bn chcn Click FileLoad… để mở file đã  
lưu ra làm tiếp.  
II. Mt slệnh cơ bản.  
Nhóm lnh di chuyn.  
Khi di chuyn từ điểm này qua điểm khác tùy theo trng thái ca bút v. Trên đường di chuyn,  
rùa sẽ để lại đường đi trên sân chơi. Sân chơi có tọa độ ±500 cho 4 góc và ngay ti vtrí chính  
gia có tọa độ x = 0, y = 0. Có mt slnh di chuyn tvtrí hin ti ti mt vị trí nào đó như  
sau:  
a) FORWARD viết tt FD, cú pháp: FD n đi thẳng ti n bước, n có thmang giá trâm lúc  
đó rùa sẽ đi lùi.  
b) BACK viết tt BK, cú pháp: BK n đi lùi lại n bước.  
c) SetX n di chuyn ti tọa độ có vtrí là (n,y) -500 ≤ n ≤ 500. Tọa độ y là y hin ti ca rùa.  
d) SetY n di chuyn ti tọa độ có vtrí là (x,n) -500 ≤ n ≤ 500.  
e) SetXY x y di chuyn tvtrí hin ti ti tọa độ x, y.  
f) SetPOS [x y] tương tự lnh SetXY.  
g) Home tvtrí hin ti di chuyn vngay tọa độ (0,0).  
h) Right n Viết tt RT, xoay rùa vphía bên phi một góc n độ.  
i) Left n Viết tt LT, xoay rùa vphía bên trái một góc n độ.  
Ví d1: Vẽ tam giác đều có độ dài cnh là 250.  
Bước 1: Nhn lnh FD 250 vào  
ngăn nhập lnh ri nhn  
enter, ta sthy ngay lp tc  
rùa tvị trí ban đầu chy  
thng lên một đoạn là 250.  
Bước 3: Nhn lnh FD 250.  
(lp li B1).  
Bước 4: Xoay rùa mt góc  
120 độ. (lp li B2)  
Bước 2: Xoay đầu rùa để khi  
di chuyn to thành mt góc  
60 độ. Rùa đang ở hướng  
thng 180 - x = 60 x = 120  
là góc phi xoay. Nhn RT 120  
(ho
c
LT 120
)  
Bước 5: Nhn lnh FD 250.  
(lp li B1). Xong  
Ví d2: Vhình chnht có chiu dài là 300 và chiu rng là 200.  
Ví d3: Vtheo tọa độ hình sau:  
Chú ý: ví dnày có thsdng lnh SetPOS cũng có kết quả tương tự, hình minh ha.  
Dưới đây, ta to một chương trình con tên là HCN rồi sau đó gọi chương trình đó ra. Vi  
SETX, SETY, SETXY, SETPOS thì góc quay rùa không thay đổi.  
Nhóm lnh vẽ đường tròn, cung tròn và ellipse.  
a) ARC a r Vcung tròn vi góc là a và bán kính là r. Sau khi vẽ xong rùa đứng yên ti tâm.  
b) ARC2 a r Vcung tròn vi góc là a và bán kính là r. Bắt đầu vtchỗ rùa đang đứng, vẽ  
tới đâu rùa đi theo tới đó (rùa nm trên cung tròn).  
c) ELLIPSE x.ngang y.cao Vhình ellipse vi 2 thông s, chiu ngang theo trc x, chiu cao  
theo trục y, rùa đứng yên ti tâm.  
d) ELLIPSE2 x.ngang y.cao Vhình ellipse vi 2 thông s, chiu ngang theo trc x, chiu  
cao theo trc y, rùa chy theo đường ellipse.  
e) ELLIPSEARC độ dài cung x y góc. dmun v1 na vòng ellipse ở phía trước mt rùa  
(90) lệnh như sau : ELLIPSEARC 180 150 80 90  
f) ELLIPSEARC2 Rùa chy theo cung khi v.  
g) CIRCLE r Vẽ đường tròn bán kính r rùa đứng ti tâm.  
h) CIRCLE2 r Vẽ đường tròn bán kính r rùa di chuyển theo đường tròn, sau khi hoàn thành  
rùa nẳm trên đường tròn.  
ARC 160 150  
ELLIPSE 150 200  
ELLIPSEARC270 150 80 0  
Circle 150  
Các lnh ARC2, ELLIPSE2 , ELLIPSEARC2, Circle2 vcác thông số cũng giống như ARC,  
ELLIPSE, ELLIPSEARC, Circle các bn ttìm hiu.  
Nhóm lnh vbút v, màu sc.  
a) Pen Up viết tt là PU :  
Lnh này nhc viết ca rùa lên và kết qulà khi di chuyển rùa không để li du vết.  
b) Pen Down viết tt là PD :  
Lnh này hviết ca rùa xung. Các lnh di chuyn sau lnh này ta sthy du vết ca sdi  
chuyn.  
c) PENERASE viết tt PE :  
Đặt bút xung và thiết lp chế độ xóa. Dùng lnh PPT/ PENNORMAL để thiết lp li trng thái  
trước đó/ trng thái ban đầu ca bút v.  
d) SetPenSize [n1 n2]  
Thiết lập độ dày, cao ca nét v. Lnh này có ththc hiện qua Menu Set→Pen Size …  
e) SETPENCOLOR viết tt SetPC [Red Green Blue]  
Thiết lp màu cho bút vRed, Green, Blue có giá trtừ 0→255, ví dụ SetPC [255 0 0] scho ta  
màu đỏ. Có thsdng 16 màu có sn t0 15  
f) Setfloodcolor [R G B] viết tt SetFC[R G B]  
Cài đặt màu nn (ging SetPC) và tô bng lnh FILL.  
g) FILL Tô màu nn trong phm vi khép kín ca hình.  
Màu nền tô đã được báo trước bng lnh Setfloodcolor. Lnh Fill không cn phi hbút xung  
mà vẫn tô được.  
Ví d1: Vẽ tam giác đều cnh 200 và tô màu đỏ bên trong.  
To TamGiac  
Setfloodcolor [255 0 0 ] ; đặt màu tô nn là màu đỏ.  
FD 200 RT 120 FD 200 RT 120 FD 200 ; vẽ tam giác đều độ dài cnh 200.  
PU ; nhc bút.  
LT 45 ; xoay trái 45 độ.  
BK 50 ; đi lùi vào trong 50 bước . 3 dòng lnh PU LT và BK mục đích là đưa rùa vào bên  
trong hình tam giác đều.  
FILL ;Nhng ký tsau dấu ; được xem là ghi chú MSWLogo không thc hin nhng dòng  
này.  
END  
Kết quả ta được hình tam giác tô màu đỏ.  
Nhóm lnh vin kết qu, thông báo.  
a) PRINT [Ni dung, kết qu, thông báo] viết tt PR ví dPR 1+2+3 ra kết qulà 6 trong  
ca slnh.  
b) SHOW [ni dung, kết qumun in ], lệnh tương tự PR.  
c) LABEL thì hin ra kết quả ở sân chơi, nếu mun hin ththeo chiu ngang thì chúng ta  
phi xoay rùa vphải 90 độ, nếu mun hin thnhiều hơn một tthì sdng:  
Label [Đây là nội dung muốn đưa ra sân chơi].  
Label (List “Các “từ “sau “đây “sẽ “hiển “thị “ra “ngoài “sân “chơi).  
Nhóm lnh vvtrí rùa.  
a) HIDETURTLE viết tt HT n rùa, không thấy hình tam giác (Rùa) trên sân chơi nữa.  
b) SHOWTURTLE viết tt ST hin rùa.  
c) POS cho ta biết vtrí hin ti ca rùa. Ví d: Show POS  
d) CLEARSCREEN viết tt CS xóa sân chơi, đưa rùa về vị trí ban đầu(0,0). Nếu có nhiu rùa  
thì xóa luôn chỉ để li 1 rùa.  
e) CLEAN Xóa hết các nét vẽ trên sân chơi, rùa giữ nguyên vtrí và góc độ.  
f) CLEARTEXT viết tt CT , xóa hết tt ccác lệnh đã nhập trong ngăn lệnh.  
g) HOME Đưa rùa về vị trí ban đầu (0,0).  
h) HEADING Cho biết đầu rùa đang xoay ở vị trí bao nhiêu (0 đến 360)  
i) SetHeading n Quay rùa vgóc n độ, tương tự RT hoc LT.  
j) TOWARDS x y Quay đầu rùa về hướng tọa độ x, y.  
k) DISTANCE x y đo khoảng cách tvtrí hin ti ti tọa độ x y.  
III. Các phép toán trong MSWLogo.  
Cng, tr, nhân, chia, ( ).  
MSWLogo thc hin theo trình tự ưu tiên trong ngoặc trước ri ti *, /, +, -. Ví d:  
d: Print 2+3*4 cho kết qulà 14.  
d: Print (2+3)*4 cho kếtqulà 20.  
Phép toán logic AND, OR, NOT.  
a) AND đk1 đk2 nếu mun nhiều hơn thì viết như sau (AND đk1 đk2 đk3 đk4…) AND chỉ  
đúng (TRUE) khi tất cả các điều kin bên trong đều đúng.  
b) OR đk1 đk2 nếu mun nhiều hơn thì viết như sau (OR đk1 đk2 đk3 đk4…) OR chsai  
(FALSE) khi tt cả các điều kiên bên trong đều sai.  
c) NOT đk Nếu đk là đúng thì trả vgiá trị sai và ngượi li.  
Trong thc tế để gii quyết một bài toán đôi khi cần phi phi hp nhiu các phép toán logic  
li vi nhau.  
NOT EQUALP(<>), EQUALP(=), LESSP(<), GREATERP(>).  
MSWLogo không cho phép thc hin trc tiếp phép toán <>, <=, >= mà phi thông qua hàm,  
cách viết như sau:  
NOT EQUALP thay cho <>. Ví dShow Not Equalp 3 5 đúng (true)  
<=, >= Sdng chung vi hàm OR Ví dShow (OR 3>5 3=5) 3≥5 Show (OR 3<5 3=5) 3≤5.  
Các phép toán <, >, = sdụng bình thường.  
IV. Biến là gì, cách khai báo, phm vi biến.  
Định nghĩa.  
Biến là 1 vùng trong bnhớ, được đặt tên bng mt dãy chvà số, dùng để lưu trữ các giá trị  
(s, chhoc logic). Biến có thdo hthng to sn hoặc do người dùng ttạo ra để giúp gii  
quyết các bài toán lp trình, ta có thể thay đổi giá trca biến. Ti sao phi dùng bin? Có thể  
hiu một cách đơn giản nht: Dùng biến để gii mt bài toán dng tng quát nht.  
Phm vi ca biến, cách khai báo.  
Biến có thể được sdng ttt cả các chương trình khác nhau thì gọi là biến toàn cc, nếu  
biến đó chỉ sdng trong một chương trình thôi và khi kết thúc chương trình thì nó biến mt  
thì gi là biến cc b. Trong MSWLogo có thkhai báo biến ở đâu cũng được, tuy nhiên nên  
khai báo ở đầu chương trình. Tên biến bắt đầu bàng mt chữ cái và không được ging vi các  
lnh ca Mswlogo.  
Make “tên_biến_toàn_cc giá_trị_ban_đầu  
Local “tên_biến_cc_bộ  
Khi muốn đọc giá trca mt biến nào đó thì thêm dấu : trước tên biến  
Khi muốn thay đổi giá trca biến sdụng Make “tên_biến giá_tr_mi  
Hãy xem mt ví d:  
Ca sson thảo chương trình con  
Ca schính ca MSWLogo  
Label (List :a "+ :b "= :a+:b)  
Gọi chương trình Tong_Cong  
Show :a+:b  
Truy cp giá trbiến ccb, bli  
Truy cp giá trbiến toàn cc  
Truyn biến cho chương trình.  
Để truyn mt giá trị vào chương trình con thì ngay phần khai báo tên chương trình con, ta  
phi lit kê các biến truyn vào, biến này là biến cc b.  
Ví d1 : viết một chương trình cộng 2 sbt k.  
Ví d2 : viết chương trình vẽ hình tam giác đều vi chiu dài cạnh được truyn từ  
ngoài vào.  
V. Lnh rnhánh.  
Khi mun da vào một điều kiện nào đó để quyết định công vic ca mình, ta sdng cu trúc  
rnhánh, có 2 dạng thường gp.  
Nếu đúng thì…  
IF điều kin [Lnh sthc hin nếu điều kiện là đúng]  
Nếu đúng thì… ngược lại thì….  
IFELSE điều kin [Lnh thc hin nếu điều kiện là đúng] [Lnh thc hin nếu điều kin là sai]  
Ví d:  
Đưa vào 2 số và in ra sân chơi số ln hơn:  
VI. Vòng lp trong MSWLogo.  
Khi mt lnh hay nhiu lnh lặp đi lặp li nhiu lần thì người ta sdng vòng lp, trong  
MSWLogo có 2 loi vòng lp chính : Vòng lp biết trước sln lp (For, Repeat) và vòng lp  
không biết trước sln lp (While, Until). Đối vi vòng không biết trước sln lp, chúng ta  
phi có biến để kim soát giúp nó thoát ra, nếu không thoát ra được trương trình sẽ chy không  
dng li bt buc ta phi bm nút  
máy tính btreo.  
để ngt ngang, nếu không có thdẫn đến vic  
Vòng lp REPEAT.  
REPEAT n [ lnh 1 lệnh 2…] n là sln mun thc hin các lnh trong []  
Xem li ví dvẽ tam giác đều trên ta thy lnh FD :canh RT 360/3 viết lp li 3 ln, bây giờ  
nếu dùng Repeat thì lệnh như sau:  
Còn vic vhình vuông vi cnh 150 bây gichỉ còn đơn giản như thế này REPEAT 4 [FD 150  
RT 90]  
Mt cách tổng quá để vẽ đa giác đều n cnh vi chiu dài là 200. Repeat n [FD 200 RT 360/n]  
Khi sdụng hàm REPEAT để biết svòng lp hin ti là bao nhiêu ta sdng hàm Repcount.  
din ra ca slnh các st1 ti 50 : REPEAT 50 [Show Repcount].  
Xem chương trình sau:  
Đây là chương trình vẽ mt hình vuông có cnh dài 200 và ti các cnh ca hình vuông li vẽ  
thêm các tam giác đều cnh 200.  
Kết qu:  
Bài tp mrng: Vhình sau: (Gi ý: Hình trên được to bởi các hình ngũ giác xếp chng vào  
nhau (Trích đề thi tài năng trẻ tin hc ca mt stnh)  
Bạn đoán thử xem lnh này vra hình gì ? Repeat 24 [Circle2 90 RT 360/24]  
Vòng lp FOR.  
For cũng là một vòng lp vi sln lp biết trước, tuy nhiên for linh hoạt hơn Repeat chnó  
có thchỉnh được bước nhy, với repeat thì bước nhảy luôn là 1, 2, 3, 4 ….  
FOR [biến chy  
giá trbắt đầu  
giá trcui bước tăng] [Lệnh…]  
d:  
1) For [i 1 100 1][Show :i] in ra 1, 2, 3, 4, …, 100  
2) For [i 3 100 2][Show :i] in ra 3, 5, 7, 9, …, 99  
3) For [i 0 100 10][Show :i] in ra 0, 10, 20, 30, …, 100  
4) For [i 100 0 -1][Show :i] in ra 100,99,98,97, …, 0  
Bài tp: Biết rng MODULO là hàm chia lấy dư của 2 s, cú pháp lnh MODULO a b.  
Ví d: Modulo 5 3 được giá trlà 2. Tính tng các schia hết cho 3 từ 1 đến 100. (Gi ý: Sử  
dng For, IF và mt biến dùng để tính tng IF (Modulo :i 3)=0)  
Vòng lp WHILE.  
Vòng lp While được sdụng trong các trường hp không biết trước sln lp, tuy nhiên vn  
có thsdụng trong trường hp biết sln lp. Khi sdng while cn phi kim soát biến để  
vòng lp có ththoát ra.  
WHILE [điều kin] [Lệnh…]  
Trong khi điều kin đúng thì thực hin lnh.  
d1:  
Vòng lp  
i
:i<3  
Lnh  
Kết quả  
Make "i 0  
While [:i<3] [  
Make "i :i+1  
Print :i]  
1
2
3
0
1
2
0<3 (Đ)  
1<3 (Đ)  
2<3 (Đ)  
i=0+1 in ra 1  
i=1+1 in ra 2  
i=2+1 in ra 3  
Tăng i lên  
1, in :i ra  
Ngng li, thoát khi vòng lp  
4
3
3<3 (S)  
Ví d2: Chương trình sau đây sẽ vliên tiếp các đường thng ttrong ra ngoài mi ln vcnh  
tăng lên 5 đơn vị và xoay vbên phi một góc 91 độ.  
Vòng lp UNTILL.  
Vòng lặp Untill cũng tương tự While điểm khác bit của nó được rút gn như sau:  
While đúng thì làm, sai thì thoát (Làm ti khi sai)  
Until đúng thì thoát, sai thì làm (Làm tới khi đúng)  
Vòng lp  
i
:i>3  
Lnh  
Kết quả  
1
2
3
0
1
2
0>3 (S)  
1>3 (S) 1, in giá trị  
2>3 (S)  
i=0+1 in ra 1  
i=1+1 in ra 2  
i=2+1 in ra 3  
i=3+1 in ra 4  
Tăng i lên  
Make "i 0  
Until [:i>3] [  
ca i ra  
Make "i :i+1  
Print :i]  
4
3
3>3 (S)  
Ngng li, thoát khi vòng lp  
5
4
4>3 (Đ)  
d: Biết S=3+6+9+12+15+…+n, với n= bao nhiêu thì S ln nht mà vn nhỏ hơn 90  
Cách viết bng While.  
Bn có biết vì sao i li mang giá tr24.  
Cách viết bng Until  
Yêu cu: điều kin ca vòng lp Until không dùng Not.  
Bài Tp  
Bài 1: Mswlogo là gì.  
Mc tiêu: Biết được Mswlogo là gì, cách mở, đóng chương trình, các nhp lnh và cách lưu  
lại bài dưới dng file .lgo.  
Câu hi:  
1. Chương trình Mswlogo dùng để làm gì?  
2. Ngay giữa sân chơi biểu tượng tam giác đưc gi là gì?  
3. Phn mrng ca Mswlogo là gì?  
4. Các bước để có thể lưu lại mt bài lp trình trên Mswlogo?  
Bài 2: Mt slệnh cơ bản.  
Mc tiêu: Sdụng được mt slnh thông dụng, điều khin rùa di chuyn xoay và tô màu.  
Vẽ được mt số hình đơn giản.  
Câu hi:  
1. Hãy cho biết các lệnh sau đây sẽ tác động như thế nào đến hoạt động ca rùa?  
a. FD, RT, BK, LT  
b. SetX, SetY, SetXY, Home  
c. CS, CT  
d. PU, PD  
e. SetPC, SetFC, Fill  
2. Dùng các lệnh đã học để vcác hình sau:  
Bài 3: Các phép toán trong Mswlogo.  
Mc tiêu: Viết và hiểu được cách tính các phép toán bình thường và phép toán logic.  
Câu hi:  
1. Cho biết kết quca phép toán: 7+(7+7)*7+7/7-7 =?  
2. NOT (AND OR(5>3 2=9) 1+1=2) kết qunhận được cui cùng là true hay false?  
Bài 4: Biến là gì, khai báo, phm vi.  
Mc tiêu: Hiểu được biến là gì, phm vi ca biến, biết cách khai báo và thay đổi giá trca  
biến.  
Bài 5: Lnh rnhánh.  
Mc tiêu: Đưa được phép toán logic vào trong biu thức điều kin ca lnh rnhánh IF và  
IFELSE, biết phi hp nhiều điều kin li với nhau để diễn đạt được yêu cu ca bài toán.  
Bài 6: Vòng lp.  
Mc tiêu: Biết cách đưa những lnh ging nhau vào trong vòng lp, hiểu được cách thc làm  
vic ca các vòng lp REPEAT, FOR, WHILE, UNTIL  
Sdng vòng lp và các lệnh đã học vnhng hình sau:  
Các hình vuông có cạnh là 20  
xếp lên nhau tạo thành hình tam  
giác vuông. Dùng FOR, hoặc  
Repeat vẽ từ trên xuống dưới  
6 hình tròn lồng nhau  
cách nhau 10 bước  
6 hình ellipse lồng nhau  
cách nhau 10 bước  
10 hình ngũ giác cách nhau  
một góc 360/10  
6 hình vuông cách nhau một góc  
6 hình lục giác cách nhau  
một góc 360/6  
360/6  
5 hình tam giác đều cách nhau một góc 360/5  
8 hình tròn cách nhau một góc 360/8  
Đây là hình được to bởi 7 hình vuông cách nhau 10 bước.  
1. Xoay rùa 45 độ vbên phi vhình vuông.  
2. Nhc viết, xoay phải 45 độ đi tới 10 bước hviết xung.  
3. Lp lại bước 1 cho tới khi đủ 7 hình vuông.  
Đây là hình  
được to bi  
hình bát  
giác(đa giác  
đều 8 cnh).  
Ti tng cnh  
li vmt hình  
vuông có chiu  
dài cnh bng  
vi cnh ca  
đa giác.  
Vẽ 5 cánh sen, cung đường tròn là 60  
bán kính là 80  
Em hãy viết các câu lệnh trong chương trình MSWLogo để vHình 1 vi các cnh ca ngôi sao  
là 100, đường tròn cha ngôi sao có bán kính bng 162, sau khi vẽ xong đổ màu cho ngôi sao  
là màu cam (14).  
Em hãy tìm tt ccác schia hết cho 5 trong50 slẻ đầu  
tiên  
Trăm con gà giá trăm đồng. Gà trống 5 đồng mt con, gà  
mái 3 đồng mt con, gà con 2 con một đồng. Em hãy sử  
dng các câu lnh trong MSW Logo tính sgà trng, gà  
mái và gà con.  
Học sinh tự vẽ 3 hình này.  
Tải về để xem bản đầy đủ
pdf 24 trang yennguyen 26/03/2022 10840
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình MSWLogo", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_mswlogo.pdf