CHUYÊN ĐỀ 8 LÀM QUEN VỚI PHẦN MỀM LOGO Huỳnh Ngọc Nhi – Trường TH Phong Tân I. Giới thiệu về phần mềm Logo Microsoft Windows Logo (MSWLogo) là một ngôn ngữ lập trình dựa trên ngôn ngữ Logo, với Front-End GUI. Phần mềm được Microsoft phát hành rộng rãi cho tất cả người dùng trên toàn thế giới. Hiện nay bộ môn lập trình máy tính được đưa vào trường học rất sớm, các em học sinh lớp 4, lớp 5 đã được làm quen với những câu lệnh đơn giản của phần mềm MSWLogo. 1. Giao diện MSWLogo 1.1. Màn hình chính Chú Rùa Đường đi của Rùa Hình: Màn hình chính MSWLogo Khi Rùa di chuyển trên sân chơi sẽ để lại dấu vết trên đường đi. Em có thể điều khiển chú Rùa di chuyển bằng các câu lệnh. 1.2. Cửa sổ lệnh Các dòng lệnh đã thực hiện Ngăn gõ lệnh Hình. Cửa sổ lệnh MSWLogo Để điều khiển Rùa, bạn gõ lệnh vào ngăn gõ lệnh rối nhấn phím Enter. 2. Khởi động, thoát khỏi MSWLogo 2.1. Khởi động MSWLogo - Bạn nháy đúp chuột vào biểu tượng 2.2 Thoát khỏi MSWLogo - Cách 1: Nháy chuột vào biểu tượng (close) phía trên và ở góc phải của màn hình chính. - Cách 2: Vào File Exit II. Một số lệnh trong MSWLogo STT Lệnh viết tắt Lệnh đầy đủ Rùa làm Hình vẽ Rùa về vị trí xuất phát (ở chính giữa sân 01 HOME chơi, đầu hướng lên trên) Rùa về vị trí xuất phát. Xóa toàn bộ sân 02 CS Clean chơi. 03 CT Cleartext Xóa hết các dòng lệnh đã ghi. Rùa đi về phía trước n bước. 04 FD n Forward Ví dụ: FD 100 Rùa đi về phía trước 100 bước Rùa quay phải n độ. 05 RT n Right Ví dụ: RT 90 Rùa quay phải 90 độ. 06 BK n Back Rùa lùi lại sau n bước 07 LT k Left Rùa quay sang trái k độ. 08 PU Penup Nhấc bút (Rùa không vẽ nữa) 09 PD Pendown Hạ bút (Rùa tiếp tục vẽ). 10 PE PENERSE Đặt bút xuống và thiết lập chế độ xóa. Ví dụ: Vẽ hình vuông Repeat 4 [FD 100 rt 90] Sau đó ta xóa hình vuông đó đi, nếu dùng CS thì nó xóa toàn bộ sân chơi ở đây chỉ xóa hình vuông vừa vẽ ta dùng PE Repeat 4 [FD 100 RT 90] 11 PX Xóa bỏ chế độ xóa của PE 12 HT Hideturtle Rùa ẩn mình. 13 ST Showturtle Rùa hiện hình. 14 CLEAN Xóa màn hình, rùa vẫn ở vị trí hiện tại 15 BYE Thoát khỏi phần mềm Logo Lệnh vẽ hình tròn có bút vẽ nằm ở tâm hình tròn, n: chiều dài bán kính. 16 CIRCLE n Ví dụ: Đễ vẽ hình tròn có bán kính 100 ta gõ lệnh CIRCLE 100 Lệnh vẽ hình tròn có bút vẽ nằm trên 17 CIRCLE2 n đường tròn. Ví dụ: CIRCLE2 100 Vẽ hình ellipse có bán kính ngang n và bán 18 ELLIPSE n m kính đứng m. Ví dụ: ELLIPSE 100 50 Vẽ hình Ellipse có bút vẽ nằm trên đường 19 ELLIPSE2 m n bao ngoài hình ellipse. Ví dụ: ELLIPSE2 100 50 Vẽ một nữa vòng ellipse 20 ELLIPSEARC Ví dụ: ELLIPSEARC 180 150 80 90 Có thể thay đổi số 90 sẽ hiểu ra cách làm Vẽ cung tròn với góc là a và bán kính là r. Sau khi vẽ xong rùa đứng yên tại chổ. 21 ARC a r Aroundcircle Ví dụ: arc 120 120 Vẽ cung tròn, Rùa chạy theo đường tròn. 22 ARC2 Aroundcircle2 Vẽ tới đâu rùa đi theo tới đó. Ví dụ: arc2 120 120 Lặp n lần 23 REPEAT n [ ] Ví dụ: REPEAT 4 [FD 100 RT 90] Lệnh này sẽ lặp lại 4 lần vòng lệnh “FD 100 RT 90” Lệnh này để rùa tạm ngưng n tíc (60 tíc bằng 1 giây) trước khi thực hiện công việc tiếp theo. 24 WAIT n Ví dụ: WAIT 120 REPEAT 4 [FD 100 RT 90 WAIT 120] Là thủ tục Logo. To tamgiac1 Thủ tục là một dãy các thao tác được thực FD 100 RT 120 hiện theo thứ tự để hoàn thành một công việc nào đó. FD 100 RT 120 25 - To: là từ bắt đầu của mọi thủ tục. FD 100 RT 120 Sau to là tên thủ tục (tamgiac1) do End bạn tự đặt. - Các câu lệnh, các thao tác bên trong thủ tục gọi là thân thủ tục. - End: là từ kết thúc của mọi thủ tục gọi là kết thúc thủ tục. Ví dụ: Tạo ra biến để thay đổi chiều dài của một hình vuông thì chỉ cần chỉnh sửa kích thướt lại. Sử dụng biến trong To hinhvuong :n thủ tục 26 Repeat 4 [ fd :n rt 90] End Muốn vẽ hình vuông 100 ta gõ hinhvuong 100 27 LABEL Viết chữ lên màn hình Logo Ví dụ: LABEL [Xin chao cac ban !] Câu lệnh này sẽ viết dòng chữ “Xin chao cac ban ! theo hướng hiện thời của Rùa lên màn hình Logo. Cho hiện trên màn hình kết quả các phép tính. - Có thể thực hiện bốn phép toán: cộng (+), trừ (-), nhân (*), chia(/) trong Logo. Ví dụ: 28 PR PRINT Câu lệnh Kết quả Print 2+3*4 14 Print (2+3*4) 14 Print (2+3)*4 20 Cho kết quả tương tự như lệnh PRINT 29 SHOW Ví dụ: SHOW 2+3*4 kết quả 14 Lưu lại các thủ tục trong Logo: Các thủ tục 30 SAVE mà em viết và thực hiện ở các bước trên mới chỉ được lưu lại tạm thời trong bộ nhớ. Muốn sử dụng lại các thủ tục này cho các phiên làm việc tiếp theo, em cần ghi chúng vào một tệp. Muốn vậy, cần làm theo các bước sau: 1. Nháy chuột trong ngăn gõ lệnh. 2. Chọn một tên thích hợp, gợi nhớ tới công việc hiện tại, ví dụ: Banhoc1, dùng làm tên tệp, phần mở rộng của tên tệp nên chọn là lgo, theo gợi ý của phần mềm MSG Logo. 3. Gõ lệnh SAVE “Baihoc1.lgo và nhấn phím Enter. Logo sẽ lưu các thủ tục vào một tệp với tệp đầy đủ Baihoc1.lgo trong một thư mục định sẵn. Nạp một tệp để làm việc: Khi muốn nạp một tệp chứa các thủ tục đã được lưu ở thư mục do Logo đã định trước trong máy tính, em làm theo các bước sau: 31 LOAD 1. Nháy chuột trong ngăn gõ lệnh. 2. Nhớ lại tên tệp muốn nạp, ví dụ: Baihoc1.lgo 3. Gõ lệnh LOAD “Baihoc1.lgo và nhấn phím Enter. Logo sẽ nạp tệp này vào bộ nhớ. Sauk hi tệp đã được nạp, em có thể thực hiện các thủ tục, viết tiếp các thủ tục và ghi lại các thủ tục trong phiên làm việc thành một tệp với tên cũ hoặc với tên mới. Thay đổi màu bút Câu lệnh đổi màu Màu bút bút Setpencolor 0 Đen – Black (màu ngầm định) Setpencolor 1 Xanh trời - Blue 32 SETPENCOLOR Setpencolor 2 Xanh lá - Green Setpencolor 3 Xanh lơ - Cyan Setpencolor 4 Đỏ – Red Setpencolor 5 Hồng - Pink . Lệnh thay đổi màu bút vẽ 33 SETPC – số hiệu màu Trong đó ta dùng các số từ 0 đến 15 để đại diện cho 16 màu chuẩn. Ví dụ SETPC 11 Câu lệnh đổi nét bút 34 SETPENSIZE Câu lệnh đổi nét bút Nét bút (lệnh FD 30) SetPenSize [1 1] Độ rộng = 1 Độ cao = 1 (Ngầm định) SetPenSize [1 3] Độ rộng = 3 Độ cao = 3 SetPenSize [3 10] Độ rộng = 10 Độ cao = 10 .. .. Setfloodcolor [R G B] viết tắt SETFC [R G B] cài đặt màu nền sẽ tô bằng lệnh FILL Fill tô màu nền trong phạm vi khép kín của hình. Màu nền tô đã được báo trước bằng lệnh Setfloodcolor. Lệnh fill không cần SETFLOODCOLOR 35 SETFLOODCOLOR phải hạ bút nó vẫn tô. [R G B] Ví dụ: Setfloodcolor [255 0 0]; tô nền màu đỏ FD 100 RT 120 FD 100 RT 120 FD 100; Vẽ tam giác đều độ dài cạnh 100 PU; nhấc bút LT 45 ; xoay trái 45 độ BK 50; đi lùi 50 bước. 3 dòng lệnh PU LT và BK mục đích là đưa rùa vào bên trong hình tam giác đều FILL Các bạn có để ý thấy ở vị trí trên tôi viết lệnh ; giải thích . MSWLogo quy định rằng nội dung sau dấu; sẽ là các ghi chú của người dùng MSW Logo sẽ không quan tâm tới những nội dung sau dấu ; Di chuyển rùa theo cột x (x>0 qua phải, 36 SETX x x<0 qua trái) rùa giữ nguyên hướng Ví dụ: SETX 100 Di chuyễn rùa lên nếu y>0, xuống nếu y<0 37 SETY y Ví dụ: SETY 100 Đưa rùa tới vị trị x, y. chú ý nếu rùa đang ở chế độ hạ bút (Pen down) thì nó sẽ tạo 38 SETPOS [x y] thành đường đi. Lệnh SETXY x y cũng có chức năng tương tự. Ví dụ: SETPOS [100 100] 39 SETXY x y Ví dụ: SETXY 100 100 Cú pháp : IF điều.kiện [Lệnh ]nếu điều kiện đúng sẽ thực hiện lệnh IF 40 Ví dụ: IF 1=1 [CT PRINT [Dung roi]] Cú pháp : IFELSE điều.kiện [Làm những lệnh ở trong này nếu điều kiện là đúng] [Làm những lệnh ở trong này nếu điều kiện 41 IFELSE là sai] Ví dụ sau đây sẽ so sánh 2 số được đưa vào từ bên ngoài a và b và thông báo cho ta biết số nào lớn hơn: To SoSanh :a :b IFELSE :a>:b [Pr [a lon hon b]] [Pr [a nho hon b]] End Trong MSWLogo muốn khai báo một mảng ta dùng MAKE “tênmảng (ARRAY độ.dài số.bắt.đầu) Ví dụ Make mau_sac (Array 7 1) tạo một mảng có tên là mau_sac mảng này có 7 phần tử ( toa tàu) và toa đầu tiên đánh số là 1. Để gán một giá trị nào đó cho mảng ta 42 MAKE dùng SETITEM vị.trí :tên.mảng giá trị Ví dụ SETITEM 3 :mau_sac 5 gắn 5 vào ô số 3 của mảng mau_sac Để lấy một giá trị nào đó trong mảng dùng ITEM vị.trí :tên.mảng Ví dụ ITEM 1 :mau_sac lấy ô đầu tiên trong mảng có tên mau_sac Vòng lặp FOR. Cú pháp: FOR [biến chạygiá trị bắt 43 đầugiá trị cuốibước tăng] [lệnh ] Ví dụ : FOR [i 1 10 1][Show :i] ; viết ra 1 2 3 4 5 6 7 8 9 10 FOR [i 1 10 2][Show :i] ; viết ra 1 3 5 7 9 Với n đưa từ ngoài vào hãy tính tổng 1+2+3+ +n. To TinhTong :n CS ;Xóa sân chơi RT 90 ; Xoay rùa 90 độ để viết chữ ra sân chơi theo chiều ngang PU ; nhấc viết của rùa lên BK 100 ; lùi 100 bước, trong bài này là lùi về bên trái do ta đã xoay đầu rùa mục đích để viết chữ ra cho nó cân đối ko bị lệch 1 bên, có thể dùng Setx cũng được. Make “tong 0 ;ban đầu cho tổng là 0 FOR [i 1 :n 1][Make “tong :tong+ :i] ; mỗi lần chạy lại cộng thêm vào giá trị của tổng Label(List “Tong “cong “1+2+ + :n “= :tong) ;Lệnh List trong trường nợp này giúp ta nối các chữ lại với nhau Sety -50 ; Xuống dòng Để hiểu về cách sử dụng While ta cùng giải một bài toán : Tính tổng S=1+2+ +n S nhỏ hơn hoặc bằng 65000. Ta không thể biết n bằng bao nhiêu để thỏa mãn yêu cầu của đề, do đó việc xác định số lần lặp là không khả thi vậy nên ta không thể dùng For hay Repeat. Hãy xem While xử lý bài toán như thế nào. Cú pháp : While điều.kiện [Lệnh ] Trong khi điều kiện còn đúng thì thực hiện lệnh. Vòng lặp While. 44 Bài toán có thể mở rộng ra thay vì 65000 ta có thể mở rộng ra bằng cách sử dụng biến để nhận giá trị tổng tùy ý. Thủ tục được viết như sau : To TimSo :K CS ; Xoa san choi RT 90 ; Xoay rua ve ben phai PU ; Nhac viet len SetX -100 ; Cho rua lùi ve ben trai HT ;An rua SetPC [0 0 255] ; Doi mau pen Make “S 0 ; Ban tong cho tong S =0 Make “i 0 ; Dung de chay tu 1 cho toi khi tim ra so n While [:S <= :K] [Make “i :i+1 Make “S :S+:i] ;Trong khi tong con <= K ; Cong don S va tang i len 1 ;Khi S>K thi vong lap se tu thoat ra Label (List “Can “phai “cong “toi :i-1 “so) ; Xuat thong bao ra san choi SetY -50 ; Xuong dong End Vòng lặp Untill cũng tương tự While tuy nhiên nó chỉ thoát khi điều kiện là đúng, nói một cách tóm tắt While đúng thì làm, sai thì thoát (Làm tới khi sai) Until đúng thì thoát, sai thì làm (Làm tới khi đúng ) Vòng lặp Until. To TimSo :K 45 CS ; Xoa san choi RT 90 ; Xoay rua ve ben phai PU ; Nhac viet len SetX -100 ; Cho rua lùi ve ben trai HT ;An rua SetPC [255 43 45] ; Doi mau pen Make “S 0 ; Ban tong cho tong S =0 Make “i 0 ; Dung de chay tu 1 cho toi khi tim ra so n Until [:S > :K] [Make “i :i+1 Make “S :S+:i] ;Trong khi tong chua > K ; Cong don S va tang i len 1 ;Khi S>K thi vong lap se tu thoat ra Label (List “Can “phai “cong “toi :i-1 “so) ; Xuat thong bao ra san choi SetY -50 ; Xuong dong END fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 Hình vuông fd 100 rt 90 hoặc repeat 4 [fd 100 rt 90] fd 100 rt 120 fd 100 rt 120 Hình tam giác fd 100 rt 120 hoặc repeat 3 [fd 100 rt 120] Circle2 300 Circle2 250 Circle2 200 Hình tròn Circle2 150 Circle2 100 Circle2 50 repeat 6 [circle2 100 rt 60] ellipse 50 100 ellipse 70 100 ellipse 90 100
Tài liệu đính kèm: