
การเขียนโปรแกรมที่ดีไม่ได้มีเพียงการสั่งให้ตัวละครเคลื่อนที่หรือเปลี่ยนชุดเท่านั้น แต่ยังต้องสามารถ โต้ตอบกับผู้ใช้งาน (User Interaction) ได้อีกด้วย ซึ่งในโปรแกรม Scratch เราสามารถให้ผู้ใช้ป้อนข้อมูลผ่านแป้นพิมพ์ แล้วนำข้อมูลนั้นไปใช้ในการทำงานของโปรแกรมได้
ในบทเรียนนี้ นักเรียนจะได้เรียนรู้การใช้คำสั่ง Ask and Wait เพื่อรับค่าตัวเลขจากผู้ใช้ และใช้คำสั่ง Repeat เพื่อให้โปรแกรมทำงานซ้ำตามจำนวนครั้งที่กำหนด เหมาะสำหรับนักเรียนชั้นประถมศึกษาปีที่ 5 ที่กำลังเริ่มเรียนรู้แนวคิดเรื่อง Input และ Loop ในการเขียนโปรแกรม
Input (การรับข้อมูล) คืออะไร
ก่อนที่โปรแกรมจะทำงาน เรามักต้องรับข้อมูลจากผู้ใช้งานก่อน ข้อมูลที่รับเข้ามาเรียกว่า Input
ตัวอย่างของ Input ได้แก่
- พิมพ์ชื่อตนเอง
- พิมพ์อายุ
- พิมพ์คะแนน
- พิมพ์ตัวเลขที่ต้องการ
ใน Scratch เราสามารถรับข้อมูลจากผู้ใช้ได้ด้วยคำสั่ง Ask and Wait
ตัวอย่างเช่น
โปรแกรมถามว่า “กี่รอบดี?”
ผู้ใช้ตอบ
5
โปรแกรมจะนำเลข 5 ไปใช้ในการทำงานต่อ
รู้จักคำสั่ง Ask and Wait
คำสั่ง Ask and Wait อยู่ในหมวด Sensing (การตรวจจับ)
หน้าที่ของคำสั่งนี้ คือ
- แสดงคำถามบนหน้าจอ
- รอให้ผู้ใช้พิมพ์คำตอบ
- เก็บคำตอบไว้ในตัวแปร Answer
ยกตัวอย่าง
โปรแกรมถามว่า
กี่รอบดี?
ผู้ใช้พิมพ์
3
Scratch จะเก็บค่า 3 ไว้ในตัวแปร Answer เพื่อนำไปใช้งานต่อ
ตัวแปร Answer คืออะไร
เมื่อผู้ใช้ตอบคำถามแล้ว Scratch จะนำคำตอบไปเก็บไว้ในตัวแปรพิเศษชื่อ Answer
ตัวอย่าง
| โปรแกรมถาม | ผู้ใช้ตอบ | Answer |
|---|---|---|
| กี่รอบดี | 2 | 2 |
| กี่รอบดี | 5 | 5 |
| กี่รอบดี | 10 | 10 |
ดังนั้น หากต้องการนำค่าที่ผู้ใช้ป้อนมาใช้งาน ก็สามารถเรียกใช้บล็อก Answer ได้ทันที
คำสั่ง Repeat คืออะไร
คำสั่ง Repeat อยู่ในหมวด Control (การควบคุม)
ใช้สำหรับ
สั่งให้โปรแกรมทำงานซ้ำตามจำนวนครั้งที่กำหนด
ตัวอย่าง
Repeat 3
พูดว่า
“Hello”
ผลลัพธ์ที่ได้คือ
Hello
Hello
Hello
คำสั่ง Repeat ช่วยลดการเขียนคำสั่งซ้ำหลาย ๆ ครั้ง และทำให้โปรแกรมสั้นลง อ่านง่ายขึ้น
การใช้ Answer ร่วมกับ Repeat
นี่คือหัวใจของบทเรียนนี้
เมื่อผู้ใช้พิมพ์ตัวเลข โปรแกรมจะนำค่าที่อยู่ใน Answer ไปกำหนดจำนวนรอบของ Repeat
ตัวอย่างการทำงาน
- คลิกธงเขียว
- โปรแกรมถามว่า “กี่รอบดี?”
- ผู้ใช้พิมพ์ 3
- Answer มีค่าเท่ากับ 3
- Repeat ทำงาน 3 รอบ
ภายในแต่ละรอบ โปรแกรมจะพูดว่า
“เขียนโปรแกรม”
จากนั้นพูดว่า
“สนุกจัง”
เมื่อครบ 3 รอบ โปรแกรมจึงหยุดทำงาน
ตัวอย่างโปรแกรม Scratch
ตัวอย่างโปรแกรมในใบงาน
- เมื่อคลิกธงเขียว
- ถามผู้ใช้ว่า “กี่รอบดี?”
- รับค่าตัวเลข
- ใช้ Repeat ตามจำนวนที่ผู้ใช้กำหนด
- พูดว่า “เขียนโปรแกรม” เป็นเวลา 2 วินาที
- พูดว่า “สนุกจัง” เป็นเวลา 2 วินาที
โปรแกรมนี้แสดงให้เห็นว่า เราสามารถใช้ข้อมูลที่ผู้ใช้ป้อนเข้ามาควบคุมการทำงานของโปรแกรมได้อย่างง่ายดาย
ตัวอย่างผลลัพธ์ของโปรแกรม
สมมติว่าผู้ใช้พิมพ์
3
โปรแกรมจะทำงานดังนี้
รอบที่ 1
- เขียนโปรแกรม
- สนุกจัง
รอบที่ 2
- เขียนโปรแกรม
- สนุกจัง
รอบที่ 3
- เขียนโปรแกรม
- สนุกจัง
เมื่อครบ 3 รอบ โปรแกรมจะหยุดทันที
หากผู้ใช้พิมพ์ 5 โปรแกรมก็จะทำงานทั้งหมด 5 รอบ
นี่คือข้อดีของการใช้ Repeat ร่วมกับ Answer เพราะไม่จำเป็นต้องแก้ไขโปรแกรมทุกครั้งที่ต้องการเปลี่ยนจำนวนรอบ
ประโยชน์ของการใช้ Ask and Wait และ Repeat
การใช้คำสั่งทั้งสองร่วมกัน ทำให้โปรแกรมมีความสามารถมากขึ้น เช่น
- โปรแกรมถามตอบกับผู้ใช้ได้
- กำหนดจำนวนรอบได้ตามต้องการ
- ลดการเขียนคำสั่งซ้ำ
- นำไปประยุกต์สร้างเกมได้
- ใช้สร้างแบบฝึกหัดหรือแบบทดสอบได้
ความรู้เรื่องนี้ยังเป็นพื้นฐานสำคัญก่อนเรียนเรื่อง
- การใช้เงื่อนไข (If)
- ตัวแปร (Variable)
- การสร้างเกม
- การเขียนโปรแกรมที่ซับซ้อนขึ้น
กิจกรรมจากใบงาน
ให้นักเรียนทดลองสร้างโปรแกรมตามเงื่อนไขต่อไปนี้
- คลิกธงเขียว
- ถามผู้ใช้ว่า “กี่รอบดี?”
- รับค่าตัวเลขจากผู้ใช้
- ใช้ Repeat ตามจำนวนรอบที่ได้รับ
- ให้ตัวละครพูดว่า “เขียนโปรแกรม” เป็นเวลา 2 วินาที
- จากนั้นพูดว่า “สนุกจัง” เป็นเวลา 2 วินาที
เมื่อทำเสร็จแล้ว ลองเปลี่ยนข้อความเป็นคำอื่น เช่น
- สวัสดี
- Hello
- Scratch
- Kruaof.com
แล้วสังเกตผลลัพธ์ที่เกิดขึ้น
สรุปบทเรียน
ในบทเรียนนี้ นักเรียนได้เรียนรู้พื้นฐานสำคัญของการเขียนโปรแกรมด้วย Scratch ได้แก่
- Ask and Wait ใช้สำหรับรับข้อมูลจากผู้ใช้
- Answer ใช้เก็บค่าที่ผู้ใช้ป้อน
- Repeat ใช้สั่งให้โปรแกรมทำงานซ้ำ
- สามารถนำค่าใน Answer มากำหนดจำนวนรอบของ Repeat ได้
- การรับข้อมูลจากผู้ใช้ช่วยให้โปรแกรมมีความยืดหยุ่นและโต้ตอบกับผู้ใช้งานได้มากขึ้น
เมื่อเข้าใจหลักการนี้แล้ว นักเรียนจะสามารถต่อยอดไปสู่การสร้างเกม โปรแกรมตอบคำถาม และโปรแกรมที่ใช้ตัวแปรและเงื่อนไขได้ในบทเรียนถัดไป




