บทที่ 8: การเขียนโปรแกรมแบบขนาน (Parallel Programming)

วัตถุประสงค์การเรียนรู้

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

1. การแนะนำการเขียนโปรแกรมแบบขนาน

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


2. การใช้บล็อก "เมื่อธงเขียวถูกคลิก" (When Green Flag Clicked)

การเขียนโปรแกรมแบบขนานใน Scratch เริ่มต้นได้ง่ายๆ ด้วยการใช้บล็อก "เมื่อธงเขียวถูกคลิก" (When Green Flag Clicked) เพื่อเริ่มโปรแกรมหลายส่วนพร้อมกัน เมื่อเราใช้บล็อกนี้กับตัวละครหลายตัว ตัวละครแต่ละตัวจะทำงานไปพร้อมกันทันทีที่ธงเขียวถูกคลิก

  • เพิ่มบล็อก "เมื่อธงเขียวถูกคลิก" ในแต่ละตัวละครที่ต้องการให้เริ่มทำงานพร้อมกัน
  • สร้างการเคลื่อนไหวหรือเหตุการณ์ที่เกิดขึ้นพร้อมกันในแต่ละตัวละคร

ตัวอย่าง:
สร้างโปรแกรมที่มีตัวละครสองตัวเคลื่อนไหวพร้อมกัน เมื่อคลิกธงเขียวให้ตัวละครทั้งสองเริ่มเดินพร้อมกันในทิศทางต่างๆ


3. การทำงานหลายส่วนพร้อมกันในตัวละครเดียว

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

  • ใช้บล็อก "เมื่อธงเขียวถูกคลิก" ในบล็อกคำสั่งต่างๆ ภายในตัวละครเดียว เพื่อให้ทำงานหลายอย่างพร้อมกัน เช่น เดินและเล่นเสียงในเวลาเดียวกัน

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


4. การใช้บล็อก "รอ" (Wait) เพื่อประสานการทำงาน

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

  • ใช้บล็อก "รอ [เวลา] วินาที" เพื่อกำหนดการหน่วงเวลาของการทำงานในแต่ละส่วน เช่น รอให้ตัวละครทำงานครบก่อนเริ่มเหตุการณ์อื่น
  • ใช้บล็อก "รอจนกระทั่ง..." เพื่อรอให้เหตุการณ์หรือการทำงานบางอย่างเกิดขึ้นก่อนที่จะทำงานถัดไป

ตัวอย่าง:
สร้างโปรแกรมที่ตัวละครหนึ่งเริ่มเดินก่อน 2 วินาที จากนั้นตัวละครที่สองถึงจะเริ่มเดินตาม


5. การใช้บล็อก "ส่งข้อความ" (Broadcast) เพื่อประสานการทำงาน

บล็อก "ส่งข้อความ" (Broadcast) เป็นอีกเครื่องมือหนึ่งที่ช่วยในการทำงานแบบขนาน โดยการส่งข้อความ (Message) ให้ตัวละครหรือเหตุการณ์ต่างๆ ทำงานเมื่อได้รับข้อความนั้นๆ วิธีนี้ช่วยให้การทำงานของโปรแกรมประสานกันได้ง่ายและยืดหยุ่นมากขึ้น

  • ใช้บล็อก "ส่งข้อความ [ชื่อข้อความ]" เพื่อส่งสัญญาณให้ตัวละครหรือเหตุการณ์ทำงานพร้อมกัน
  • ใช้บล็อก "เมื่อได้รับ [ชื่อข้อความ]" เพื่อให้ตัวละครทำงานเมื่อได้รับข้อความที่ส่งไป

ตัวอย่าง:
สร้างโปรแกรมที่ตัวละครหนึ่งส่งข้อความเพื่อให้ตัวละครที่สองเริ่มเดินเมื่อได้รับข้อความ "เริ่ม"


6. สรุปบทเรียน
  • นักเรียนได้เรียนรู้วิธีการเขียนโปรแกรมแบบขนาน (Parallel Programming) ใน Scratch ซึ่งช่วยให้หลายตัวละครหรือเหตุการณ์ทำงานพร้อมกัน
  • นักเรียนสามารถใช้บล็อกคำสั่ง เช่น "เมื่อธงเขียวถูกคลิก", "รอ", และ "ส่งข้อความ" เพื่อควบคุมการทำงานแบบขนานในโปรแกรมได้อย่างมีประสิทธิภาพ

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


Free Joomla templates by Ltheme