To Cau2 CS Repeat 6[Arc2 180 50 RT 360/3] LT 60 Circle2 100 PU RT 90 FD 100 SetFC 14 Fill PD HT End
To Cau3 Cs Ht Repeat 5[ Repeat 5[FD 50 RT 360/5] Repeat 5[FD 25 LT 360/5] RT 180-72 FD 50 RT 36 FD 25 LT 180-108] End
To Cau4 :n ;Truyền độ dài cạnh hình vuông ban đầu vào CS Make "s 0 PU FD :n/2 Make "m Distance (list :n/2 0) Home PD For[i 1 7 1][IfElse (modulo :i 2)=1 [ Make "s :s+:n*:n Repeat 4[Fd :n rt 90] Fd :n/2 rt 45 make "n :n/2][ Make "s :s+:m*:m Repeat 4[Fd :m rt 90] Fd :m/2 rt 45 make "m :m/2]] Pu Setxy 0 -30 SetHeading 90 Label (List "Tong "dien "tich "la :s) HT End
Hướng Dẫn: Trong bài này ta thấy có 2 loại hình vuông, 1 giống với hình vuông lớn (màu xanh), và một loại hình vẽ ở góc 9 giờ với góc xoay 45 độ tại trung điểm của hình vuông lớn (màu đỏ). Để vẽ được hình vuông màu đỏ lần đầu tiên ta phải tính cạnh của nó dựa vào hình vuông lớn (m), trong bài viết này cạnh được truyền vào qua thông số n Make “m Distance (list :n/2 0)
Sau mỗi lần vẽ xong thì giảm đi một nữa đây chính là cạnh cho hình vuông cùng màu lần tiếp theo, biến i trong vòng For sẽ quyết định vẽ bao nhiêu hình vuông lồng nhau, có thể thay bằng biến để thay đổi số hình vuông bên trong, hàm ifElse dựa vào modulo để quyết định vẽ hình xanh (chẵn) hay đỏ (lẻ). Hình dưới đây mở rộng bài toán với số lần vẽ hình vuông được thay bằng biến Cau4 300 10
Code do thầy Lộc Nguyễn cung cấp 😀
câu 4 không được nó báo thế này n has no value in bai4 PU fd :n/2
Make “m Distance (list :n/2 0)
Bạn phải truyền tham số vào cho nó ví dụ Cau4 200
Câu 4 không được. Mình chép giống hệt mà cũng thay :n là 200 rồi
Bạn gửi code cho chúng tôi trên fanpage hay email để chúng tôi sửa lỗi giúp cho.
câu 3 bạn làm hơi bị khác đề
câu 3 họ vẽ hình to trước mới vẽ hình nhỏ mà