Tải bản đầy đủ (.pdf) (9 trang)

Tai lieu logo dành cho học sinh tiểu học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (222.52 KB, 9 trang )

Tài liệu
LẶP TRÌNH LOGO
(Dành cho học sinh tiêu học)
C hương 1
LÀM QU EN VƠ I LO G O
(Quyén 2 sách củng học Tin học)
C hương 2
V IẾ T C Á C T H Ủ T Ụ C T R O N G L O G O
(Quyén 3 sách củng học Tin học)
C hương 3
G IẢ I T O Á N B Ả N G L O G O
I - Làm các phcp tính trong LOGO
Có thế sử dụng các phép tính cộng (+), trừ (-), nhân (*) và chia (/) trong LOGO.
Khi đó, LOGO sè hiện kẻt quả trong khung xám của cửa sô lệnh băng lệnh PRINT (pr)
Ví dụ: Pr 3+5 sè hiện kết quả của phép tính 3+5.
Nếu biếu thức cẩn tính kết quà là dây các phép tính thì LOGO sè thực hiện nhân
chia trước, cộng trừ sau.
Nếu dày các phép tính chi có cộng vả trừ hoặc nhân và chia thì LOGO sè thực
hiện các phép tính tuần tự từ trái qua phải.
Nếu cỏ các thảnh phần nằm trong cặp dấu ngoặc đơn thì các thành phần đỏ sè
được ưu tiên thực hiện trước.
Ví dụ:

Print 2+3*4 cho kết quà lả 14
Print (2+3)*4 cho kết quả là 20.

Ghi chú: c ỏ thé sừ dụng lệnh SHOW cùng cho kết quả tương tự như lệnh PRINT.
Bài tập:
3.1

- Dùng LOGO đé tính các biéu thức sau:


10 + 5 * 2 5

6786+14854

(25 * 4) / 2 - 20

II - Giải toán bằng LOGO.
Khi giải các bài toán, ngoài việc thực hiện các phép toán đề tim ra đáp số thỉ còn
phải ghi lời giài cũa nỏ.
Đê ghi lời giãi dạng văn bàn hoặc kết quà các phép tính vào màn hỉnh chính cùa
LOGO ta dùng lệnh LABEL. Nội dung viẽt ra được đặt trong cặp dâu [ ].
Ví dụ:

LABEL [Xin chao]

Trẽn màn hỉnh chính sè hiển thị chừ “Xin chao"


LABEL 10+5*25 ; viết các giá trị thỉ không cỏ cặp dấu [ ].
Trẽn màn hình chính sè hiển thị kết quà của phép tính 10+5*25 là 135
Cần chủ ý: ơ chế độ mặc định, rùa luôn hướng lẽn trên (theo phương thẳng
đứng) nên trước khi viết bầng lệnh LABEL cần chuyến hướng của rùa theo phương nằm
ngang bầng cách xoay 90°
Ví dụ: Bạn 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 mấy cái kẹo?
Một cách đơn giàn, ta cỏ thể viết câu lệnh sau:
Print 2 0 - 5 - 3
Ket quả là 12 sè hiện tại khung xám của cửa sô lệnh.
To Keo


; Tên thủ tục

cs

; Xỏa màn hình và đưa rùa về vị trí xuất phát

RT 90

; Xoay hướng rùa 90°

LABEL [So keo con lai la: ]

; Viết ra câu trả lời

PU

; Nhấc bút

FD 250

; Di chuyến rùa thắng 250 bước

PD

; Hạ bút

LABEL 20-5-3

; Viết ra đáp số


END

: Ket thúc thủ tục

Cần chú ý: - Lệnh LABEL sè viết ra tại vị trí cùa rùa theo hướng hiện tại. v i vậy
nếu trong thủ tục cỏ nhiều lệnh LABEL cần phài tính toán số bước di chuyển và thực
hiện treo trinh tự: Nhấc bút - Di chuyến - Hạ bút - viết.
- Có thề ghi nhiều câu lệnh trên một dòng, ví dụ:
RT 90 LABEL [So keo con lai la: ] PU FD 250 PD LABEL 20-5-3
Bài tập
3.2 - Một miếng đất hình chừ nhật cỏ chiều dài là 150 mét. chiểu rộng là 70 mét.
Người ta chia miếng đất cho hai người theo cạnh dài cùa nỏ. người thử nhất được 85
mét. phần còn lại đé cho người thứ 2. Hày tính diện tích đất được chia cho mồi người.
3.3 - Hai sổ cỏ trung bỉnh cộng là 108. Hày tìm 2 số đó biết ràng thương của nỏ
bàng 5.
3.4 - Cho dày số 3, 7, 11, 15, 19,... Hày tìm số thứ 6 vả số thứ 7 của dày ưẽn và
tính trung bỉnh cộng của cà 7 số cỏ trong dày.

2


C hương 4
SỬ DỤNG BIÉN TRONG LO GO
1 - 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 đom giàn nhất: Dùng biến đế đàm
bào 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.
Trở lại ví dụ ỡ phần trước: Bạn 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 mấy 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ỏ lả 20. 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: Ban Mai cỏ a cái kẹo.
Mai cho Minh b cái, sau đó Mai lại ăn hết c cái. Hòi Mai còn lại may cái kẹo?
Ta thấy rang 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 cứ so nào. Trường họp này, ta gọi các số fl, b, c lả các biến.
Ghi 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 bien.
II - Cách khai báo biến trong thủ tục
/ -

Đ ổi vói các biến nhận g iá trị trực tiếp từ bên ngoài

Trong bài toán tính số kẹo kể trẽn, các biến a, b và c sè được đưa vào từ bên
ngoải đê chương trinh 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:
TO KEO :a :b :c
Lúc này, các biến a, b, c sè ưở 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 [So keo con lai la: ]
PU FD 250 PD LABEL :a - :b - :c
END

Khi thực hiện, ta sè nhập các giá ưị 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 bien a. b. c sè lần lượt nhận các
giá ưị là 20, 5 và 3 và thực hiện tính kết quả.
Thực hành: chạy lại thủ tục ưẻn với nhiều giá trị a. b. c khác nhau.

2 - Đ ối vói các biến nhận g iá trị trong kh i 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 khai báo
theo cú pháp sau:
MAKE “<Tên_biến> <biểu_thửc>
3


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, thi đối với biến nhận giá trị từ một bieu thức trong thủ tục sè dùng dấu
nháy kép ngay trước tên biến.
Loại biến này thường sứ dụng khi giải toán bàng phương pháp dùng kỷ hiệu thay
thế.
Ví dụ: Một hỉnh chừ nhật cỏ chu vi là 56 cm. Biết rang chiểu rộng bẳng 3/4 chiều
dài. hày tính diện tích của hình chừ nhật đỏ.
Ta gọi a và b là chiểu dài và chiểu rộng của hỉnh chừ nhật, ta có:
(a + b) X 2 = 56 => a + b = 28
Mà b = (3/4) X a => a + (3/4) X a = 28 => 7xa = 28x4
Tức là

a = (28x4)/7
b = 28 - a

Gọi s là diện tích của hình chừ nhật, ta cỏ s = a X b.
Ta viết thủ tục như sau:
to dientich
Make "a (28*4)/7
Make "b 28 - :a
Make " s :a * :b
RT 90 LABEL [Dien tich hinh chu nhat la: ]

PU FD 250 PD LABEL :S
end

Bài tập

4.1
- Một người buôn 1200 đồng một quà trứng. Đem về bị vờ mất 20 quả. s
trứng còn lại bán như sau: 2/4 số trứng bán với giá 2000 đồng một quà; l/4số trứng bán
với giá 1800 đồng 1 quả; còn lại bao nhiêu bán với giá 1500 dồng một quá. Sau khi bán
xong người đỏ lãi 206.000 đồng. Tỉm số trứng người đó đà mua.
Hướng dần cách giãi:
Gọi số trứng sau khi bị vờ 20 quả lả a. ta có số tiền bán trứng thu được là:
(2xa/4) X 2000 + (a/4) X 1800 + (a/4) X 1500 = 1.000 X a + 450 X a + 345 X a = 1.825 X a

Sổ tiền mua trứng ban đầu là: (a + 20) X 1.200 = 1200 X a + 24.000
Ta có 1.825 X a = 1.200 X a + 24.000 + 206.000 = 1.200 a X 230.000
1.825 X a - 1.200X3 = 230.000
625 X a = 230.000 suy ra a = 368
Vậy số trứng mua ban đầu là 368 + 20 = 388 (quả)

4


C hưong 5
CÁ C CẤU TR Ú C X ET ĐIÈU KIỆN
I - Vòng lặp có điều kiện While
Ta đà biết câu lệnh lặp REPEAT đé lặp lại một số công việc. Trong câu lệnh này,
số bước lặp đà được biết trước và LOGO sè thực hiện đủng so bước đà chi định.
Ví dụ 1: cần tỉnh t ổ n g 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à cho s = s + A và
cho 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 trinh. Trong nhiều trường hợp. so 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 không xác định).
Ví dụ 2: Tính tổng S = 3 + 7 + ll + 1 5 + 1 9 +... cho đến khi số hạng cuổi cùng
gần bàng 100 nhất.
Cùng giống như bài ưẽ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 = 4; sau đó thực hiện lặp với hai việc lả cho s = s + A và cho 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?
Vòng lặp cỏ điều kiện While như sau: WHILE [điều kiện] [công việc]
Cách thực hiện vòng lặp như sau: Đầu tiên. LOGO sè kiếm tra [điều kiện]. nếu
điều kiện được thỏa màn (tức là ĐỦNG) thi [công việc] được thực hiện, sau đỏ lại kiểm
tra [điều kiện]. nếu điều kiện vần được thỏa màn thỉ [công việc] tiếp tục được thực
hiện..., cứ như thế cho đến khi [đièu kiện] không được thỏa màn nừa (tức là SAI) thi
dừng lại.
Ớ ví dụ 2 ta nhận thấy: Biến A liên tục được tăng lẻn sau mồi lần lặp. ta sè xác
định điểu kiện là A < 100. tức lả: nếu A lớn hơn 100 vì ket thúc vòng lặp.
Chương trinh tính tổng tại ví dụ 2 với vòng lặp WHILE như sau:
to congW


cs
MAKE "S 0
MAKE "A 3
W HILE [:A < 100] [
MAKE "S :S + :A
MAKE "A :A + 4 ]
RT 90 LABEL :S

5


end
Ớ VÍ dụ 1, mặc dù sổ lần lặp đà biết trước, nhưng ta vần cỏ thẻ sứ dụng vòng lặp
While như sau:
to congW2

:N

cs
Make "S 0
Make "A 1
While [:A <= :N] [
Ma ke "S : s + : A
Ma ke "A :A + 1
RT 90 Label i:S

Cần chú ý : [côngviệc] trong lệnh WHILE cỏ thề lả một hoặc nhiều công việc
được đặt trong cặp dấu [ ]. Trường hợp có nhiều còng việc thì ta nên viết mồi việc trẽn
một dòng cho tường minh và dề soát lồi. Trong trường hop này, dấu mờ [ đặt ờ cuối

dòng cỏ lệnh WHILE và dấu đóng ] đẻ ở cuối dòng lệnh cuổi cùng (xem ví dụ).

Ví dụ 3: Giài bài toán cổ:
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con
Một trăm chân chần.
Với bài toán này, khi học toán ta thường dùng phương phái giả thiết tạm (giả sử
gà cỏ 4 chân hoặc già sữ chỏ cỏ 2 chân), đày là phương pháp khoa học nhất. Tuy nhiên,
ta cùng cỏ thề dùng phương pháp thử loại trừ dần:
Nếu cỏ 1 con gà và 35 con chỏ thì sổ chân lả 142 > 100 nên loại.
Nếu cỏ 2 con và và 34 con chỏ thì số chân lả 140 > 100 nên loại
Cứ như thế nếu số chân đúng bàng 100 thỉ ta chọn phương án đỏ.
Cách giải này dề. nhưng quá dài vả mất nhiều thời gian. Tuy nhiên, đối với máy
tính, việc “lây cân cù bù khả năng" lả một ưu thê, nên nêu sứ dụng phương pháp nảy sè
thuận lợi hơn cho người viết chương trình.
Gọi số gà lả X, số chỏ là y, bắt đầu với X = 1 vả y = 35, sau đỏ lần lượt kiếm tra số
chân, khi nào tồng số chân đúng bầng 100 thi dừng lại.
to gacho

cs
make "x 1
make "y 35
make "chan 2*:x + 4*:y
While [ ¡chart <> ÎOO] [
make "x :x + 1
make "y :y - 1
make "chan 2*:x + 4*:y ]
RT 90 Label :x PU FD 50 PD Label
end


6

:y


BÀI TẬP
5.1 - Giãi bài toán sau:
Trong giỏ vừa thó vừa gà
100 cái cang, 43 cải đầu
Hòi có bao nhiêu gà. bao nhiêu thỏ?
5.2 - C huồn chuồn và N hện
Chuồn chuồn và Nhện hợp sức đế chống lại lào Tò vò độc ác. Một hôm. chúng
tập trung lại để cùng tấn công Tò vò. Mới đầu. chúng đồng loạt bò trẽn mặt đẩt và lào
Tò vò đem được tất cà cỏ 200 cái chân. Sau đó chúng thay đồi chiến thuật, nhện thì bò
dưới đất. còn chuồn chuồn thì con bay con bò làm lào tò vò hoa mắt vả chi đém được tất
cả cỏ 28 cái đầu. không biết mồi loại cỏ mấy con. Em hăy tính giúp xem cỏ bao nhiêu
Nhện và bao nhiêu c h u ồ n chuồn củng tấn công lào Tò vò, biết ràng 1 con nhện cỏ 8
chân, 1 con chuồn chuổn cỏ 6 chân.
5.3 - Giãi bài toán cổ:
Trâm trâu trảm cỏ
Trâu đứng ãn 5
Trâu nam ãn 3
Lụ khụ trâu già
3 con 1 bỏ
Hỏi cỏ bao nhiêu trâu đứng, bao nhiêu trâu nằm. bao nhiêu trâu già?
5.4 - Tim so viên bi.
Việt cỏ 20 viên bi, Nam có 8 viên bi. C à v iệ t và Nam cùng cho Bình một số viên
bi như nhau, sau đó v iệ t lại cho Nam số viên bi đúng bằng số viên bi mà Nam hiện có,
vả nhận thấy rang số bi của v iệ t và Nam là bầng nhau. Hỏi cả v iệ t và Nam cùng cho

Binh mấy viên bi?
5.5 - Cho dãy số c h o dày số 5, 8, 11, ... trong đỏ số cuối củng không lớn horn
64.000. Hày tính trung bỉnh cộng của các sô cỏ trong dày.

7


2 - Câu lệnh xét điều kiện
2.1 - Câu lệnh IF
Một hành động chi được thực hiện nếu một điều hiện nào đó được thỏa màn sè
được thực hiện bời một câu lệnh cỏ điêu kiện.
Ví dụ 1: hày vè một đa giác cỏ N cạnh, chiều dài mồi cạnh là 50 bước rùa với số
cạnh lớn nhất lả 10.
to dagỉac

:N

cs

IF :N <= 10 [ Repeat :N [FD 50 RT 360/:N]]
end

Trong ví dụ trên, ta sử dụng càu lệnh IF:
IF <điều_kiện> [công việc]
Ví dụ 2: hày in ra màn hình tất cà các số chia hết cho 5 cỏ trong 50 số lé đầu tiên.
to dkỉenl

c s RT 90
Make "A 1
Make "N 0

Make "dem 0
While [idem <= 50] [
Make "Ktra :A + :N

IF (MODULO :Ktra 5) - 0 [PU FD 35 Label :Ktra]
Make "N :N + 2
Make "dem idem + 1 ]
end

Giải thích:
- Trong chưorng trinh cỏ sử dụng bển dem để đếm sổ lượng các số được tạo trong
dày, khi nào biến dem đạt giá trị là 50 thi dừng lại.
- Biến Ktra là các số lẻ cỏ trong dày đà được xác định.
- Câu lệnh:
IF (MODULO :Ktra 5) = 0 [PU FD 35 Label :Ktra]

dùng để kiếm tra xem giá trị của biến Ktra cỏ chia hết cho 5 hay không, nếu chia
hết thỉ viết ra giá trị cùa nỏ.
Ghi nhở: hàm MODULO :A :B đé xác định số dư của phép chia số A cho số B
Gộp nhiều diều kiện:
Hây xem lại v í dụ 1 (vè đa giác), ta nhận thấy: Một hỉnh đa giác phải cỏ ít nhất là
3 cạnh (gọi là tam giác). Như vậy với số cạnh lả N được đưa từ ngoài vảo, ngoải việc
8


kiềm tra điều kiện không quá 10, ta còn phãi kiềm tra xem số đỏ cỏ lớn hơn 2 hay
không? Trong LOGO cỏ sử dụng một sô hàm đê gộp các điêu kiện như sau:
Hàm AND <điều_kiệnl> <điều_kiện2>...
hàm sè xét các điều kiện và chi cho là thỏa màn (ĐÚNG) khi tất cả các điều kiện
đêu thỏa màn (ĐỦNG), ch i cần một điêu kiện không thỏa màn (SAI) thì hàm sè cho là

tât cà không thỏa màn (SAI)
Hàm OR <điều_kiệnl> <điều_kỉện2>...
ngược lại với hàm AND, hàm sè xét các điều kiện và cho lả thỏa màn (ĐÚNG)
nêu chi càn 1 điêu kiện thỏa màn (ĐUNG), ch i khi nào tât cả các điêu kiện đêu không
thỏa màn (SAI) thỉ hàm mới cho là không thỏa màn (SAI)
Với ví dụ I . phải đồng thời thỏa màn 2 điều kiện là N > 2 và N <= 10 nên ta phải
viẻt lại càu lệnh IF như sau:
IF AND (:N <- 10) (:N > 2) [ Repeat :N [FD 50 RT 360/:N]]

2.2 - Câu lệnh IFELSE
Ớ câu lệnh IF. nếu điểu kiện thỏa màn thì [công việc] được thực hiện, còn nếu
điêu kiện thỏa màn thì không lảm gỉ cả.
Với vỉ dụ vè hình đa giác, nếu thỏa màn 2 điều kiện là N > 2 và N <= 10 thl
LOGO sè vè hình đa giác, ngược lại sè không làm gỉ. Mong muốn cùa người dùng là
phải thông báo cho biẻt trường hợp không vẽ được.
Ví dụ 3: hày vè một đa giác cỏ N cạnh, chiều dài mồi cạnh là 50 bước rùa với số
cạnh lớn nhất là 10. Trường hợp không vè được thì in ra màn hình câu thông báo
•‘Không hợp lệ".
to dagiac3 :N

cs
IFELSE AND (:N <= 10) (:N > 2) [Repeat :N [FD 50 RT 360/:N]]
RT 90 Label [Khong hop le]]
end

[

Trong ví dụ trên ta nhận thấy: Thay vỉ sừ dụng lệnh IF thì ta dùng lệnh IFELSE
với củ pháp như sau:
IFELSE <điều_kiện> [công việcl] [công_việc2]

Câu lệnh này được LOGO thực hiện như sau: Nếu điều kiện được thỏa màn
(ĐUNG) thỉ thực hiện [công việcl]. còn nêu điêu kiện không thỏa màn (SAI) thỉ thực
hiện [công_việc2].

9



×