The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

บทที่ 3 การแก้ปัญหาด้วย Scratch

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Kanjanapa Maungpho, 2022-09-29 00:20:15

บทที่ 3 การแก้ปัญหาด้วย Scratch

บทที่ 3 การแก้ปัญหาด้วย Scratch

วิทยาการคานวณ ม.2

บทท่ี 3 การแกป้ ัญหาดว้ ย Scratch

คลกิ เพ่ือเข้าส่บู ทเรยี น

กรุ ณากรอกชือ่

เขา้ สู่ระบบ

ยนิ ดตี ้อนรบั

2

เข้าส่บู ทเรยี น!

เมนหู ลัก

คาช้แี จง ฟังกช์ นั

แบบทดสอบ ตัวดาเนิ นการบลู นี
ผู้จัดทา
การรบั ค่าและ
ส่ งค่าให้ฟังก์ชนั

คาช้แี จง

1. ให้นักเรยี นศึ กษาบทเรยี น
2. ให้นั กเรียนทาแบบทดสอบหลังเรียน
ทัง้ หมด 20 ข้อ 20 คะแนน

1

ฟังกช์ นั

2
จดุ ประสงค์ของบทเรยี น

1. นั กเรียนสามารถเขียนโปรแกรม Scratch ท่ีมีการ
สรา้ งฟังกช์ ันได้

2. นั กเรียนสามารถเขียนโปรแกรม Scratch ท่ีมีการใช้
ตวั ดาเนิ นการบูลีนได้

3 ทบทวนความรูก้ อ่ นเรยี น

อั ล ก อ ริ ทึ ม เ ป็ น
องค์ประกอบของแนวคิด
เ ชิ ง ค า น ว ณ ถู ก ต้ อ ง
หรอื ไม่ ?

4 ทบทวนความรูก้ อ่ นเรยี น

ก า ร แ ต ก ปั ญ ห า เ ป็ น
ส่ ว น ย่ อ ย เ ป็ น ก า ร ล ด ค ว า ม
ซับซ้อนของปัญหาใหญ่ ทาให้
ออกแบบวิธีการแก้ปัญหาได้ง่าย
ย่ิงข้ึนถูกตอ้ งหรอื ไม่ ?

5 ทบทวนความรูก้ ่อนเรยี น

วิธีการแก้ปั ญหาหน่ึ ง
อ า จ น า ม า ใ ช้ ใ น ก า ร
แก้ปัญหาย่อยของอีกปัญหา
หน่ึ งได้ ถูกตอ้ งหรอื ไม่ ?

6 ทบทวนความรูก้ อ่ นเรยี น

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

7 ทบทวนความรูก้ อ่ นเรยี น

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

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

8 ฟังกช์ นั

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

9 ฟังกช์ นั

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

10 การสรา้ งฟังก์ชนั

การสรา้ งฟังกช์ นั มขี ้ันตอนดงั ตอ่ ไปน้ี

คลิกปุ่มบล็อก คลกิ Make a Block
My Blocks

11 การสรา้ งฟังก์ชนั

จะปรากฏหน้ าต่าง

New Block ให้พิมพ์ชื่อ

ฟังก์ชันใน ใน

ท่ี น้ี ใ ห้ พิ ม พ์ myFunction

แลว้ คลกิ ปุ่ม OK

12 การสรา้ งฟังกช์ นั

จะปรากฏบลอ็ กชื่อฟังก์ชัน
ท่ี ส ร้ า ง ข้ึ น แ ล ะ บ ล็ อ ก
คาส่ั งท่ีนิ ยามส่ วนหัวของ
ฟังก์ช่ัน (define) ในพ้ืนท่ี
เขียนโปรแกรม

13

การสรา้ งฟังก์ชนั

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

14 การสรา้ งฟังก์ชนั

นั กเรียนสามารถลากคาสั่ งท่ีต้องการมาต่อส่ วนหัวของ
ฟังก์ชันไดด้ ังรูปดา้ นบนน้ี

15 การเรยี กใชง้ านฟังกช์ นั

เมื่อสรา้ งฟังกช์ นั แล้วสามารถเรยี กใช้งานฟังก์ชันได้ดัง
ข้ันตอนตอ่ ไปน้ี

คลิกบลอ็ กฟังกช์ ัน ลากวางในพื้นท่ี
ท่ตี ้องการ เขียนโปรแกรม

16 การแกไ้ ขชอื่ ฟังก์ชนั

หากตอ้ งการแกไ้ ขชื่อฟังกช์ ันสามารถทาไดด้ งั ขั้นตอนตอ่ ไปนี้

คลกิ ขวาทบี่ ลอ็ คฟังกช์ ัน เมื่อปรากฏหน้ าต่าง Edit Block แกไ้ ขเป็น
ทส่ี รา้ งข้ึน แล้วเลือก edit ชอ่ื ฟังกช์ นั ทตี่ อ้ งการแลว้ คลิกป่มุ OK

17 การแก้ไขชอ่ื ฟังกช์ นั

เ ม่ื อ มี ก า ร เ ป ล่ี ย น ช่ื อ
ฟั งก์ชัน โปรแกรม scratch
จะเปล่ียนช่ือฟังก์ชั่น ในส่ วน
ท่ี มี ก า ร อ้ า ง ถึ ง ทุ ก ท่ี ใ ห้ โ ด ย
อตั โนมัติ

18 การลบฟังก์ชนั

การลบฟังกช์ ันสามารถทาได้ หรอื ลากฟังกช์ ันออกจาก
โดยคลกิ ขวาทฟ่ี ังกช์ นั แลว้ พ้ืนทเี่ ขียนโปรแกรมมาวาง
เลอื ก Delete ในพ้ืนทแี่ สดงบลอ็ กคาสั่ง

19 ตัวอยา่ งที่ 3.1
สรา้ งเกมตัดแตงโม

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

20 ตวั อยา่ งที่ 3.1
สรา้ งเกมตดั แตงโม

ออกแบบส่ วนของโปรแกรมโดยพิจารณา
การแกป้ ัญหายอ่ ยดงั นี้
• ทาอย่างไรให้แตงโมปรากฏบนหน้ าจอ

ดว้ ยขนาดและตาแหน่ งแตกต่างกนั
• ทาอย่างไรให้แตงโมหายไปจากหน้ าจอ

เมือ่ เวลาผา่ นไประยะหน่ึ ง
• ทราบไดอ้ ยา่ งไรว่าแตงโมถูกตัด
• แสดงภาพแตงโมทถี่ ูกตดั อยา่ งไร
• คิดคะแนนอย่างไรเม่ือตัดแตงโมได้สาเรจ็

1 ลกู

21 ตวั อยา่ งที่ 3.1
สรา้ งเกมตดั แตงโม

สรา้ งแตงโมให้ปรากฏในตาแหน่ งส่มุ
แตงโมจะถูกสร้างข้ึนทีละลูกซ่ึงอยู่ใน

ตาแหน่ งที่แตกต่างกันโดยการสุ่มแตงโมแต่ละ
ลกู จะมีขนาดไมเ่ ทา่ กนั
แนวคิด

กาหนดการทางานเป็นส่วนยอ่ ย ไดด้ งั น้ี
• แสดงแตงโม
• กาหนดขนาดและตาแหน่ งแตงโม

22 ตวั อยา่ งท่ี 3.1
สรา้ งเกมตัดแตงโม

การทางานของโปรแกรมหลักและการทางานภายในแต่ละ
ส่วนยอ่ ย เขียนเป็นผงั งานไดด้ งั น้ี

เรม่ิ ต้น แสดงแตงโม กาหนดขนาดและ
ตาแหน่ งของแตงโม
กาหนดตาแหน่ งเร่มิ ต้น กาหนดขนาดและ
กาหนดขนาดเร่มิ ต้น ตาแหน่ งของแตงโม ส่ ุมขนาด
แสดงแตงโม
สรา้ งแตงโม สุ่มตาแหน่ ง
จบ
จบ

23 ตัวอยา่ งที่ 3.1
สรา้ งเกมตดั แตงโม

เขียนโปรแกรมไดด้ งั นี้

โปรแกรมหลกั อธบิ ายได้ดงั น้ี
1. บรรทดั ท่ี 1 กาหนดจุดเร่มิ ต้นเมื่อผู้ใชค้ ลกิ ธงเขียว
2. บรรทัดท่ี 2 กาหนดตาแหน่ งเร่ิมต้นเพ่ือแสดงแตงโม

โดยกาหนดท่ีตาแหน่ ง x = 0 และ Y = - 100
3. บรรทัดท่ี 3 กาหนดขนาดของตัวละครแตงโม ให้มีค่า

เทา่ กับขนาดจรงิ (100%) ของตัวละคร
4. บ ร ร ทั ด ท่ี 4 เ รี ย ก ฟั ง ก์ ชั น showMelon เ พื่ อ แ ส ด ง

แตงโม

24 ตวั อยา่ งที่ 3.1
สรา้ งเกมตดั แตงโม

เขียนโปรแกรมไดด้ งั น้ี ฟั ง ก์ ชั่ น showMelon ส า ห รั บ แ ส ด ง
แตงโมอธบิ ายไดด้ งั นี้
1. บ ร ร ทั ด ท่ี 1 ป ร ะ ก า ศ ส่ ว น หั ว ฟั ง ก์ ชั น

showMelon
2. กาหนดให้มีการทางานวนซา้แบบไม่รู้จบ

ในบรรทดั ที่ 3 ถึง 5
3. บรรทัดที่ 3 เรียกฟังก์ชัน setSizeAndPos
เพื่อกาหนดขนาดและตาแหน่ งของตัวละคร
แตงโม

25 ตัวอยา่ งท่ี 3.1
สรา้ งเกมตดั แตงโม

4. บรรทัดท่ี 4 สร้างแตงโมด้วยการโคลน เขียนโปรแกรมไดด้ งั น้ี
(clone) ซ่ึงเป็ นการคั ดลอกตัวละคร โดยใช้
บล็อกคาสั่ ง create clone of myself ซ่ึง
หมายถึง การโคลนตัวละครที่มีการใช้คาสั่ งนี้
ในทน่ี ี้ คือโคลนตัวละครแตงโม
5. บรรทัดที่ 5 กาหนดให้มีการหน่ วงเวลาใน
การสรา้ งแตงโม 1 วินาที ดว้ ยคาสั่ง wait 1 secs

26 ตวั อยา่ งท่ี 3.1
สรา้ งเกมตดั แตงโม

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

27 ตวั อยา่ งที่ 3.1
สรา้ งเกมตัดแตงโม

เขียนโปรแกรมไดด้ งั นี้ ฟังก์ชัน setSizeAndPos สาหรับสุ่มขนาด
และตาแหน่ งของแตงโมอธบิ ายไดด้ งั นี้
1 . บ ร ร ทั ด ที่ 1 ป ร ะ ก า ศ ส่ ว น หั ว ฟั ง ก์ ชั น
setSizeAndPos
2. บรรทดั ที่ 2 กาหนดขนาดแตงโมด้วยการ สุ่มค่า
20-100 ซ่ึงค่าท่ีสุ่มได้จะเป็นอัตราส่ วนร้อยละของ
ขนาดจริง เช่น ถ้าสุ่ม ได้ 30 จะหมายถึง แสดงตัว
ละครขนาด 30% ของขนาดจรงิ (100%)

28 ตวั อยา่ งท่ี 3.1
สรา้ งเกมตัดแตงโม

เขียนโปรแกรมไดด้ งั น้ี

3. บรรทัดท่ี 3 กาหนดตาแหน่ งของการแสดง
แตงโม แกน x ดว้ ยการส่มุ ค่าในช่วง -180 ถึง 180
4. บรรทัดที่ 4 กาหนดตาแหน่ งของการแสดง
แตงโมแกน y ดว้ ยการส่มุ ค่าในชว่ ง - 150 ถึง 150

29 ตวั อยา่ งที่ 3.1
สรา้ งเกมตัดแตงโม

ผ ล ลั พ ธ์ ท่ี ไ ด้ คื อ
จ ะ มี แ ต ง โ ม ป ร า ก ฏ ใ น
ตาแหน่ งต่างๆจานวน
มากดังน้ี

30 สรา้ งเกมตดั แตงโม

1

ตวั ดาเนินการบลู นี

2 ตวั ดาเนิ นการบลู นี

นั กเรยี นเคยเขียนโปรแกรมท่ีมีการคานวณโดยใช้ตัว
ดาเนิ นการทางคณิ ตศาสตร์ + - * / และโปรแกรมท่ีมีการ
ตรวจสอบเงอื่ นไขท่ีมีการใช้ตัวดาเนินการเปรยี บเทียบ > < =
มาแลว้

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

3 ตวั ดาเนิ นการบลู นี

ตวั ดาเนิ นการบลู ีนแสดงดงั ตาราง

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

12

และ สัมผสั ตัว สั มผสั จรงิ
ชเ้ี มาส์ สี ส้ ม เทจ็
สั มผสั เท็จ
สัมผสั ตวั สี นา้เงนิ เท็จ
ชเี้ มาส์ สั มผสั
สี ส้ ม
ไมไ่ ด้สัมผสั ตวั สั มผสั
ชเ้ี มาส์ สี ชมพู

ไมไ่ ดส้ ัมผสั ตัว
ชเี้ มาส์

4 ตัวดาเนิ นการบลู ีน

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

12

Count = 2 มกี าร จรงิ
คลกิ เมาส์
จรงิ
Count = 1 ไม่ได้
คลิกเมาส์ จรงิ
หรอื
Count = 5 มีการ เท็จ
นิ เสธ คลิกเมาส์ จรงิ
(ไม่ใช)่ เท็จ
Count = 4 ไมไ่ ด้
คลกิ เมาส์

สีเขียวสัมผสั สีส้ม

สีเขียวสัมผสั สีชมพู

5

ชวนคิด

แปลงข้อความตอ่ ไปน้ีให้อย่ใู นรูปคาส่ัง scratch
1. อายมุ ากกวา่ หรอื เท่ากับ 13
2. คะแนนน้ อยกว่า 50 แตม่ ากกวา่ 30
3. วนั ท่ไี ม่เทา่ กับ 3
4. คลกิ เมาส์และสัมผัสตัวช้เี มาส์
5. รกั ไมน่ ้อยกว่า 80 แตไ่ มเ่ กนิ 100

6 ตวั อยา่ งท่ี 3.2
โปรแกรมตดั เกรด

สถาบันการสอนแห่งหน่ึ งมีการสอบวัดระดับการใช้
ภาษา โดยมีคะแนน 0 ถึง 100 คะแนน ผู้ท่ีได้คะแนน 80
ข้ึนไป อยู่ในระดับ "ดีมาก" คะแนน 50-79 อยู่ในระดับ
"พอใช้" และคะแนนตา่กวา่ 50 อย่ใู นระดบั "ปรบั ปรุง"

7 ตวั อยา่ งท่ี 3.2
โปรแกรมตดั เกรด

เขียนรหัสลาลองไดด้ งั นี้
1. รบั ค่าคะแนนสอบ
2. ถ้า คะแนนมากกวา่ หรอื เทา่ กบั 80 ทา

2.1 แสดงข้อความ “ดมี าก”
ไม่เชน่ นั้น
2.2 ถ้า คะแนนมากกว่าหรอื เทา่ กบั 50 ทา

2.2.1 แสดงข้อความพอใช้
ไมเ่ ช่นนั้น
2.2.2 แสดงข้อความปรบั ปรุง

8 ตัวอยา่ งท่ี 3.2
โปรแกรมตัดเกรด

เขียนโปรแกรมไดด้ งั นี้

จากตวั อยา่ งท่ี 3.2 อธบิ ายไดด้ งั นี้
1. บรรทดั ท่ี 2 รบั ข้อมลู คะแนนจากผใู้ ชม้ า
เกบ็ ไว้ในตวั แปร answer
2.บรรทัดท่ี 3 นาค่าคะแนนใน answer
มาเกบ็ ไว้ในตัวแปร score

9 ตัวอยา่ งที่ 3.2
โปรแกรมตัดเกรด

เขียนโปรแกรมไดด้ งั น้ี

3. บรรทัดท่ี 4 ตรวจสอบเง่ือนไขว่า ถ้าคะแนน
(score)มากกว่าหรอื เท่ากับ 80 ให้แสดงข้อความ"ดี
มาก"จากคาส่ังในบรรทัดท่ี 5
4. บรรทัดท่ี 7 ตรวจสอบเง่ือนไขว่าถ้าคะแนน
(score)มากกว่าหรือเท่ากับ 50 ให้แสดงข้อความ"
พอใช้" จากคาสั่ งในบรรทัดท่ี 8 แต่ถ้าไม่ใช่ให้
แสดงข้อความ"ปรบั ปรุง"จากคาส่ังในบรรทัดท่ี 10

10 ตวั อยา่ งท่ี 3.2
โปรแกรมตดั เกรด

ผลลัพธโ์ ปรแกรมไดด้ งั นี้

11 โปรแกรมตดั เกรด

12

ชวนคิด

จากตัวอย่างท่ี 3.2 มีการกาหนด
คะ แนนใ ห้ มี ค่ า 0 ถึ ง 1 00 ดั ง นั้ นถ้ า
คะแนนตา่กว่า 0 และเกิน 100 คะแนน
ผ ล ลั พ ธ์ ท่ี ไ ด้ คื อ อ ะ ไ ร ใ ห้ นั ก เ รี ย น
ป รั บ ป รุ ง โ ป ร แ ก ร ม ใ ห้ ค ร อ บ ค ลุ ม
คะแนนท่ตี า่กวา่ 0 หรอื เกิน 100

1

การรบั ค่าและ
ส่งค่าให้ฟังกช์ นั

2
การรบั ค่าและส่งค่าให้ฟังกช์ นั

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

3
การสรา้ งฟังกช์ นั ที่มีพารามิเตอรม์ ีขั้นตอนดงั น้ี

1. คลิกบล็อกคาสั่ง 2. คลิกบล็อกคาสั่ง Make
My Blocks a Block เพ่ือสรา้ งฟังกช์ ัน


Click to View FlipBook Version