15.1. Bạn An viết chương trình như Hình 15.1 để điều khiển nhân vật đi theo các cạnh một hình vuông nhưng chương trình không hoạt động. Em hãy gỡ lỗi giúp bạn An.
Hướng dẫn trả lời:
Vì chương trình chạy nhanh, vị trí cuối cùng của nhân vật giống vị trí ban đầu nên người dùng không nhận ra chương trình đã chạy xong (Hình 15.9). Bổ sung khối lệnh “đợi..." để quan sát được di chuyển của nhân vật. Có thể sử dụng khối lệnh lặp (4 lần) để chương trình ngắn gọn hơn.
15.2. Em hãy gỡ lỗi chương trình trong Hình 15.2 để nhân vật di chuyển qua lại trên màn hình nhưng luôn đứng thẳng, không bị quay đầu xuống phía dưới.
Hướng dẫn trả lời:
15.3. Bạn Minh viết chương trình như trong Hình 15.3 để điều khiển nhân vật nhảy theo điệu nhạc nhưng nhân vật chỉ nhảy sau khi nhạc kết thúc. Em hãy gỡ lỗi giúp bạn Minh.
Hướng dẫn trả lời:
15.4. Nhân vật trong chương trình ở Hình 15.4 có ba trang phục Costume1, Costume2 và Costume3. Khoa muốn nhân vật bắt đầu đội mũ, sau đó chạy tại chỗ. Tuy nhiên, chương trình chỉ thực hiện đúng trong lần chạy đầu tiên. Từ lần thứ hai trở đi nó không thực hiện đúng kịch bản, chỉ chạy tại chỗ mà không đội mũ. Em hãy gỡ lỗi giúp
Hướng dẫn trả lời:
Khi bắt đầu chạy chương trình, nhân vật mang trang phục Costumet, đó là hình nhân vật đội mũ. Chương trình kết thúc khi nhân vật mang trang phục Costume3. Từ lần thứ hai trở đi, khi nháy chuột vào lá cờ màu xanh, nói xuất hiện từ trạng thái hiện hành (Costume3) nên không thấy nhân vật đội mũ. Để sửa chương trình, cần bổ sung lệnh chuyển trang phục về Costumet trước khi vào vòng lặp (Hình 15.12).
15.5. Trong chương trình ở Hình 15.5, nhân vật cần thực hiện một điệu nhảy trong khi nhịp trống vang lên. Tuy nhiên, nhân vật đã không nhảy mà đứng yên. Em hãy gỡ lỗi chương trình để nó thực hiện đúng kịch bản nhé.
Hướng dẫn trả lời:
Chương trình có sử dụng nhóm lệnh âm nhạc. Vì việc đổi trang phục nằm ngoài vòng lặp nên nhân vật đứng yên. Chỉ cần đưa lệnh chuyển trang phục kế tiếp" vào trong vòng lặp là chú mèo sẽ thực hiện điệu nhảy. Bỏ lệnh “đợi... để nhân vật nhảy đúng nhịp trống mà không bị trễ (Hình 15.13).
15.6. Chương trình được cho trong Hình 15.6 điều khiển nhân vật hiển thị lần lượt kết quả của phép nhân một số được đưa vào từ bàn phím với các số từ 2 đến 10, nhưng nó chỉ hiện ra một giá trị duy nhất. Em hãy gỡ lỗi để chương trình chạy đúng yêu cầu nhé.
Hướng dẫn trả lời:
Bảng nhân với một số cần được hiển thị 9 lần, mỗi lần với một số nhân khác nhau. Chẳng hạn, bảng chọn với số 3 sẽ bao gồm: 3 x 2 = 6; 3 x 3 = 9;... ; 3 x 10 = 30 (Hình 15.14).
15.7. Chương trình ở Hình 15.7 được lập để điều khiển nhân vật chạy khắp màn hình bằng cách sử dụng các phím mũi tên. Tuy nhiên, nó đã không hoạt động. Em hãy gỡ lỗi để chương trình hoạt động đúng kịch bản nhé.
Hướng dẫn trả lời:
Cần đưa khối lệnh đã cho trong đề bài vào một cấu trúc lặp vô hạn.
15.8. Thực hành: Chương trình được cho trong Hình 15.8 vẽ một đường tròn. Hãy sửa chương trình sao cho tốc độ vẽ tăng lên nhưng đường đi của nhân vật vẫn vẽ thành đúng đường tròn ban đầu.
Hướng dẫn trả lời:
Hướng dẫn
Đường tròn được vẽ dưới dạng đường gấp khúc có nhiều đoạn. Số đoạn càng nhiều, đường sẽ càng tròn. Trong chương trình, số đoạn được thể hiện ở số bước của vòng lặp. Để tốc độ vẽ tăng lên, số bước của vòng lặp phải giảm đi. Tuy nhiên, nếu số bước của vòng lặp nhỏ thì đường tròn sẽ chỉ còn là đường gấp khúc.
Chú ý rằng, giá trị của bước nhảy và góc quay trong mỗi bước lặp cũng phải thay đổi phù hợp để đường nhận được giống đường tròn ban đầu. Cụ thể là, nếu số bước của vòng lặp là n thì bước nhảy và góc quay lần lượt là và 500/n và 360/n
15.9. Thực hành: Em hãy truy cập liên kết sau đây và chạy chương trình: https://scratch.mit.edu/projects/791548660/
Em sẽ thấy sau khi các miếng pizza bị ăn hết, chiếc bánh xuất hiện trở lại nhưng khuyết một miếng. Hãy sửa chương trình để chiếc pizza này không còn gì sau khi tất cả các miếng bánh đã bị ăn.
Hướng dẫn trả lời:
Hướng dẫn Nguyên nhân của việc chiếc bánh pizza vẫn hiện ra sau khi các miếng bánh đã lần lượt bị ăn hết là số bước lặp vượt quá trạng thái bị ăn hết. Vì vậy, cách sửa là giảm số bước của vòng lặp, chỉ để lại 6 bước.
15.10. Thực hành: Em hãy truy cập liên kết sau đây và chạy chương trình: https://scratch.mit.edu/projects/791527048/
Trong chương trình trò chơi đỡ bóng, khi quả bóng chạm vào thanh đỡ, nó cần được nảy lên theo hướng đối xứng với hướng nó đi tới (phản xạ). Tuy nhiên, quả bóng trong chương trình nảy không đúng hướng được yêu cầu.
Em hãy sửa chương trình để quả bóng nảy đúng hướng nhé.
Hướng dẫn trả lời:
Hướng dẫn: Thay câu lệnh "xoay 180" trong kịch bản của quả bóng thành câu lệnh “đặt hướng bằng 180"
15.11. Thực hành: Em hãy truy cập liên kết sau đây và chạy chương trình:
https://scratch.mit.edu/projects/791531006/ Trong chương trình xe dò đường, chiếc xe đi đúng đường khi ở tốc độ thấp (chẳng hạn, khi speed từ 3 trở xuống). Tuy nhiên, khi tốc độ tăng cao (chẳng hạn speed từ 6 trở lên), xe bị văng ra khỏi con đường. Em hãy sửa chương trình sao cho xe đi đúng đường ngay cả khi tốc độ tăng cao.
Hướng dẫn trả lời:
Hướng dẫn: Cách sửa chương trình là thay khối lệnh điều khiển rẽ nhánh thành khối lệnh lặp có điều kiện.
15.12. Thực hành: Em hãy truy cập liên kết sau đây và chạy chương trình:
https://scratch.mit.edu/projects/791750447/ Chương trình là một trò chơi điều khiển. Một miếng pho mát được giấu đằng sau những bức tường và chú chuột cần phải đi vòng qua những bức tường đó để tìm miếng pho mát. Người sử dụng nhấn các phím mũi tên để điều khiển chú chuột. Tuy nhiên, chương trình đã hoạt động không đúng kịch bản. Em hãy chạy thử xem điều gì xảy ra và sửa các lỗi của chương trình.
Hướng dẫn trả lời:
Hướng dẫn: Để chú chuột không đi xuyên qua được bức tường, ta sẽ dịch chuyển bằng cách thay đổi tung độ và hoành độ của chú chuột như được gợi ý trong Hình 15.16 (ứng với phím mũi tên xuống) thay vì sử dụng lệnh dịch chuyển thông thường. Em hãy áp dụng cách này với các phím khác.