1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình mswlogo

24 107 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 1,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong chương trình này bạn sẽ điều khiển 1 hoặc nhiều con rùa là một 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ử lý đưa

Trang 1

I MSWLogo là gì

Giới thiệu

Là một ngôn ngữ lập trình được thiết kế và phát triển bởi Seymour Papert, Daniel Bobrow và Wallace Feurzeig Trong chương trình này bạn sẽ điều khiển 1 hoặc nhiều con rùa (là một 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ử lý đưa ra kết quả các bài toán lập trình phức tạp

Cách cài đặt

Bạn có thể tải chương trình từ nhiều nguồn trên mạng hoặc theo địa chỉ sau

http://www.softronix.com/download/mswlogo65.exe và cài đặt theo hướng

dẫn của chương trình Sau khi cài đặt xong bạn sẽ thấy biểu tượng của chương

trình ngoài Desktop

Giao diện MSWLogo

Cách viết và lưu một chương trình

Với MSWLogo bạn có thể thoát bằng cách Click vào hoặc nhập lệnh Bye

Bạn có thể ra lệnh cho Mswlogo làm việc thông qua các lệnh nhấn từ bàn phím vào ngăn nhập

lệnh và nhấn phím enter hay Click để ra lệnh cho Mswlogo thực hiện lệnh Tuy nhiên khi bạn thoát chương trình thì những lệnh này sẽ không lưu lại, bạn phải thực hiện lại từ đầu

ở lần làm việc tiếp theo, nếu muốn lưu lại bạn thực hiện theo trình tự sau

Bước 1: Click vào Edall để mở khung soạn thảo chương trình

Trang 2

Bước 2: Đặt tên chương trình sau to, kế đó bạn ghi các lệnh mà bạn muốn thực hiện ở giữa

to end Ví dụ:

Bước 3: Click File  Save and Exit Nếu có lỗi, bạn sẽ được thông báo và phải chỉnh sửa lỗi

xong mới có thể thoát ra Sau đó, bạn có thể gọi chương trình từ ngăn lệnh bằng lệnh

Ve_Hinh_Vuong và nhấn 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 tập tin mặc định của Mswlogo lgo

Như vậy ở lần làm việc sau muốn tiếp tục làm việc bạn chỉ cần Click FileLoad… để mở file đã

Trang 3

II Một số lệnh cơ bản

Nhóm lệnh di chuy ển

Khi di chuyển từ điểm này qua điểm khác tùy theo trạng thái của bút vẽ Trên đường di chuyển, 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 tại vị trí chính giữa có tọa độ x = 0, y = 0 Có một số lệnh di chuyển từ vị trí hiện tại tới một vị trí nào đó như sau:

a) FORWARD viết tắt FD, cú pháp: FD n đi thẳng tới n bước, n có thể mang giá trị âm lúc

đó rùa sẽ đi lùi

b) BACK viết tắt BK, cú pháp: BK n đi lùi lại n bước

c) SetX n di chuyển tới tọa độ có vị trí là (n,y) -500 ≤ n ≤ 500 Tọa độ y là y hiện tại của rùa

d) SetY n di chuyển tới tọa độ có vị trí là (x,n) -500 ≤ n ≤ 500

e) SetXY x y di chuyển từ vị trí hiện tại tới tọa độ x, y

f) SetPOS [x y] tương tự lệnh SetXY

g) Home từ vị trí hiện tại di chuyển về ngay tọa độ (0,0)

h) Right n Viết tắt RT, xoay rùa về phía bên phải một góc n độ

i) Left n Viết tắt LT, xoay rùa về phía bên trái một góc n độ

Ví dụ 1: Vẽ tam giác đều có độ dài cạnh là 250

Ví dụ 2: Vẽ hình chữ nhật có chiều dài là 300 và chiều rộng là 200

Ví dụ 3: Vẽ theo tọa độ hình sau:

Bước 1: Nhấn lệnh FD 250 vào

ngăn nhập lệnh rồi nhấn

enter, ta sẽ thấy ngay lập tức

rùa từ vị trí ban đầu chạy

Trang 4

Chú ý: Ở ví dụ này có thể sử dụng lệnh SetPOS cũng có kết quả tương tự, ở hình minh họa

Dưới đây, ta tạo một chương trình con tên là HCN rồi sau đó gọi chương trình đó ra Với

SETX, SETY, SETXY, SETPOS thì góc quay rùa không thay đổi

Nhóm lệnh vẽ đường tròn, cung tròn và ellipse

a) ARC a r 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 tâm

b) ARC2 a r Vẽ cung tròn với góc là a và bán kính là r Bắt đầu vẽ từ chỗ rùa đang đứng, vẽ tới đâu rùa đi theo tới đó (rùa nằm trên cung tròn)

c) ELLIPSE x.ngang y.cao Vẽ hình ellipse với 2 thông số, chiều ngang theo trục x, chiều cao theo trục y, rùa đứng yên tại tâm

d) ELLIPSE2 x.ngang y.cao Vẽ hình ellipse với 2 thông số, chiều ngang theo trục x, chiều cao theo trục y, rùa chạy theo đường ellipse

e) ELLIPSEARC độ dài cung x y góc Ví dụ muốn vẽ 1 nửa vòng ellipse ở phía trước mặt rùa (90) lệnh như sau : ELLIPSEARC 180 150 80 90

f) ELLIPSEARC2 Rùa chạy theo cung khi vẽ

g) CIRCLE r Vẽ đường tròn bán kính r rùa đứng tại 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

Trang 5

Các lệnh ARC2, ELLIPSE2 , ELLIPSEARC2, Circle2 về các thông số cũng giống như ARC, ELLIPSE, ELLIPSEARC, Circle các bạn tự tìm hiểu

Nhóm lệnh về bút vẽ, màu sắc

a) Pen Up viết tắt là PU :

Lệnh này nhấc viết của rùa lên và kết quả là khi di chuyển rùa không để lại dấu vết

b) Pen Down viết tắt là PD :

Lệnh này hạ viết của rùa xuống Các lệnh di chuyển sau lệnh này ta sẽ thấy dấu vết của sự di

Thiết lập độ dày, cao của nét vẽ Lệnh này có thể thực hiện qua Menu Set→Pen Size …

e) SETPENCOLOR viết tắt SetPC [Red Green Blue]

Thiết lập màu cho bút vẽ Red, Green, Blue có giá trị từ 0→255, ví dụ SetPC [255 0 0] sẽ cho ta màu đỏ Có thể sử dụng 16 màu có sẵn từ 0  15

f) Setfloodcolor [R G B] viết tắt SetFC[R G B]

Cài đặt màu nền (giống SetPC ) và tô bằng lệnh FILL

g) 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 phải hạ bút xuống

mà vẫn tô được

Ví dụ 1: Vẽ tam giác đều cạnh 200 và tô màu đỏ bên trong

To TamGiac

Setfloodcolor [255 0 0 ] ; đặt màu tô nền là màu đỏ

FD 200 RT 120 FD 200 RT 120 FD 200 ; vẽ tam giác đều độ dài cạnh 200

Trang 6

Nhóm lệnh về in kết quả, thông báo

a) PRINT [Nội dung, kết quả, thông báo] viết tắt PR ví dụ PR 1+2+3 ra kết quả là 6 ở trong cửa sổ lệnh

b) SHOW [nội dung, kết quả muốn in ], lệnh tương tự PR

c) LABEL thì hiện ra kết quả ở sân chơi, nếu muốn hiện thị theo chiều ngang thì chúng ta phải xoay rùa về phải 90 độ, nếu muốn hiển thị nhiều hơn một từ thì sử dụng:

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 lệnh về vị trí rùa

a) HIDETURTLE viết tắt 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 tắt ST hiện rùa

c) POS cho ta biết vị trí hiện tại của rùa Ví dụ: Show POS

d) CLEARSCREEN viết tắt CS xóa sân chơi, đưa rùa về vị trí ban đầu(0,0) Nếu có nhiều rùa thì xóa luôn chỉ để lại 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 vị trí và góc độ

f) CLEARTEXT viết tắt CT , xóa hết tất cả cá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 về góc n độ, tương tự RT hoặc 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 từ vị trí hiện tại tới tọa độ x y

III Các phép toán trong MSWLogo

Cộng, trừ, nhân, chia, ( )

MSWLogo thực hiện theo trình tự ưu tiên trong ngoặc trước rồi tới *, /, +, - Ví dụ:

Ví dụ: Print 2+3*4 cho kết quả là 14

Ví dụ: Print (2+3)*4 cho kếtquả là 20

Trang 7

Phép toán logic AND, OR, NOT

a) AND đk1 đk2 nếu muốn 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 kiện bên trong đều đúng

b) OR đk1 đk2 nếu muốn nhiều hơn thì viết như sau (OR đk1 đk2 đk3 đk4…) OR chỉ sai

(FALSE) khi tất cả các điều kiên bên trong đều sai

c) NOT đk Nếu đk là đúng thì trả về giá trị sai và ngượi lại

Trong thực tế để giải quyết một bài toán đôi khi cần phải phối hợp nhiều các phép toán logic lại với nhau

NOT EQUALP(<>), EQUALP(=), LESSP(<), GREATERP(>)

MSWLogo không cho phép thực hiện trực tiếp phép toán <>, <=, >= mà phải thông qua hàm, cách viết như sau:

NOT EQUALP thay cho <> Ví dụ Show Not Equalp 3 5  đúng (true)

<=, >= Sử dụng chung với hàm OR Ví dụ Show (OR 3>5 3=5) 3≥5 Show (OR 3<5 3=5) 3≤5

Phạm vi của biến, cách k hai báo

Biến có thể được sử dụng từ tất cả các chương trình khác nhau thì gọi là biến toàn cục, nếu biến đó chỉ sử dụng trong một chương trình thôi và khi kết thúc chương trình thì nó biến mất thì gọi là biến cục bộ Trong MSWLogo có thể khai 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 một chữ cái và không được giống với các lệnh của Mswlogo

Make “tên_biến_toàn_cục giá_trị_ban_đầu

Local “tên_biến_cục_bộ

Khi muốn đọc giá trị của một biến nào đó thì thêm dấu : trước tên biến

Khi muốn thay đổi giá trị của biến sử dụng Make “tên_biến giá_trị_mới

Hãy xem một ví dụ:

Cửa sổ soạn thảo chương trình con

Trang 8

Truyền biến cho chương trình

Để truyền một giá trị vào chương trình con thì ngay phần khai báo tên chương trình con, ta phải liệt kê các biến truyền vào, biến này là biến cục bộ

Ví dụ 1 : viết một chương trình cộng 2 số bất kỳ

Ví dụ 2 : viết chương trình vẽ hình tam giác đều với chiều dài cạnh được truyền từ

ngoài vào

Cửa sổ chính của MSWLogo

Gọi chương trình Tong_Cong

Label (List :a "+ :b "= :a+:b)

Show :a+:b Truy cập giá trị biến cục bộ, bị lỗi Truy cập giá trị biến toàn cục

Trang 9

Đưa vào 2 số và in ra sân chơi số lớn hơn:

IF điều kiện [Lệnh sẽ thực hiện nếu điều kiện là đúng]

IFELSE điều kiện [Lệnh thực hiện nếu điều kiện là đúng] [Lệnh thực hiện nếu điều kiện là sai]

Trang 10

VI Vòng lặp trong MSWLogo

Khi một lệnh hay nhiều lệnh lặp đi lặp lại nhiều lần thì người ta sử dụng vòng lặp, trong MSWLogo có 2 loại vòng lặp chính : Vòng lặp biết trước số lần lặp (For, Repeat) và vòng lặp không biết trước số lần lặp (While, Until) Đối với vòng không biết trước số lần lặp, chúng ta phải có biến để kiểm soát giúp nó thoát ra, nếu không thoát ra được trương trình sẽ chạy không dừng lại bắt buộc ta phải bấm nút để ngắt ngang, nếu không có thể dẫn đến việc máy tính bị treo

Vòng lặp REPEAT

REPEAT n [ lệnh 1 lệnh 2…] n là số lần muốn thực hiện các lệnh trong []

Xem lại ví dụ vẽ tam giác đều ở trên ta thấy lệnh FD :canh RT 360/3 viết lặp lại 3 lần, bây giờ

nếu dùng Repeat thì lệnh như sau:

Còn việc vẽ hình vuông với cạnh 150 bây giờ chỉ còn đơn giản như thế này REPEAT 4 [FD 150

RT 90]

Một cách tổng quá để vẽ đa giác đều n cạnh với chiều dài là 200 Repeat n [FD 200 RT 360/n]

Khi sử dụng hàm REPEAT để biết số vòng lặp hiện tại là bao nhiêu ta sử dụng hàm Repcount

Ví dụ in ra cửa sổ lệnh các số từ 1 tới 50 : REPEAT 50 [Show Repcount]

Xem chương trình sau:

Trang 11

Đây là chương trình vẽ một hình vuông có cạnh dài 200 và tại các cạnh của hình vuông lại vẽ thêm các tam giác đều cạnh 200

Kết quả:

Bài tập mở rộng: Vẽ hình sau: (Gợi ý: Hình trên được tạo bởi các hình ngũ giác xếp chồng vào

nhau (Trích đề thi tài năng trẻ tin học của một số tỉnh)

Bạn đoán thử xem lệnh này vẽ ra hình gì ? Repeat 24 [Circle2 90 RT 360/24]

Vòng lặp FOR

For cũng là một vòng lặp với số lần lặp biết trước, tuy nhiên for linh hoạt hơn Repeat ở chỗ nó

có thể chỉnh được bước nhảy, với repeat thì bước nhảy luôn là 1, 2, 3, 4 …

Ví 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 tập: Biết rằng MODULO là hàm chia lấy dư của 2 số, cú pháp lệnh MODULO a b

Ví dụ: Modulo 5 3 được giá trị là 2 Tính tổng các số chia hết cho 3 từ 1 đến 100 (Gợi ý: Sử dụng For, IF và một biến dùng để tính tổng IF (Modulo :i 3)=0)

Vòng lặp WHILE

Vòng lặp While được sử dụng trong các trường hợp không biết trước số lần lặp, tuy nhiên vẫn

có thể sử dụng trong trường hợp biết số lần lặp Khi sử dụng while cần phải kiểm soát biến để vòng lặp có thể thoát ra

Trong khi điều kiện đúng thì thực hiện lệnh

FOR [biến chạy giá trị bắt đầu giá trị cuối bước tăng ] [Lệnh…]

WHILE [điều kiện] [Lệnh…]

Trang 12

Ví dụ 1:

Ví dụ 2: Chương trình sau đây sẽ vẽ liên tiếp các đường thẳng từ trong ra ngoài mỗi lần vẽ cạnh tăng lên 5 đơn vị và xoay về bên phải một góc 91 độ

Vòng lặp UNTILL

Vòng lặp Untill cũng tương tự While điểm khác biệt của nó được rút gọn như sau:

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)

Trang 13

Bạn có biết vì sao i lại mang giá trị 24

 Cách viết bằng Until

Yêu cầu: điều kiện của vòng lặp Until không dùng Not

Bài Tập

Bài 1: Mswlogo là gì

Mục tiêu: Biết được Mswlogo là gì, cách mở, đóng chương trình, các nhập lệnh và cách lưu

lại bài dưới dạng file lgo

Mục tiêu: Sử dụng được một số lệnh thông dụng, điều khiển rùa di chuyển xoay và tô màu

Vẽ được một số hình đơn giản

Trang 14

Bài 3: Các phép toán trong Mswlogo

Mục 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 hỏi:

1 Cho biết kết quả của phép toán: 7+(7+7)*7+7/7-7 =?

2 NOT (AND OR(5>3 2=9) 1+1=2) kết quả nhận được cuối cùng là true hay false?

Bài 4: Biến là gì, khai báo, phạm vi

Mục tiêu: Hiểu được biến là gì, phạm vi của biến, biết cách khai báo và thay đổi giá trị của

biến

Bài 5: Lệnh rẽ nhánh

Mục tiêu: Đưa được phép toán logic vào trong biểu thức điều kiện của lệnh rẽ nhánh IF và

IFELSE, biết phối hợp nhiều điều kiện lại với nhau để diễn đạt được yêu cầu của bài toán

Bài 6: Vòng lặp

Mục tiêu: Biết cách đưa những lệnh giống nhau vào trong vòng lặp, hiểu được cách thức làm

việc của các vòng lặp REPEAT, FOR, WHILE, UNTIL

Sử dụng vòng lặp và các lệnh đã học vẽ những hình sau:

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

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

Trang 15

Em hãy viết các câu lệnh trong chương trình MSWLogo để vẽ Hình 1 với các cạnh của ngôi sao

là 100, đường tròn chứa ngôi sao có bán kính bằng 162, sau khi vẽ xong đổ màu cho ngôi sao

là màu cam (14)

Em hãy tìm tất cả các số chia hết cho 5 trong 50 số lẻ đầu

tiên

Trăm con gà giá trăm đồng Gà trống 5 đồng một con, gà

mái 3 đồng một con, gà con 2 con một đồng Em hãy sử

dụng các câu lệnh trong MSW Logo tính số gà trống, gà

mái và gà con

6 hình vuông cách nhau một góc

360/6

6 hình lục giác cách nhau một góc 360/6

10 hình ngũ giác cách nhau một góc 360/10

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 tạo bởi 7 hình vuông cách nhau 10 bước

Đây là hình được tạo bởi hình bát giác(đa giác đều 8 cạnh)

Tại từng cạnh lại vẽ một hình vuông có chiều dài cạnh bằng với cạnh của

đa giác

Vẽ 5 cánh sen, cung đường tròn là 60

bán kính là 80

Trang 18

Học sinh tự vẽ 3 hình này

Ngày đăng: 02/05/2019, 21:42

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w