NarWhizเปิดแอป ▶

ตรวจหาข้อผิดพลาดของโปรแกรม วิทยาศาสตร์และเทคโนโลยี ป.6

🐞 บทเรียนวิทยาศาสตร์และเทคโนโลยี ประถมศึกษาปีที่ 6 · หน่วย: อัลกอริทึมและการเขียนโปรแกรม · ตัวชี้วัด ว 4.2 ป.6/1, ว 4.2 ป.6/2

📖 เรียนบทนี้ (มีภาพเคลื่อนไหวและเสียง)🎮 เล่นเกมแบบฝึกหัด

เนื้อหาบทเรียน: ตรวจหาข้อผิดพลาดของโปรแกรม

โปรแกรมไม่เป็นอย่างที่คิด!

อยากให้แมววาดสี่เหลี่ยม แต่ได้รูปแปลก ๆ

เกิดอะไรขึ้นนะ?

บั๊ก และ การดีบัก

บั๊ก (bug) = ข้อผิดพลาดในโปรแกรม

ดีบัก (debug) = การหาและแก้ข้อผิดพลาด

นักเขียนโปรแกรมทุกคนต้องเจอบั๊ก

ข้อผิดพลาดที่พบบ่อย

รู้จักไว้ จะหาเจอเร็ว

วิธีหาบั๊ก

ทำอย่างเป็นขั้นตอน

ไล่โปรแกรมด้วยตาราง

จดค่าตัวแปรทุกรอบ จะเห็นว่าผิดตรงไหน

"ตั้ง n = 1 ทำซ้ำ 3 ครั้ง: n = n × 2"

ตัวอย่างตัวอย่าง: สี่เหลี่ยมที่ไม่ปิด

หันขวา 60 องศา รูปจึงไม่ปิด

สี่เหลี่ยมจัตุรัสต้องหัน 360 ÷ 4 = 90 องศา

ตัวอย่างตัวอย่าง 2: นับถอยหลังกลายเป็นนับขึ้น

ตั้ง n = 10 ทำซ้ำ 10 ครั้ง: พูด n แล้วเปลี่ยน n ทีละ 1

ได้ 10, 11, 12, … ผิด!

ต้องเปลี่ยน n ทีละ −1 จึงได้ 10, 9, 8, …

ตัวอย่างตัวอย่าง 3: เงื่อนไขผิด

เกณฑ์ผ่าน: คะแนน 50 ขึ้นไป

โปรแกรมเขียน "ถ้า คะแนน > 50 แล้ว พูด ผ่าน"

คนได้ 50 พอดีไม่ผ่าน! แก้เป็น "> 49" หรือ "≥ 50"

ระวังพลาดแก้ทีละจุด แล้วทดสอบ

แก้หลายจุดพร้อมกัน จะไม่รู้ว่าอะไรได้ผล

ทดสอบหลายค่า โดยเฉพาะค่าที่ขอบเงื่อนไข

แก้เสร็จแล้วต้องรันซ้ำทุกครั้ง

ดีบักในชีวิตประจำวัน

อัลกอริทึมในชีวิตจริงก็มีบั๊กได้

เช่น สูตรทำไข่เจียว "ตีไข่ → เทลงกระทะ → ใส่น้ำมัน"

แก้ลำดับ: ใส่น้ำมันก่อนเทไข่

สรุปสรุป

บั๊ก = ข้อผิดพลาด ดีบัก = หาและแก้

รัน → ไล่ทีละคำสั่ง → หาจุดผิด → แก้ทีละจุด → ทดสอบซ้ำ

เคล็ดลับ: "รัน-ไล่-หา-แก้-ลองใหม่"

แบบฝึกหัด ตรวจหาข้อผิดพลาดของโปรแกรม พร้อมเฉลย

  1. โปรแกรมวาดสามเหลี่ยมด้านเท่า "ทำซ้ำ 3 ครั้ง: เดิน 100 หันขวา 90" ได้รูปไม่ปิด ต้องแก้อย่างไร
    • ก. เปลี่ยนเป็นทำซ้ำ 10 ครั้ง
    • ข. เปลี่ยนเป็นหันขวา 120 องศา
    • ค. ลบบล็อกทำซ้ำ
    • ง. เปลี่ยนเป็นเดิน 50 ก้าว
    ดูเฉลยตอบ: เปลี่ยนเป็นหันขวา 120 องศา — สามเหลี่ยมด้านเท่าต้องหัน 360 ÷ 3 = 120 องศา
  2. โปรแกรมเกมให้คะแนนรอบใหม่ไม่กลับเป็น 0 ข้อผิดพลาดน่าจะเกิดจากอะไร
    • ก. ใช้บล็อกเคลื่อนที่
    • ข. เสียงดังเกินไป
    • ค. ตัวละครสีผิด
    • ง. ไม่ได้ตั้งค่าคะแนนเริ่มต้นเป็น 0 ตอนเริ่ม
    ดูเฉลยตอบ: ไม่ได้ตั้งค่าคะแนนเริ่มต้นเป็น 0 ตอนเริ่ม — ต้องมี "ตั้ง คะแนน เป็น 0" ต่อจากบล็อกเริ่มทุกครั้ง
  3. การหาและแก้ข้อผิดพลาดของโปรแกรมเรียกว่าอะไร
    • ก. การวาดผังงาน
    • ข. การบันทึกไฟล์
    • ค. การดีบัก
    • ง. การรันโปรแกรม
    ดูเฉลยตอบ: การดีบัก — debug = กำจัดบั๊ก
  4. โปรแกรมวาดหกเหลี่ยม "ทำซ้ำ 6 ครั้ง: เดิน 50 หันขวา 90" ผิดที่ใด
    • ก. จำนวนรอบควรเป็น 4
    • ข. มุมที่หันควรเป็น 60 องศา
    • ค. ไม่มีอะไรผิด
    • ง. ต้องเดิน 100
    ดูเฉลยตอบ: มุมที่หันควรเป็น 60 องศา — 360 ÷ 6 = 60 องศา
  5. จริงหรือไม่: ควรแก้ข้อผิดพลาดหลายจุดพร้อมกันเพื่อความรวดเร็ว
    ดูเฉลยตอบ: ไม่จริง — แก้ทีละจุดแล้วทดสอบ จะรู้ว่าอะไรเป็นสาเหตุ
  6. จริงหรือไม่: หลังแก้บั๊กแล้วต้องรันโปรแกรมทดสอบซ้ำ
    ดูเฉลยตอบ: จริง — เพื่อยืนยันว่าแก้ได้จริงและไม่เกิดบั๊กใหม่
  7. ตั้ง n = 1 ทำซ้ำ 4 ครั้ง: n = n × 2 จบแล้ว n เท่ากับเท่าใด
    ดูเฉลยตอบ: 16 — 1 → 2 → 4 → 8 → 16
  8. เกณฑ์ผ่านคือ 50 คะแนนขึ้นไป ควรเขียนเงื่อนไขอย่างไร
    • ก. ถ้า คะแนน = 49
    • ข. ถ้า คะแนน < 50
    • ค. ถ้า คะแนน > 50
    • ง. ถ้า คะแนน > 49
    ดูเฉลยตอบ: ถ้า คะแนน > 49 — คะแนน 50 ต้องผ่านด้วย จึงใช้ > 49 (เท่ากับ ≥ 50)
  9. นับถอยหลังจาก 10 แต่โปรแกรมพูด 10, 11, 12 ควรแก้อย่างไร
    • ก. ตั้ง n เป็น 0
    • ข. เปลี่ยน n ทีละ −1 แทน 1
    • ค. ลบบล็อกพูด
    • ง. ทำซ้ำ 20 ครั้ง
    ดูเฉลยตอบ: เปลี่ยน n ทีละ −1 แทน 1 — ต้องลดค่าทีละ 1
  10. สูตร "ตีไข่ → เทลงกระทะ → ใส่น้ำมัน" มีข้อผิดพลาดแบบใด
    • ก. ไม่มีจุดจบ
    • ข. ไม่มีข้อผิดพลาด
    • ค. ลำดับขั้นตอนผิด
    • ง. ค่าตัวเลขผิด
    ดูเฉลยตอบ: ลำดับขั้นตอนผิด — ต้องใส่น้ำมันก่อนเทไข่

อยากฝึกต่อ? เล่นเกมแบบฝึกหัดบทนี้ ได้คะแนนและดาวทันที

บทนี้อยู่ใน วิทยาศาสตร์และเทคโนโลยี ป.6 หน่วย “อัลกอริทึมและการเขียนโปรแกรม” · ครูและผู้ปกครองพิมพ์ใบงานได้ฟรี