การออกแบบและเขียนโปรแกรมที่มีการใช้ตัวแปรการวนซ้ำ การตรวจสอบเงื่อนไข

สาระตามหลักสูตร

  1. การออกแบบและเขียนโปรแกรมที่มีการใช้ตัวแปรการวนซ้ำ
  2. การออกแบบและเขียนโปรแกรมที่มีการตรวจสอบเงื่อนไข

คลิปการสอน

1. การออกแบบและเขียนโปรแกรมที่มีการใช้ตัวแปรการวนซ้ำ

ในการเขียนโปรแกรมบางครั้ง จะมีการทำงานของโปรแกรมที่ต้องทำงานซ้ำๆ ในการประมวลผลรูปแบบเดียวกัน หากจะทำการเขียนโปรแกรมเพื่อให้มีการทำงานซ้ำๆ กันหลายบรรทัดจะเสียเวลาในการเขียนโปรแกรม และเมื่อต้องการแก้ไขโปรแกรมที่มีการทำงานซ้ำๆ นั้นจะสร้างความยุ่งยาก เนื่องจากบรรทัดคำสั่งมีเป็นจำนวนมาก ดังนั้นในภาษาการเขียนโปรแกรม จึงมีไวยากรณ์ชนิดหนึ่ง ที่ผู้เขียนโปรแกรมสามารถนำไปใช้งานได้กับงานการประมวลผลที่ต้องมีการทำงานซ้ำๆ กันในขณะหนึ่งๆ ของโปรแกรมเรียกการเขียนโปรแกรมแบบนั้นว่า การเขียนโปรแกรมแบบมีการทำซ้ำหรือ ลูป (Loop)

เก็บขยะ

ตัวอย่างที่ 1 การเก็บขยะเมื่อเราต้องการเก็บขยะ จะต้องเก็บขยะในบริเวณนั้นไปเรื่อย ๆ จนกว่าขยะในบริเวณนั้นจะหมดหรือสะอาดโดยเขียนเป็นขั้นตอนหรือทางคอมพิวเตอร์เรียกว่า อัลกอริทึมและผังงานได้ ดังนี้

เริ่มต้น

  1. เดินไปบริเวณที่มีขยะ
  2. เก็บขยะ
  3. นำขยะใส่ถังขยะ
  4. ขยะบริเวณนั้นหมดจริงหรือไม่
    4.1 ถ้าไม่จริง ไปทำข้อ 1
    4.2 ถ้าจริงจบการทำงาน

จบ

ตัวอย่างที่ 2 การปูกระเบื้องบนพื้นที่ว่างถ้าต้องการปูกระเบื้องเป็นสีเรียงกันไปเรื่อย ๆ คือ แดง น้ำเงิน เหลือง เขียว แดง น้ำเงิน เหลือง เขียว ดังภาพ

การปูกระเบื้องเรียงสกันไปเรื่อย ๆ

และต้องการปูกระเบื้องเรียงต่อกันไปเรื่อย ๆ เป็นจำนวน 15 แผ่น อยากทราบว่าแผ่นที่ 15 จะเป็นกระเบื้องสีอะไร

วิธีแก้ปัญหา
การแก้ปัญหานี้จะต้องพิจารณาปัญหาอย่างละเอียด คิดหาความสัมพันธ์ต่าง ๆ โดยการเรียงข้อมูลตามที่โจทย์กำหนดจะเป็นเงื่อนไขและกฎเกณฑ์ของปัญหานี้ จากการปูกระเบื้องเราสามารถเขียนรูปแบบของกระเบื้องสีต่าง ๆ ให้เป็นข้อมูลอย่างง่ายได้ เช่น แทนสีกระเบื้องด้วยตัวเลข

สีของกระเบื้องหมายเลข
สีแดง1
สีน้ำเงิน2
สีเหลือง3
สีเขียว4

เมื่อพิจารณาปัญหานี้ต่อไป การปูกระเบื้องจะคล้ายกับการนับเลข 1, 2, 3, 4, 1, 2, 3, 4 โดยวนซ้ำไปเรื่อย ๆ จนครบ 15 ตัวเลข แล้วจะพบว่าการนับครั้งที่ 15 ตรงกับหมายเลข 3 ซึ่งหมายถึงกระเบื้องสีเหลืองนั่นเอง

ตัวอย่างที่ 3 ผึ้งเก็บน้ำหวาน
เราต้องการเขียนโปรแกรมสั่งงานให้ผึ้งเดินทางไปเก็บน้ำหวาน ดังภาพจะเขียนคำสั่งได้อย่างไร

ปริศนาการเดินทางของผึ้ง เก็บน้ำหวาน www.code.org

วิธีแก้ปัญหา
พิจารณาจากปัญหาของผึ้ง จะพบว่ามีน้ำหวานอยู่ที่ดอกไม้ 2 ตำแหน่ง แต่ละตำแหน่งต้องเก็บน้ำหวาน 2 ครั้ง โดยเขียนเป็นขั้นตอนหรือทางคอมพิวเตอร์เรียกว่าอัลกอริทึมได้ ดังนี้
เริ่มต้น 1. ไปข้างหน้า 2. เก็บน้ำหวาน 3. เก็บน้ำหวาน 4. ไปข้างหน้า 5. เก็บน้ำหวาน 6. เก็บน้ำหวาน จบ

จากอัลกอริทึมของปัญหานี้ สามารถเขียนอัลกอริทึมใหม่โดยการวนซ้ำได้และเขียนโปรแกรมแบบบล็อกคำสั่งได้ ดังนี้

เริ่มต้น

1. ทำซ้ำ 2 ครั้ง

1.1 ไปข้างหน้า

1.2 เก็บน้ำหวาน

1.3 เก็บน้ำหวาน

จบ

จากตัวอย่างที่ผ่านมา จะพบว่าปัญหาเดียวกันจะมีวิธีการแก้ปัญหาหรือวิธีการคิดต่างกัน การพัฒนาระบบที่ทำงานอัตโนมัติ หรือการพัฒนาให้หุ่นยนต์ทำงานแทนมนุษย์นั้น เราจะต้องเขียนอัลกอริทึมแล้วเปลี่ยนเป็นโปรแกรมสำหรับให้ระบบคอมพิวเตอร์ทำงาน โดยระบบที่ทำงานได้อย่างมีประสิทธิภาพ จะขึ้นอยู่กับวิธีการคิดที่ถูกต้องของมนุษย์ด้วย

ตัวอย่างที่ 4 ร้านขายกระเป๋าร้านหนึ่ง ขายกระเป๋าที่ทำด้วยมือแล้วนำมาวางขายหน้าร้าน โดยการทำกระเป๋านั้นจะมี 2 ส่วนใหญ่ ๆ คือ ทำกระเป๋า และทำสายสะพายโดยการทำกระเป๋าใช้เวลา 30 นาทีทำสายสะพายใช้เวลา 15 นาที ประกอบกระเป๋าเข้ากับสายสะพายใช้เวลา 10 นาที ถ้าร้านขายกระเป๋าร้านนี้ ต้องการทำกระเป๋าออกมาขายจำนวน 10 ใบ จะมีวิธีการอย่างไรบ้าง


การแก้ปัญหานี้ทำได้หลายวิธี แต่ละวิธีจะมีลำดับขั้นตอนที่ใช้เวลาแตกต่างกัน เช่น วิธีที่ 1 ทำกระเป๋า 10 ใบทำสายสะพาย 10 เส้น แล้วประกอบกระเป๋าที่ละใบ วิธีที่ 2 ทำกระเป๋า 10 ใบ ทำสายสะพาย 1 เส้น ประกอบกระเป๋าทีละใบแล้วกลับไปทำสายสะพายต่อ แล้วประกอบกระเป๋าจนครบ วิธีที่ 3 ทำกระเป๋า 1 ใบ ทำสายสะพาย 1 เส้น ประกอบกระเป๋า แล้วกลับไปเริ่มต้นทำอีกครั้งจนได้กระเป๋าครบ 10 ใบ

ตัวอย่างวิธีการที่กล่าวมานั้น การได้กระเป๋าแต่ละใบจะใช้เวลาต่างกัน แต่ถ้าพิจารณาแต่ละวิธีแล้ว พบว่าวิธีที่ 3 จะได้กระเป๋าใบแรกออกมาเร็วที่สุด ถ้ามีลูกค้าเข้ามาในร้านจะทำให้ขายได้เร็ว ดังนั้น จึงเลือกวิธีที่ 3 เพื่อให้ขายและได้เงินจากการขายแต่ละใบเร็วที่สุด โดยเขียนเป็นผังงานได้ ดังนี้

ผังงานแสดงขั้นตอนการทำกระเป๋า 10ใบ
ผังงานแสดงขั้นตอนการทำกระเป๋า 10ใบ

กระบวนการแก้ปัญหาสามารถใช้ได้ในหลายกรณี ทั้งในการวางแผนงานในชีวิตประจำวัน หรือการเล่นเกมต่าง ๆ การฝึกคิดแก้ปัญหาอย่างเป็นระบบพิจารณาวิธีการต่างๆ จะเป็นประสบการณ์ในการแก้ปัญหาที่ซับซ้อนมากขึ้น

กิจกรรมที่ 1.2 แสดงวิธีการแก้ปัญหา

  1. ถ้าต้องการปูกระเบื้องเป็นพื้นที่กว้าง 25 เซนติเมตร ยาว 5 เมตร โดยกระเบื้องแต่ละแผ่นเป็นรูปสี่เหลี่ยมจัตุรัสขนาด 25 เซนติเมตร x 25 เซนติเมตร และให้สีแต่ละแผ่นเรียงเป็นลำดับ ดังนี้ เขียว เหลือง น้ำตาล แดง เขียว เหลือง น้ำตาล แดง อยากทราบว่าจะต้องใช้กระเบื้องแต่ละสีจำนวนกี่แผ่น
  2. ถ้าผึ้งต้องการเดินทางไปเก็บน้ำหวาน ดังภาพซึ่งการเดินแต่ละบล็อกใช้เวลา2 วินาที การเก็บน้ำหวานแต่ละครั้งใช้เวลา 2 วินาที จงเขียนอัลกอริทึมของการแก้ปัญหานี้และผึ้งต้องใช้เวลาในการทำงานทั้งหมดเท่าไร

กิจกรรมที่ 1.3 สนุกกับเกมทายตัวเลข

นักเรียนจับคู่กับเพื่อนทายตัวเลขระหว่าง 1 ถึง 1,000,000 โดยคนหนึ่ง
เป็นผู้ตั้งโจทย์ อีกคนหนึ่งเป็นผู้ตั้งคำถามและตอบให้ถูกภายใน 20 คำถาม
1. นักเรียนตอบถูกภายในกี่คำถาม
2. นักเรียนมีวิธีการอย่างไรในการตั้งคำถาม

แบบทดสอบ

2. การออกแบบและเขียนโปรแกรมที่มีการตรวจสอบเงื่อนไข

ในการเขียนโปรแกรมจะมีประโยคไวยากรณ์ในการเขียนโปรแกรมที่ใช้สำหรับการเลือกที่จะตัดสินใจทำอะไรในการประมวลผลของโปรแกรม

ตัวอย่าง
การเขียนโปรแกรมว่า ถ้าคะแนนสอบมีค่ามากกว่า 10 เป็นจริง ให้แสดงข้อความ “ผ่าน” แต่เป็นจริง ให้แสดงข้อความ “ไม่ผ่าน”

Print Friendly, PDF & Email