1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cách sử dụng biến trong logo

8 15 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 105,32 KB

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

Nội dung

Trong nhiều trường hợp, số lần lần lặp lại không biết trước và số vòng lặp được xác định bởi một điều kiện nào đó... Cấu trúc lặp với số lần lặp chưa biết trước (lặp có điều kiện) 2.1.[r]

Trang 1

I KHÁI NI M V BI N Ệ Ề Ế

Bi n là m t đ i l ế ộ ạ ượ ng có th thay đ i giá tr c a nó ể ổ ị ủ

T i sao ph i dùng bi n? Có th hi u m t cách đ n gi n nh t: Dùng bi n đ đ m b o tính ạ ả ế ể ể ộ ơ ả ấ ế ể ả ả tính t ng quát c a m t d ng bài toán Sau này khi s d ng thành th o ta sẽ th y còn nhi u ổ ủ ộ ạ ử ụ ạ ấ ề

trường h p khác cũng ph i dùng đ n bi nợ ả ế ế

Ví d : Mai có 20 cái k o, Mai cho Minh 5 cái, sau đó Mai l i ăn h t 3 cái H i Mai còn l i bao ụ ẹ ạ ế ỏ ạ nhiêu cái k o?ẹ

Trong bài toán này, ta đã bi t trế ước (ch c ch n) là: S k o Mai có 20 cái, s k o Mai cho ắ ắ ố ẹ ố ẹ Minh là 5, s k o Mai ăn là 3.ố ẹ

d ng t ng quát, bài toán trên đ c phát bi u nh sau: B n Mai có a cái k o, Mai cho Minh

b cái, sau đó Mai l i ăn h t c cái k o H i Mai còn l i bao nhiêu cái k o?ạ ế ẹ ỏ ạ ẹ

Ta bi t r ng các s a,b,c ch a bi t ngay khi ta vi t th t c, và có th thay chúng b ng b t kỳ ế ằ ố ư ế ế ủ ụ ể ằ ấ

s nào Trố ường h p này ta g i các s a, b,c là các bi n.ợ ọ ố ế

Chú ý: V i cách gi i toán b ng phớ ả ằ ương pháp dùng ký hi u thay th thì các ký hi u thay th ệ ế ệ ế cũng đượ ọc g i là các bi n.ế

II CÁCH KHAI BÁO BI N TRONG TH T C Ế Ủ Ụ

1 Đ i v i các bi n nh n giá tr tr c ti p t bên ngoài ố ớ ế ậ ị ự ế ừ

- Trong bài toán tính s k o trên, các bi n a, b và c sẽ đố ẹ ở ế ược đ a vào t bên ngoài đ ư ừ ể

chương trình th c hi n tính toán, khi đó ta sẽ ự ệ khai báo các bi n này cùng dòng v i dòng ế ớ ghi tên th t c b ng cách ghép d u hai ch m( :) ngay tr ủ ụ ằ ấ ấ ướ c tên bi n ( có th s d ng ế ể ử ụ nhi u bi n trong 1 th t c) ề ế ủ ụ

Khai báo:

TO KEO :a :b :c ( đây các bi n a, b, c đở ế ược khai báo cùng dòng ghi tên th t c KEO ủ ụ

b ng cách ghép d u (:) ngay trằ ấ ước tên bi n)ế

Ví d : TO KEO :a :b :cụ

Lúc này các bi n a,b,c sẽ tr thành các giá tr đ th c hi n các bi u th c có trong th t c:ế ở ị ể ự ệ ể ứ ủ ụ

TO KEO :a :b :c

Cs

RT 90 LABEL [ S k o còn l i là:]ố ẹ ạ PU FD 250 PD LABEL :a - :b - :c

Ho c: ặ

RT 90 LABEL(list "so "keo "con "lai "la: :a-:b-:c)

Trang 2

Khi th c hi n, ta sẽ nh p giá tr c a a,b,c ngay cùng dòng v i l nh g i th t c t i c a ự ệ ậ ị ủ ớ ệ ọ ủ ụ ạ ử

s l nh ổ ệ

ví d : TO KEO 20 5 3 Khi đó các bi n a, b,c sẽ nh n l n lụ ế ậ ầ ượt các giá tr là 20, 5 ,3 và th c hi nị ự ệ tính k t qu ế ả

Bài t p1: Vẽ hình vuông bi t chi u dài m i c nh là a đ n v ậ ế ề ỗ ạ ơ ị

To hinhvuong :a

Cs

Repeat 4 [ fd :a rt 90]

Ht

end

Khi th c hi n, ta sẽ nh p giá tr c a a ngay cùng dòng v i l nh g i th t c t i c a s l nh, ví ự ệ ậ ị ủ ớ ệ ọ ủ ụ ạ ử ổ ệ

d : hinhvuong100; hinhvuong 200,… Khi đó sẽ vẽ các hình vuông có đ dài c nh l n l ụ ộ ạ ầ ượ t là 100,200,

Bài t p 2: Vi t th t c vẽ và tính di n tích hình ch nh t bi t chi u dài là a đ n v , ậ ế ủ ụ ệ ữ ậ ế ề ơ ị chi u r ng b đ n v ề ộ ơ ị

To HCN :a :b

Cs

Repeat 2 [ fd :b rt 90 fd :a rt 90 ]

Pu bk 50 rt 90 label [ dien tich hinh chu nhat la:]

Pu fd 250 label :a *:b

Ht

end

Th c hành: ch y l i th t c trên v i nhi u giá tr a,b,c khác nhau ự ạ ạ ủ ụ ớ ề ị

2 Đ i v i các bi n nh n giá tr trong khi ch y th t c ố ớ ế ậ ị ạ ủ ụ

Trường h p các bi n nh n giá tr t m t bi u th c có trong th t c, ta sẽ khai báo theo cú ợ ế ậ ị ừ ộ ể ứ ủ ụ pháp sau:

MAKE “< Tên bi n> ế :< Bi u th c> ể ứ

ví dụ Make “n 100 có nghĩa là n bây giờ =100, muốn hiện giá trị của n ra ta dùng

Show :n

Ví d : ụ

TO KEO :b

Trang 3

MAKE "a :b+3 //ở đây bi n a = b+3ế

Show :a

END

C n phân bi t: N u bi n nh n giá tr t bên ngoài thì dùng d u hai ch m ngay tr ầ ệ ế ế ậ ị ừ ấ ấ ướ c tên bi n, thì đ i v i bi n nh n giá tr t m t bi u th c trong th t c sẽ dùng d u nháy ế ố ớ ế ậ ị ừ ộ ể ứ ủ ụ ấ kép tr ướ c tên bi n ế

Lo i bi n này th ạ ế ườ ng s d ng khi gi i toán b ng PP dùng ký hi u thay th ử ụ ả ằ ệ ế

Ví d 1: ụ

to tinhtoan :a :b

make "tong :a+:b

make "hieu :a-:b

make "tich :a*:b

make "thuong :a/:b

rt 90 label (list "tong "la: :a+:b ",hieu "la: :a-:b ",tich

"la: :a*:b ",thuong "la: :a/:b )

end

Ví d 2: ụ

M t m nh đ t hình ch nh t có chi u lài là a đ n v Bi t r ng chi u r ng b ng 2/3 chi u ộ ả ấ ữ ậ ề ơ ị ế ằ ề ộ ằ ề dài

Hãy vi t th t c vẽ hình và tính di n tích m nh đ t hình ch nh t đó?ế ủ ụ ệ ả ấ ữ ậ

Th t c m u:ủ ụ ẫ

to hcn :a

CS

make "b :a*2/3

repeat 2 [ fd :b rt 90 fd :a rt 90]

pu bk 50 rt 90 pd label [ Dien tich hình cn la:] pu fd 200 label :a* :b

Ho c:ặ

pu bk 50 rt 90 pd

label (list "Dien "tich "hinh "cn "la: :a*:b )

end

Ví d th t c tính di n tích trên, chi u dài là a = 9 thì chi u r ng b = a*2/3= 9*2/3= 6.ụ ở ủ ụ ệ ề ề ộ

Trang 4

L nh ệ label :a* :b là hi n th và tính ra giá tr di n tích = a *b = 9 * 6= 54ể ị ị ệ

Ví dụ 3 :

M t khu đ t hình ch nh t có chi u dài là a, chi u r ng b ng ¾ chi u dài Ngộ ấ ữ ậ ề ề ộ ằ ề ười ta đào m tộ cái gi ng hình tròn có tâm n m t i giao đi m hai đế ằ ạ ể ường chéo c a khu đ t, bán kính b ng ¾ ủ ấ ằ chi u r ng c a khu đ t Hãy vi t th t c vẽ l i khu đ t trên và tính di n tích ph n đ t còn ề ộ ủ ấ ế ủ ụ ạ ấ ệ ầ ấ

l i sau khi đã đào gi ng.ạ ế

Th t c m u:ủ ụ ẫ

To khudat :a // Khai báo bi n a là chi u dài hình cn ế ề

Cs st pd

Make "b :a*3/4 // chi u r ngề ộ là b b ng ¾ chi u dàiằ ề a là b =a *3/4

Make "r :b/4 // bán kính r k b ng ¾ chi u r ng ằ ề ộ là: r = b *3/4

Make "Scn :a* :b // Di n tích c a hình ch nh t là: Scn = a*bệ ủ ữ ậ

Make "Sht :r * :r * 3.14 // Di n tích hình tròn cái gi ng là: Sht = r*r*3.14ệ ế

Make "Scl :Scn- :Sht // Di n tích còn l i = di n tích hcn - di n tích hình trònệ ạ ệ ệ

Repeat 2 [ fd :b rt 90 fd :a rt 90] // Vẽ hình ch nh t chi u dài a, chi u r ng bữ ậ ề ề ộ

Pu setxy :a/2 :b/2 // Nh c bút và Đ a rùa v tâm đấ ư ề ường tròn

pd circle :r // h bút vẽ đạ ường tròn bán kính r, rùa tâm đở ường tròn

Pu home bk 30 rt 90 Label [ Dien tich khu dat con lai la:]

// Nh c bút ti n lên 30 bấ ế ước và xoay hướng 90 đ đ vi t dòng ch ộ ể ế ữ Dien tich khu dat con lai la:

fd 300 label :Scl //ti n thêm 300 bế ước n a đ hi n th giá tr c a di n tích còn l iữ ể ể ị ị ủ ệ ạ

ht

end

Trang 5

V CẤU TRÚC LẶP

1 Cấu trúc lặp với số lần lặp biết trước: người ta thường dùng cú pháp sau:

1.1.Câu lệnh REPEAT:

Cú pháp: Repeat N[ lệnh1 lệnh2 …]

Ý nghĩa: Lặp lại N lần các lệnh: lệnh1 lệnh2 …

Cách thực hiện vòng lặp như sau: MSWLogo cho thực hiện N lần dãy lệnh lệnh1 lênh2 …

Ví dụ 1: vẽ một đa giác đều có số cạnh và độ dài mỗi cạnh do người chạy chương trình ra lệnh

to DG_NcanhM :M :N repeat :N[FD :M RT 360/:N]

end

Rõ ràng sô lần lặp được biết trước đó là N

Ví du 2: Giải đề thi tin học trẻ toàn quốc năm 2015

Câu 1 (20 điểm): Biển báo

Em viết các câu lệnh trong chương trình

MSWLogo để vẽ hình 1 – Biển báo giao thông

“cấm dừng và đổ xe” Biết rằng bán kính vòng tròn

ngoài là 110 đơn vị, bán kính vòng tròn trong là 90

đơn vị, độ dày đường chéo là 10 đơn vị Tô màu

như quy định trong biển báo giao thông

Giải: to bienbao

cs pd setpc [255 0 0] circle

110 rt 45 pu fd 5 lt 90 fd 5

pd

repeat 4[fd 85 rt 90 arc2 90

85 rt 90 fd 85 pu fd 10 pd]

pu home setFC 4 fill fd 30

setFC 1 fill rt 135 fd 40

repeat 3[fill rt 90 fd 40]pd

ht

end

Hình 1(bản chính màu đen, xám)

Câu 2 (10 điểm): Hình vẽ

Em viết các câu lệnh trong chương trình

MSWLogo để vẽ hình 2 Biết rằng Hình 2 được tạo

thành từ các hình vuông và tam giác đều có kích

thước cạnh là 100 đơn vị

Giải:

to vehinh

cs pd

repeat 8[repeat 4[fd 100 rt

Trang 6

90]

fd 100 lt 90

repeat 2[rt 120 fd 100]

rt 75 pu fd 100*sqrt(2) rt 180

pd]

end

Hình 2

Câu 3 (10 điểm): Tinh toán

Một bể nước có thể tích 2015 lít và 2 thùng đựng nước có thể tích là 31 lít và 8 lít Chỉ có hai thao tác:

- Thao tác 1: Múc đầy thùng 31 lít đổ vào bể

- Thao tác 2: Múc đầy thùng 8 lít đổ vào bể

Em sử dụng các câu lệnh của MSWLogo để tính và đưa ra đúng số cách sử dụng 2 thao tác trên để làm đầy bể nước Hai cách được gọi là khác nhau nếu tổng số thao tác sử dụng khác nhau

Giải:

to tinhtoan

cs

make "d 0

make "m 0

make "n 0

repeat 66[repeat 251[if (:m*31+:n*8)=2015[make "d :d+1] make "n :n+1] make "n 0 make

"m :m+1]

rt 90

label [so cach la]

pu fd 100 pd

label :d

ht

end

2 Cấu trúc lặp với số lần lặp chưa biết trước (lặp có điều kiện)

Ta đã biết câu lệnh Repeat để lặp lại một công việc Trong câu lệnh này, số bước lặp đã được biết trước và MSWLogo sẽ thực hiện đúng số bước đã chỉ định

Ví dụ 1: Cần tính tổng S = 1 + 2 + 3 + 4 + 5 + …+ N

Ta có thể giải quyết bài toán trên với 2 biến S và A và thực hiện như sau: Đầu tiên, ta cho S

= 0 và A = 1; thực hiện lặp N lần với hai công việc là cộng dồn S = S + A và cho tăng A một đơn vị: A = A + 1

To cong :N

CS

Make “S 0

Make “A 1

Repeat :N [Make “S :S*:A Make “A :A+1]

RT 90 Label :S

End

Với bài toán trên, mặc dù N là một biến nhưng ta đã biết trước khi thực hiện chương trình Trong nhiều trường hợp, số lần lần lặp lại không biết trước và số vòng lặp được xác định bởi một điều kiện nào đó Khi đó cần sử dụng vòng lặp có điều kiện While (hay còn gọi là vòng lặp với số lần lặp không xác định)

Ví dụ 2: Tính tổng S = 3 + 7 + 11 + 15 + 19 + … cho đến khi số hạng cuối cùng gần bằng

100 nhất

Cũng giống như bài trên, ta có thể giải quyết với 2 biến là S và A, đầu tiên ta cho S=0 và A=3; sau đó thực hiện lặp với hai việc là cộng dồn S = S + A và tăng A = A + 4 (vì khoảng cách

giữa các số hạng là 4) Vấn đề đặt ra là: Số lần lặp là bao nhiêu ?

Trang 7

1.2.Câu lệnh FOR:

Cú Pháp: For [<biến chạy> <giá trị đầu> <giá trị cuối> <giá trị tăng>] [Câu lệnh]

Công dụng:

- Ban đầu <biến chạy> nhận giá trị là <giá trị đầu>

- [Câu lệnh] được thực hiện khi <biến chạy> còn nhỏ hơn hoặc bằng giá trị cuối, mỗi lần thực hiện câu lệnh <biến chạy> tăng lên <giá trị tăng>

Ví dụ:

1/Vẽ 6 hình vuông lồng nhau như hình vẽ bên có

kích thước lần lượt là 30; 60; 90; 120; 150; 180

Cách 1:

to vehinhvuong

cs pd

For [I 6 1][repeat 4[fd :i*30 rt

90]]

HT

Cách 2:

end

to vehinhvuong

cs pd

For [I 6 1][repeat 4[fd :i*30 rt

90]]

HT

2/ Vẽ hình tái tim với cạnh ngắn nhất là 20, cạnh

dài nhất 200, mỗi cạnh tăng, giảm lần lượt là 10,

góc giữa các cạnh là 10 độ (Như hình vẽ bên)

to vetraitim

cs

pd

For [i 20 200 10][fd :i BK :i rt

10]

For [i 200 20 -10][fd :i BK :i rt

10]

HT

end

2 Cấu trúc lặp với số lần lặp chưa biết trước (lặp có điều kiện)

2.1 Mở đầu:

Ta đã biết câu lệnh Repeat, For để lặp lại một công việc Trong câu lệnh này, số bước lặp đã được biết trước và MSWLogo sẽ thực hiện đúng số bước đã chỉ định

Ví dụ 1: Cần tính tổng S = 1+2+3+4+5+…… +N

Ta có thể giải quyết bài toán trên với 2 biến S và A thực hiện như sau: Đầu tiên, ta cho S=0

và A=1; thực hiện lặp N lần với hai công việc là cộng dồn S=S+A và cho tăng A một đơn vị: A=A+1

to cong :N

CS

Make “S 0

Trang 8

Make “A 1

Repeat :N [Make “S :S+:A Make “A :A+1]

RT 90 Label :S

HT

end

Hoặc

to cong :N

Make “S 1

For [I 2 :N][Make “S :S+1]

RT 90 Label :S

HT

End

Với bài toán trên, mặc dù N là một biến nhưng ta đã biết trước khi thực hiện chương trình Trong nhiều trường hợp, số lần lặp lại không biết trước và số vòng lặp được xác định bởi một điều kiện nào đó Khi đó cần sử dụng vòng lặp có điều kiện While (hay còn gọi là vòng lặp với số lần lặp không xác định)

Ngày đăng: 02/04/2021, 17:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w