Bài 1: hãy vẽ đa giác cạnh p nhập từ bàn phím nếu đa giác lớn hơn 11 và bé hơn 3 thì báo không hợp lệ
to dagiac :p :n
cs
rt 90
ifelse or(:p<3)(:p>11) [label(list "khong "hop "le)] [repeat :p[fd :n rt 180-(1-2/:p)*180)]]
{n u a giác có c nh p nh h n 3 ho c l n h n 11 thì xu t thông ế đ ạ ỏ ơ ặ ớ ơ ấ báo ra sân ch i “không h p l ” ngơ ợ ệ ược l i thì v a giác p ra sân ạ ẽ đ
ch i}ơ
ht
end
bài 2: tính tổng S = 1 + 2 + + n biết tổng nhỏ hơn 100 tìm số n
cách 1:
to tong :n
cs
rt 90
make "s 0
make "i 0
while [:s < :n] [make "i :i + 1 make "s :s + :i]
label(list "so "can "tim "la :i - 1)
ht
end
cách 2:
to tong :n
cs {xóa sân ch i}ơ
rt 90 {rùa quay ph i 90 ả độ}
make "s 0 {gán cho t ng b ng 0}ổ ằ
make "i 0 {gán cho I b ng 0}ằ
until [or(:s=:n)(:s > :n)] [make "i :i + 1 make "s :s + :i] {khi
t ng nh h n ho c ch a b ng s c n tìm thì t ng bi n I lên 1 và ổ ỏ ơ ặ ư ằ ố ầ ằ ế
t ng c ng d n theo i}ổ ộ ồ
label(list "so "can "tim "la :i - 1) {xu t thông báo ra sân ch i}ấ ơ
ht {rùa n}ẩ
end
bài 3: tính tổng S= 1+2+ + n ; n nhập từ bàn phím
to tinhtong :n
cs
rt 90
make "s 0 {gán t ng b ng 0}ổ ằ
for [i 1 :n 1][make "s :s + :i] {bi n I ch y t 1 t i n; t ng c ngế ạ ừ ớ ổ ộ
d n theo bi n i}ồ ế
label(list "tong "cua "day "1+2+3+ +n "= :s)
Trang 2sety -50 {xu ng dòng}ố
end
bài 4: so sánh hai số bất kì a và b nhập từ bàn phím
to sosanh :a :b
cs
rt 90
ifelse :a<:b [label(list "so "lon "la :b)] [label(list "so "lon
"la :a)]
ht
end
bài 5: so sanh ba số bất kì a, b, c nhập từ bàn phím
to sobaso :a :b :c
cs
rt 90
make "max :a
make "min :a
if :b>:max [make "max :b]
if :c>:max [make "max :c]
if :b<:min [make "min :b]
if :c<:min [make "min :c]
label(list "so "lon "nhat "la :max)
pu {nh t bút không v khi di chuy n}ấ ẽ ể
sety -50
label(list "so "nho "nhat "la :min)
ht
end
bài 6: tính tổng S=0 + 2 + 4 + + k ; tím số k biết tổng nhỏ hơn một số bất kì n nhập từ bàn phím
cách 1:
to tongchan :n
cs
rt 90
make "s 0
make "i 0
while [:s<:n] [make "i :i+2 make "s :s+:i]
label(list "so "can "tim :i-2)
pu
sety -50
label(list "tong "la :s-:i)
ht
cách 2:
to tongchan :n
cs
rt 90
make "s 0
Trang 3make "i 0
until [or(:s=:n)(:s>:n)] [make "i :i+2 make "s :s+:i]
label(list "so "can "tim :i-2)
pu
sety -50
label(list "tong "la :s-:i)
ht
end
bài 7: tính tổng S= 1 + 3 + 5 + + k ; tìm số k biết tổng nhỏ hơn một số bất kì n nhập từ bàn phím bài 8: tính tổng các số chẵn S = 2 + 4 + + n ; n nhập từ bàn phím
to tongchan :n
cs
rt 90
make "s 0
for [i 2 :n 2] [make "s :s+:i]
label(list "tong "cac "so "chan "cua "day "la :s)
ht
end
bài 9: tính tổng các số lẻ L = 1 + 3 + 5 + + n ; n nhập từ bàn phím
to tongle :n
cs
rt 90
make "s 0
for [i 1 :n 2] [make "s :s+:i]
label(list "tong "day "la :s)
ht
end
bt: duong tron màu đỏ, chữ màu xanh
to tron
cs
setpencolor 4
repeat 36[arc2 360 50 fd 20 rt 10]
pu
bk 150 rt 90
setpencolor 2
Trang 4bài 10
to hinh
repeat 2 [fd 50 rt 72 fd 50 rt 108]
repeat 2 [fd 80 rt 72 fd 80 rt 108]
fd 80 rt 72 fd 80
setheading towards [0 0]
make "d distance [0 0]
fd :d
rt 144
end
to xoay
cs
repeat 5[hinh rt 72]
rt 36
repeat 5[hinh rt 72]
fd 50 rt 108
repeat 6[fd 50 rt 72 fd 50 rt 36]
lt 36 fd 50 rt 72
repeat 10[fd 50 rt 36]
end
Make "d 129.442719
Một số bài toán được giải bằng logo Bai 11 : tính tổng s=1 + 2+3+…+n
to tong :n
make "s 0
Trang 5make "a 1
repeat :n [make "s :s + :a make "a :a +1] rt 90 label :s
end
chạy thủ tục tong 3 ta được kết quả s=6
Bài 12 : tính tổng s=3+7+11+15+19+…cho đến khi số cuối cùng gần bằng 100 nhất
to tong
make "s 0
make "a 3
while [:a <100 ][make "s :s +:a make "a :a +4] rt 90 label :s
end
chạy thủ tục tong ta được kết quả là 1275
Bài 13 :tính tổng các số lẻ nhỏ hơn 200
to tong
make "s 0
make "a 1
while [:a <200 ][make "s :s +:a make "a :a +2] rt 90 label :s
end
chạy thủ tục tong ta đươc kết quả là 10000
Bài 14: tính tổng các dãy số sau s=1/2 +1/4 +1/8+1/16+…+1/512
to tong
make "s 0
make "a 2
while [:a <513 ] [make "s :s +1/:a make "a :a *2] rt 90 label :s end
Trang 6chạy thủ tục tong ta được kết quả 0.998046875
Bài 15:sư dụng vòng lặp while tính tổng các số lẻ bé hơn n với n nhập trên bàn phím
to tong :n
make "s 0
make "a 1
while [:a <:n+1 ] [make "s :s +:a make "a :a+2] rt 90 label :s
end
chạy thủ tục tong 10 ta được kết quả 25
Bài 16:sử dụng vòng lặp while tính tổng s=1+1/2+1/3+ 1/n với nhập vào tự bàn phím
to tong :n
make "s 0
make "a 1
while [:a <:n +1 ] [make "s :s +1/:a make "a :a+1] rt 90 label :s end
chạy thủ tục tong 2 ta được kết quả 1.5
Bài 17:tính tổng s=1*2*3*…*n
to tong :n
make "s 1
make "a 1
while [:a<:n+1][make "s :s*:a make "a :a+1] rt 90 label :s
end
chạy thủ tục tong 3 ta đươc kết quả 6
Bài 18: tính tổng:
S=1.2+2.3+3.4+…+8.9+9.10+10.11+…+28.29 +29.30
Trang 7to tong
make "s1 0
make "a 1.2
while [:a<9][make "s1 :s1+:a make "a :a+1.1]
make "s2 0 make "b 9.1
while [:b<30][make "s2 :s2+:b make "b :b +1.01]
make "s :s1 +:s2
rt 90 label :s
end
chạy thủ tục tong ta được kết quả 443.6
Bài 19: Cho dãy số 5,8,11…trong đó số cuối cung không lớn hơn 64
000 Tính trung bình cộng của dãy số trên
To tbc
make "s 0
make "a 5
while [:a<64000][make "s :s+:a
make "a :a+3]
make "n :a-3
make "n1 (:n-5)/3+1
make "tbc :s/:n1
rt 90 label :tbc
end
Chạy thủ tục tbc ta được kết quả 32001.5
Bài 20: Cho dãy số bất kỳ tính tổng của n số hạng và trung bình cộng của nó
Trang 8to timsohangthu :n :d :k ;n so hang ,d so hang dau, k khoang cach
cs pennormal rt 90
make "s 0
make "c (:n-1)*:k+:d
for[i :d :c :k][make "s :s+:i ]
label(list "tong "cua :n "so "hang "la :s)
home pu bk 30 rt 90 pd
label(list "trung "binh "cong "cua "day "so "la :s/:n)
ht
end