ว22103 เทคโนโลยี (วิทยาการคำนวณ) 2
3.1 ฟังก์ชั่น
โปรแกรมขนาดใหญ่ประกอบด้วยคำสั่งจำนวนมากเพื่อทำงานหลายหน้าที่ หัดเขียนคำสั่งเหล่านั้นต่อเนื่องเรียงต่อกันไป จะทำให้การตรวจสอบและแก้ไขโปรแกรมทำได้ยาก ถ้านักเรียนจัดกลุ่มคำสั่งเหล่านี้ให้เป็นโปรแกรมย่อยที่ทำงานเฉพาะอย่าง จะทำให้ง่ายต่อการตรวจสอบและแก้ไข อีกทั้งยังสามารถนำโปรแกรมย่อยที่มีอยู่แล้วไปใช้ในโปรแกรมอื่นที่มีลักษณะคล้ายคลึงได้ ใน scratch มีคำสั่งโปรแกรมย่อย หรือฟังก์ชันให้ใช้งาน โดยผู้ใช้กริยาชื่อฟังก์ชันเพื่อใช้อ้างอิงในการเรียกใช้งาน และกำหนดคำสั่งที่ต้องการภายในฟังก์ชันนั้น ชื่อฟังก์ชันควรกำหนดให้เหมาะสมกับหน้าที่การทำงานเพื่อให้ง่ายต่อการทำความเข้าใจ
การสร้างฟังก์ชัน
การสร้างฟังก์ชันมีขั้นตอนดังต่อไปนี้
1. คลิกปุ่มบล็อก More Blocks
2. คลิก Make a Block
3.ปรากฏหน้าต่าง New Block ให้พิมพ์ชื่อฟังก์ชันใน ในที่นี้ให้พิมพ์ My function แล้วคลิกปุ่ม OK
4. จะปรากฏบล็อกชื่อฟังก์ชันที่สร้างขึ้น และบล็อกคำสั่งที่นิยามส่วนหัวของฟังก์ชันในพื้นที่เขียนโปรแกรม
5. นักเรียนสามารถเลือกคำสั่งที่ต้องการมาต่อส่วนหัวของฟังก์ชันได้
ดังรูป
การเรียกใช้งานฟังก์ชัน
เมื่อสร้างฟังก์ชันแล้วสามารถเรียกใช้ function ได้ดังขั้นตอนต่อไปนี้
1. พลิกล็อก function ที่ต้องการ
2. ลากวางในพื้นที่เขียนโปรแกรม
การแก้ไขชื่อฟังก์ชัน
หากต้องการแก้ไขชื่อฟังก์ชันสามารถทำได้ดังขั้นตอนต่อไปนี้
1.คลิกขวาที่มาฟังก์ชันที่สร้างขึ้นแล้วเลือก Edit
2. เมื่อปรากฏหน้าต่าง Edit Block แก้ไขเป็นชื่อฟังก์ชันที่ต้องการแล้วกดปุ่ม OK
เมื่อมีการเปลี่ยนชื่อฟังก์ชันโปรแกรม scratch จะเปลี่ยนชื่อ function ในส่วนที่มีการอ้างถึงทุกที่ให้อัตโนมัติ
การลบฟังก์ชัน
การลบฟังก์ชันสามารถทำได้โดยคลิกขวาที่ฟังก์ชันแล้วเลือก Delete หรือว่าฟังก์ชันออกจากพื้นที่เขียนโปรแกรมมาวางในพื้นที่แสดงบล็อกคำสั่ง
ตัวอย่างที่ 3.1 สร้างเกมแตงโม
ให้นักเรียนสร้างเกมแตงโมอย่างง่าย โดยเมื่อเริ่มต้นให้แสดงภาพแตงโมทีละลูกที่มีขนาดและตำแหน่งแตกต่างกัน เมื่อผู้ใช้คลิกเมาส์ที่แตงโม ให้แสดงภาพแตงโมลูกนั้นถูกตัดและมีการเพิ่มคะแนน หากผู้เล่นไม่สามารถพลิกแพลงโมได้ทันในเวลาที่กำหนดแตงโมจะหายไป
ออกแบบส่วนของโปรแกรมโดยพิจารณาการแก้ปัญหาย่อยดังนี้
-
ทำอย่างไรให้แตงโมปรากฏบนหน้าจอด้วยขนาดและตำแหน่งแตกต่างกัน
-
ทำอย่างไรให้แตงโมหายไปจากหน้าจอเมื่อเวลาผ่านไประยะหนึ่ง
-
ทราบได้อย่างไรว่าแตงโมถูกตัด
-
แสดงภาพแตงโมที่ถูกตัดอย่างไร
-
คิดคะแนนอย่างไรเมื่อตัดแตงโมได้สำเร็จ 1 ลูก
บ้านแตงโมให้ปรากฏในตำแหน่งสุ่ม
แตงโมจะถูกสร้างขึ้นทีละลูก ซึ่งอยู่ในตำแหน่งที่แตกต่างกันโดยการสุ่ม แตงโมแต่ละรูปจะมีขนาดไม่เท่ากัน
แนวคิด
กำหนดการทำงานเป็นส่วนย่อยได้ดังนี้
-
แสดงแตงโม
-
กำหนดขนาดและตำแหน่งแตงโม
การทำงานของโปรแกรมหลักและการทำงานภายในแต่ละส่วนย่อยเขียนเป็นแผนผังได้ดังนี้
โปรแกรมหลักอธิบายได้ดังนี้
บรรทัดที่ 1 กำหนดจุดเริ่มต้นเมื่อผู้ใช้คลิกธงเขียว
บรรทัดที่ 2 กำหนดตำแหน่งเริ่มต้นเพื่อแสดงแตงโมโดยกำหนดที่ตำแหน่ง x = 0 และ Y = - 100
บรรทัดที่ 3 กำหนดขนาดและตำแหน่งของตัวละครแตงโม ให้มีค่าเท่ากับขนาดจริง 100 เปอร์เซ็นต์ของตัวละคร
บรรทัดที่ 4 เรียกฟังก์ชัน ShowMelon เพื่อแสดงแตงโม
ฟังก์ชัน ShowMelon สำหรับแสดงแตงโม อธิบายได้ดังนี้
บรรทัดที่ 1 ประกาศส่วนหัวฟังก์ชัน ShowMelon
กำหนดให้มีการทำงานวนซ้ำแบบไม่รู้จบ ในบรรทัดที่ 3 ถึง 5
บรรทัดที่ 3 เรียกใช้ function Set size and Pos เพื่อกำหนดขนาดและตำแหน่งของตัวละครแตงโม
บรรทัดที่ 4 สร้างแตงโมด้วยการโคลน ซึ่งเป็นการคัดลอกตัวละคร โดยใช้บล็อกคำสั่ง create clone Of Myself ซึ่งหมายถึง การโคลนตัวละครที่มีการใช้คำสั่งนี้ ในที่นี้คือโคลนตัวละครแตงโม
บรรทัดที่ 5 กำหนดให้มีการหน่วงเวลาในการสร้างแตงโม 1 วิด้วยคำสั่ง wait 1 secs
ฟังก์ชัน setSize and pos สำหรับส่งขนาดและตำแหน่งแตงโมอธิบายได้ดังนี้
บรรทัดที่ 1 หน้ากากสวมหัว function setSize and pos
บรรทัดที่ 2 กำหนดขนาดแตงโมด้วยการส่งค่า 20-100 ซึ่งค่าที่สูงได้จะเป็นอัตราส่วนร้อยละของขนาดจริงเช่นสุ่มได้ 30 จะหมายถึงแสดงตัวละครขนาด 30 เปอร์เซ็นต์ของขนาดจริง 100%
บรรทัดที่ 3 กำหนดตำแหน่งของการแสดงแตงโมแกน X ด้วยการสุ่มค่าในช่วง - 180ถึง 180
บรรทัดที่ 4 กำหนดตำแหน่งของการแสดงแตงโม แกน Y ด้วยการสุ่มในช่วง - 150 ถึง15












