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

ชื่อผู้จัดทำ เด็กชายกิตติวัตร ขาวเรือง
เด็กชาย ฐิติพงศ์ คุ้มม่วง
มัธยมศึกษาปีที่2 โรงเรียนบ้านงาช้าง
ปีการศึกษา 2565

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by มิก คุ้มม่วง, 2022-06-15 03:02:24

รายงานเรื่อง แนวคิดเชิงคำนวณ

ชื่อผู้จัดทำ เด็กชายกิตติวัตร ขาวเรือง
เด็กชาย ฐิติพงศ์ คุ้มม่วง
มัธยมศึกษาปีที่2 โรงเรียนบ้านงาช้าง
ปีการศึกษา 2565

รายงานเร่อื ง แนวคิดเชิงคำนวณ

จัดทำด้วย
เดก็ ชาย ฐิตพิ งศ์ คมุ้ มว่ ง
เดก็ ชายกติ ติวตั ร ขาวเรอื ง

เสนอ
คณุ ครูวนั วรุณ นาคคี

รายงานฉับบนี้เป็นส่วนหนง่ึ ของรายวชิ าวิทยาการคำนวณ
โรงเรยี นบา้ นห้วยงาช้าง

ภาคเรยี นท่1ี ปีการศึกษาท2่ี 5625

คำนำ

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

ข้อมขอ้ มูลเรื่องนีอ้ ยู่ หากมขี ้อผิดพลาดประการใด ผู้จัดทำขอน้อมรับไว้และขออภยั ณ ท่ีนีด้ ้วย

เร่อื ง หนา้
คำนำ ก

สารบัญ ข

แนวคดิ เชิงคำนวณ(Computational Thinking) 1
การแยกส่วนประกอบ และการย่อยปัญหา(Decomposition) 1
การแบง่ ปัญหาเปน็ ปัญหาย่อย(Decomposition) 2
กรณีแบง่ ปัญหาใหญ่เปน็ ปัญหาย่อย(Decomposition) 3
การออกแบบอลั กอรทิ ืม(Algorithm) 8
คณุ สมบัติอลั กอรทิ ึม 9
เครอื่ งมือช่วยในการเขยี นอัลกอรทิ ึม 10
การคิดเชิงคำนวนนามธรรม(Abstraction) 12
การอธิบายใช้ปัญหาโดยใช้รายละเอยี ด 17
การอธบิ ายปัญหาแบบซ่อนรายละเอยี ด 17
การพิจารณารปู แบบ(Pattern Recognition 18
การเขยี นรหัสลำลองและการเขียนผงั งาน 26
การเขียนผังงาน 27
บรรณานกุ รม 32

1

แนวคดิ เชิงคำนวณ (Computational Thinking)
การแยกสว่ นประกอบ และการย่อยปัญหา (Decomposition)
แนวคิดเชงิ คำนวณ (Computational Thinking) เป็นกระบวนการวิเคราะห์ปัญหา เพอื่ ใหไ้ ด้แนวทางหา
คำตอบอยา่ งเป็นข้นั ตอนทสี่ ามารถนำไปปฏิบตั ไิ ด้โดยบคุ คลหรอื คอมพิวเตอรอ์ ยา่ งถูกต้อง การคดิ เชงิ
คำนวณ เป็นกระบวนการแก้ปญั หาในหลากหลายลกั ษณะ เช่น การจัดลำดับเชงิ ตรรกศาสตร์ การ
วิเคราะหข์ ้อมลู และการสรา้ งสรรค์วธิ ีแกป้ ัญหาไปทลี ะข้ัน รวมทง้ั การย่อยปัญหาทช่ี ว่ ยให้รับมือกบั
ปัญหาท่ซี ับซ้อนหรอื มลี กั ษณะเป็นคำถามปลายเปดิ ได้วิธคี ดิ เชงิ คำนวณ จะช่วยทำใหป้ ัญหาท่ีซับซอ้ น
เขา้ ใจไดง้ ่ายข้ึน เป็นทกั ษะทเี่ ป็นประโยชนอ์ ยา่ งย่งิ ตอ่ ทุก ๆ สาขาวชิ า และทกุ เรอื่ งในชีวิตประจำวนั ซึ่ง
ไมไ่ ดจ้ ำกดั อยเู่ พยี งการคิดให้เหมือนคอมพิวเตอรแ์ ตเ่ ปน็ กระบวนการคิดแกป้ ญั หาของมนุษย์ เพอ่ื สง่ั ให้
คอมพวิ เตอร์ทำงานและชว่ ยแกป้ ญั หาตามทีเ่ ราตอ้ งการได้อย่างมีประสทิ ธิภาพ
แนวคิดเชิงคำนวณมีองค์ประกอบที่สำคญั 4 สว่ น ไดแ้ ก่ การแบง่ ปัญหาใหญเ่ ป็นปญั หายอ่ ย
(Decomposition) การพจิ ารณารูปแบบ (Pattern Recognition) การคดิ เชงิ นามธรรม
(Abstraction) การออกแบบอลั กอรทิ มึ (Algorithm) ในบทเรยี นนจ้ี ะกล่าวเพียง การแบ่งปญั หาใหญ่
เปน็ ปัญหาย่อย (Decomposition) เทา่ นนั้ โดยมรี ายละเอยี ดดงั น้ี

ภาพท่ี 1 แนวคิดเชงิ คำนวณ
ที่มา https://www.bbc.co.uk/bitesize/guides/zqqfyrd/revision/1, BBC

2

การแบง่ ปัญหาใหญ่เป็นปญั หายอ่ ย (Decomposition)

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

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

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

เป็น

ภาพที่ 2 องค์ประกอบของจกั รยาย
ที่มา หนังสือเรยี น สสวท.

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

สามารถออกแบบขั้นตอนการแกป้ ญั หายอ่ ยแต่ละปญั หาไดง้ ่ายข้ึน

3

กรณีตัวอยา่ งการแบง่ ปญั หาใหญ่เป็นปญั หายอ่ ย (Decomposition)
1. รถของกวนิ

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

เกิดข้นึ กวินจะสามารถแก้ปญั หาด้วยการแบ่งปัญหาใหญ่เป็นปัญหาย่อย ได้ดงั นี้
การแบ่งปญั หาใหญเ่ ป็นปญั หายอ่ ย (Decomposition)
1. แบตเตอร่ีหมด
2. น้ำมันเชอื้ เพลิงหมด
3. เครอื่ งยนต์มีปญั หา

ภาพที่ 3 รถของครูกวิน
ที่มา https://www.freepik.com/free-vector/car-dealer-showing-new-red-sports-
auto_1311576.htm#page=4&query=car+people&position=27, iconicbestiary

2. การพาจรวดไปดาวอังคาร

4

จากเวบ็ ไซต์ https://csunplugged.org/en/topics/kidbots/unit-plan/sending-a-rocket-to-
mars/ เปน็ กจิ กรรมทจี่ ะให้จรวดเดนิ ทางไปดาวองั คาร โดยใชล้ ูกศรในการเดนิ การหมุน เพอื่ ทำภาระกิจ

พชิ ิตดาวอังคารใหส้ ำเรจ็ เพือ่ ฝึกกระบวนการคิดเปน็ ขนั้ ตอนของผเู้ รยี น และกระบวนการแก้ปัญหา

ภาพที่ 4 ส่งจรวดไปดาวองั คาร
ทมี่ า https://csunplugged.org/en/topics/kidbots/unit-plan/sending-a-rocket-to-mars,
csunplugged.org ในชวี ติ ประจำวันของเรา เราไมไ่ ด้ใหค้ ำแนะนำตามทก่ี ล่าวไวว้ า่ "เลี้ยวขวา
กา้ วไปขา้ งหน้า ก้าวไปข้างหนา้ อกี แลว้ ก้าวเลยี้ วขวา" คนสว่ นใหญจ่ ะบอกว่าตรงไปท่ดี าวองั คาร แตเ่ ม่ือ
เขยี นโปรแกรมจะต้องเจาะจงรายละเอียดการเดินทางไปดาวองั คารมากกว่าปกติ เพราะตอ้ งบอก
คอมพิวเตอร์วา่ จะทำอยา่ งไรในแตล่ ะขนั้ ตอน นอกจากนกี้ ารสงั่ ให้โปรแกรมทำงานตามท่เี ราตอ้ งการโดย
ระบุรายละเอียดแล้ว แทนท่ีจะพยายามแกไ้ ขปัญหาทง้ั หมด จะเห็นไดว้ ่าเกมสง่ จรวดไปดาวอังคาร
ยัง ในชีวติ ประจำวันของเรา เราไมไ่ ดใ้ ห้คำแนะนำตามทก่ี ล่าวไว้วา่ "เลยี้ วขวา ก้าวไปข้างหน้า กา้ ว
ไปขา้ งหนา้ อกี แลว้ กา้ วเลยี้ วขวา" คนสว่ นใหญ่จะบอกวา่ ตรงไปท่ดี าวอังคาร แตเ่ มื่อเขยี นโปรแกรม
จะตอ้ งเจาะจงรายละเอียดการเดนิ ทางไปดาวอังคารมากกว่าปกติ เพราะตอ้ งบอกคอมพวิ เตอรว์ ่าจะทำ
อยา่ งไรในแตล่ ะขัน้ ตอน นอกจากนี้การสั่งให้โปรแกรมทำงานตามที่เราตอ้ งการโดยระบุรายละเอยี ดแล้ว
แทนทจ่ี ะพยายามแกไ้ ขปัญหาท้ังหมด จะเหน็ ไดว้ า่ เกมส่งจรวดไปดาวองั คาร ยงั มกี ารแบง่ การเขียน
โปรแกรมออกเปน็ สว่ นย่อย ๆ ทำใหง้ านมนี อ้ ยลง ก็จะสามารถทำใหถ้ งึ จดุ หมายไดอ้ ย่างรวดเรว็ ข้ึน เชน่

การแบง่ ปญั หาใหญเ่ ปน็ ปัญหายอ่ ย (Decomposition)
1. เดนิ ตรงไป 2 ชอ่ ง

5

2. เลย้ี วขวา
3. เดนิ ตรงไป 3 ชอ่ ง

3. พัดลม

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

ภาพท่ี 5 สว่ นประกอบพัดลม
https://www.baanlaesuan.com/45800/maintenance/fan, สุพจน์ เพชรศักด์วิ งศ์

การแบ่งปญั หาใหญเ่ ป็นปญั หาย่อย (Decomposition) ของพดั ลม
1. มอเตอร์พรอ้ มกะโหลกหลงั และฐานพัดลม
2. ตะแกรงหลงั
3. ใบพัด
4. ตะแกรงหนา้

6

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

วิธกี าร

ภาพท่ี 6 การเลือกการเดินทาง
ท่มี า https://www.freepik.com/free-vector/city-transport-with-bike-car-bus-tram-symbols-
isometric-vector-illustration_3997940.htm#page=2&query=transportation&position=30,

macrovector
การแบ่งปญั หาใหญเ่ ป็นปญั หาย่อย (Decomposition) ของพดั ลม

1. ขับรถไปเอง
2. นั่งรถทัวร์

7

3. น่งั รถตู้

4. น่ังรถไฟ

วเิ คราะหถ์ งึ ขอ้ ดีขอ้ เสยี แตล่ ะวธิ ีการรวมถึงการคำนวณคา่ ใช้จ่ายของแต่ละวิธกี ารเดินทางเพ่อื เลอื กการ
เดนิ ทางที่ดีทีส่ ดุ

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

ชดั เจนย่ิงขึ้น

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

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

รายละเอยี ดดังน้ี

8

ภาพที่ 1 การออกแบบอลั กอริทมึ
ทมี่ า https://www.wired.com/story/want-to-prove-your-business-is-fair-audit-your-

algorithm/,JESSI HEMPEL
การออกแบบอัลกอริทึม (Algorithm) เปน็ การพฒั นากระบวนการหาคำตอบให้เปน็ ข้นั ตอนท่ีบุคคล
หรอื คอมพวิ เตอรส์ ามารถนำไปปฏิบตั ติ ามเพอ่ื แก้ปญั หาได้ อกี ท้ัง เป็นการพัฒนาแนวทางแกป้ ัญหาอยา่ ง
เป็นขั้นเป็นตอน เพ่อื ดำเนนิ ตามทีละข้ันตอนในการแกไ้ ขปัญหา เชน่ เม่อื เราตอ้ งการส่งั คอมพิวเตอร์ให้
ทำงานบางอยา่ ง เราจะต้องเขยี นโปรแกรมคำสง่ั เพอื่ ใหค้ อมพวิ เตอร์ทำงานไปตามขั้นตอน ตามแนวทาง
การแกป้ ัญหาเพ่อื ให้คอมพิวเตอร์ทำงานตอบสนองความต้องการของเรา วธิ คี ดิ นีท้ ีเ่ รยี กว่าวธิ คี ิดแบบ
อัลกอรทิ มึ คอมพิวเตอรจ์ ะทำงานไดด้ ีเพียงใดน้นั ขึ้นอยกู่ บั ชุดคำสง่ั อลั กอริทึมทีเ่ ราออกแบบใหม้ นั
ทำงานนัน่ เอง การออกแบบอลั กอรทิ มึ ยงั เปน็ ประโยชน์ตอ่ การคำนวณ การประมวลผลขอ้ มลู และการวาง

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

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

การแตง่ ตัวมาโรงเรียน การทำอาหาร การทำงานในชีวิตประจำวนั การเดินทาง เป็นต้น

9

ภาพท่ี 2 การลำดบั แตง่ ตัวมาโรงเรียน
ท่มี า https://www.freepik.com/free-vector/hand-drawn-children-back-school-
collection_4943651.htm#page=1&query=student%20uniform&position=43, freepik

คุณสมบัตขิ องอลั กอรทิ มึ
1. มีความถกู ต้อง (correctness) ความถกู ตอ้ งเป็นคุณสมบัตขิ ้อแรกท่ีสำคญั จะตอ้ งพจิ ารณา ต้องได้

ผลลัพธท์ ี่ถกู ตอ้ ง ซงึ่ ถา้ ผลลพั ธ์ทไี่ ดจ้ ากอลั กอริทึมไมถ่ กู ต้อง จะถือว่าไมใ่ ช่อัลกอรทิ มึ ท่ีดี
2. ใชเ้ วลาในการปฏบิ ตั งิ านนอ้ ยท่ีสุด (efficiency) อัลกอริทึมท่ดี ีต้องใช้เวลาในการปฏบิ ตั ิงานนอ้ ย มี

ขั้นตอนในการปฏิบตั งิ านที่ถกู ตอ้ ง
3. ตอ้ งมลี ำดับขน้ั ตอนทีช่ ดั เจน ในการประมวลผลชุดคำสงั่ ตา่ ง ๆ ทถ่ี กู กำหนดด้วยกฎเกณฑใ์ นการ

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

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

มากเกินความจำเป็น ก็จะทำให้เสียเนอ้ื ท่ีในหนว่ ยความจำไปด้วย

10

5. มีความยืดหยนุ่ ในการใช้งาน

6. ใช้เวลาในการพัฒนาน้อยทสี่ ดุ เม่ือนำอลั กอริทึมไปแปลงเป็นโปรแกรมภาษาคอมพิวเตอรแ์ ล้วจะตอ้ ง
ใช้เวลาน้อยทส่ี ดุ

7. ง่ายตอ่ การทำความเข้าใจ (readability) อา่ นง่ายเขา้ ใจลำดบั ขั้นตอนไดง้ า่ ย มคี วามชดั เจนของ
ข้นั ตอน

เครื่องมอื ช่วยในการเขยี นอัลกอรทิ ึม

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

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

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

การทำงานเป็นข้อ ๆ เช่น การตม้ บะหมีก่ ่งึ สำเร็จรปู

1. เทน้ำสะอาดใส่หมอ้ และต้มน้ำจนเดือด

2. ฉีกซองและนำบะหม่ีกงึ่ สำเร็จรปู ใส่ลงในหมอ้

3. เทเครอ่ื งปรุงลงในหม้อ

4. ปิดฝา

5. รอประมาณ 3 นาที

6. เทใส่ชามรบั ประทานได้

11

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

สามารถศกึ ษาการทำงานของโปรแกรมไดอ้ ยา่ งงา่ ย และรวดเรว็ มากขึน้
3. รหัสเทียม (pseudo code) เป็นการเขียนคำอธิบายข้ันตอนการทำงานของโปรแกรม โดยใชถ้ ้อยคำ
ผสมระหว่างภาษาอังกฤษและภาษาการเขยี นโปรแกรมแบบโครงสร้าง ซ่งึ จะชว่ ยให้ผ้เู ขียนโปรแกรม

สามารถพฒั นาขน้ั ตอนต่าง ๆ ให้เป็นโปรแกรมไดง้ า่ ยข้ึน สว่ นใหญม่ กั ใชค้ ำเฉพาะ (Reserve
Word) ที่มใี นภาษาการเขียนโปรแกรมและมกั เขียนด้วยตัวอักษรตวั ใหญ่ รหสั เทยี มที่ดี จะตอ้ งมีความ

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

ภาพท่ี 3 ตวั อย่างรหสั เทียม
ที่มาhttps://www.researchgate.net/figure/Pseudo-Code-Example-of-a-

GEC_fig1_220930688, Joshua Adams
การออกแบบอัลกอรทิ ึม ในแนวคดิ เชงิ คำนวณจึงเปน็ การพฒั นากระบวนการหาคำตอบใหเ้ ป็นขน้ั ตอนท่ี
บุคคลหรือคอมพวิ เตอร์สามารถนำไปปฏิบตั ติ ามเพือ่ แกป้ ัญหาได้ อัลกอรทิ มึ ท่ดี ี จะตอ้ งมีความถูกต้อง
ตอ้ งมีลำดบั ข้ันตอนทีช่ ดั เจน มีความยืดหยนุ่ ในการใช้งาน ใช้เวลาในการพฒั นาน้อย และงา่ ยตอ่ การทำ

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

ถกู ตอ้ งแมน่ ยำ และมีข้อผดิ พลาดน้อยลง

12

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

รูปแบบ (Pattern Recognition) การคิดเชงิ นามธรรม (Abstraction) การออกแบบอัลกอรทิ มึ
(Algorithm) ในบทเรียนนจี้ ะกลา่ วเพียง การคิดเชงิ นามธรรม (Abstraction) เทา่ น้ัน โดยมีรายละเอยี ด

ดังน้ี

การคดิ เชิงนามธรรม (Abstraction)

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

ด้วยข้ันตอนใหมเ่ พยี งขั้นตอนเดียว โดยจะยกตัวอยา่ งดังนี้

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

รปู แบบ (Pattern Recognition) การคิดเชิงนามธรรม (Abstraction) การออกแบบอัลกอริทมึ
(Algorithm) ในบทเรียนนจ้ี ะกล่าวเพียง การคดิ เชงิ นามธรรม (Abstraction) เทา่ นน้ั โดยมีรายละเอียด

ดงั น้ี

13

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

ด้วยขั้นตอนใหมเ่ พียงข้นั ตอนเดยี ว โดยจะยกตวั อยา่ งดังน้ี
1. การคิดเชงิ นามธรรมที่เกีย่ วขอ้ กบั รปู ทรง

ภาพท่ี 1 การคิดเชงิ นามธรรมทเ่ี กยี่ วข้อกบั รปู ทรง
ที่มา https://www.youtube.com/watch?v=bAVTLjhDjuw, NativLang
จากรูปภาพดังกลา่ วทเี่ กดิ จากรปู ทรงกลม ได้แก่ ลอ้ ผลสม้ ลูกบาสเก็ตบอล มีลักษณะเปน็ รูปทรงกลม
การคดิ เชงิ นามธรรมนี้คอื รปู ทรงกลม นอกจาก ลอ้ ผลส้ม ลูกบาสเก็ตบอล ยงั มวี ตั ถุอืน่ ๆ อกี มากมายท่มี ี

ลกั ษะเป็นทรงกล เชน่ ฝาขวดนำ้ ดื่ม ฟตุ บอล ลกู ปิงปอง เหรียญ เปน็ ตน้
2. การคิดเชิงนามธรรมที่เกีย่ วข้อกบั ตัวอกั ษร

ในหนงั สือแบบเรียนวทิ ยาการคำนวณ ของสถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี ระดบั ช้ัน
มธั ยมศึกษาปที ่ี 1 ไดย้ กตวั อย่างคำวา่ Hello

14

ภาพท่ี 2 ตวั อักษร Hello
ท่มี า หนงั สือเรยี นวทิ ยาการคำนวณ ระดับชนั้ มธั ยมศึกษาปที ่ี 1, สถาบนั สง่ เสรมิ การสอนวิทยาศาสตร์

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

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

อักขระภาษาองั กฤษห้าตวั หรอื เป็นคำภาษาอังกฤษเพียงหนงึ่ คำ

15

3. การคิดเชงิ นามธรรมจากเกมเลขฐานสอง

ภาพท่ี 3 กจิ กรรมเลขฐานสอง
ที่มา https://csunplugged.org/en/topics/binary-numbers/unit-plan/how-binary-digits-work,

csunplugged

การแสดงเลขฐานสอง (เพียงแคใ่ ช้ 0 และ 1) เปน็ แนวคดิ เชงิ นามธรรมทซ่ี อ่ นความซบั ซ้อนของอปุ กรณ์
อเิ ล็กทรอนิกสแ์ ละฮาร์ดแวรภ์ ายในคอมพวิ เตอร์ท่เี ก็บขอ้ มูล สงิ่ ทเี่ ปน็ นามธรรมช่วยใหเ้ ราทำให้ง่ายขึน้
เพราะเราสามารถลดทอนตอ่ รายละเอยี ดทเี่ ราไมจ่ ำเปน็ ต้องรู้ ในกรณนี ้ีรายละเอียดทเี่ ราสามารถละเว้น
ได้ ไดแ้ ก่ : อุปกรณค์ อมพิวเตอร์ เชน่ วงจรอเิ ลก็ ทรอนกิ สแ์ ละแรงดนั ไฟฟา้ ในวงจร เพ่อื จดั เก็บและยา้ ย
ข้อมลู และฟสิ กิ ส์เชิงซอ้ นและทฤษฎที างคณิตศาสตร์ทเี่ ก่ียวกับคอมพวิ เตอร์ เราไมจ่ ำเป็นต้องเขา้ ใจว่า
วงจรเหล่าน้ที ำงานอย่างไรเพอื่ ใช้ขอ้ มูลและแสดงส่ิงตา่ ง ๆ โดยใชเ้ ลขฐานสอง การใชเ้ ลขฐานสองเป็นส่ิง
ทเ่ี ป็นนามธรรมของวงจรเหลา่ นีแ้ ละช่วยใหเ้ ราสามารถแทนตัวเลขท่ที ำจากบิต (0s และ 1s) เพอื่ ทำ

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

ๆ (เช่น ตวั อักษรรูปภาพและเสียง) เรายังใช้นามธรรมเพราะเราซอ่ นรายละเอียดของตัวเลขไบนาร่ี
ทั้งหมดท่อี ยู่ด้านลา่ งและเพยี งแค่ดขู ้อมูลทง้ั หมด ข้อมลู ทกุ รปู แบบถกู แสดงเปน็ ตัวเลข สำหรับข้อความท่ี
เรามตี วั เลขสำหรับตวั อักษรแต่ละตวั สำหรบั ภาพทีเ่ ราใช้ตวั เลขสำหรับแตล่ ะสแี ละอนื่ ๆ เราใช้สิ่งท่เี ป็น
นามธรรมหลายชน้ั การแปลงและเปน็ ตัวแทนของเลขฐานสองโดยใชส้ งิ่ อื่น ๆ นอกเหนือจาก“ 1 และ 0
”,“ ขาวดำ” และ“ ปิดและเปดิ ” หากคณุ สามารถเปลีย่ นคำเช่น "ดำ" และ "ขาว" ดว้ ย 0 และ 1 โดยที่

ผู้เรยี นไมต่ อ้ งกงั วลเก่ียวกับความแตกต่างผเู้ รยี นกก็ ำลังใช้สิง่ ทเี่ ปน็ แนวคดิ เชิงนามธรรม

16

4. การคดั แยกรายละเอยี ดปลกี ยอ่ ย

ภาพที่ 4 แผนภาพรถไฟฟ้า
ทม่ี า https://computersciencewiki.org/index.php/File:Screen_Shot_2017-08-

05_at_06.29.05.png, MacKenty

แผนภาพทงั้ สองใหข้ อ้ มูลเกยี่ วกบั สถานรี ถไฟฟ้าและสถานีเชื่อมตอ่ แผนภาพดา้ นซ้ายมอื จะแสดง
รายละเอียดของสถานี ช่ือสถานนี้ และจุดเชอื่ มตอ่ สถานี แผนภาพด้านขวาจะลดทอนรายละเอยี ดของ

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

ที่ดตี ้องมีรายละเอยี ดทีเ่ หมาะสมกบั ความต้องการการใช้งานของผู้ใช้

5. การอธิบายปญั หาโดยใช้รายละเอยี ด และแบบซอ่ นรายละเอยี ด

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

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

ตอ่ ไปนี้

17

ภาพที่ 5 บ้าน

การอธบิ ายปัญหาโดยใช้รายละเอียด
วาดตวั บ้านดว้ ยสเ่ี หลี่ยมจตั รุ สั สีเหลอื ง ขนาดด้านละ 50 หนว่ ย ตั้งอย่ตู ำแหน่งมมุ ลา่ งซา้ ยที่พกิ ัด
(120,90) ดา้ นบนของสเี่ หลยี่ มวาดหลังคาเปน็ รปู สามเหลี่ยมดา้ นเทา่ สีเขียวขนาดด้านละ 50 หนว่ ย

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

ในชวี ิตประจำวันทั้งสิ้น

18

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

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

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

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

สนใจกบั สงิ่ อน่ื ทเ่ี คยทราบมากอ่ น

ภาพท่ี 1 เฟืองหน้าและเฟอื งหลงั
http://www.zeedbike.com/article/28/จักรยานหลายเกียร์, zeedbike

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

19

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

ของ สิ่งต่าง ๆ ท่ีพบเหน็ ได้อยา่ งถกู ตอ้ งจนถึงขั้นสรุปเปน็ กฎเกณฑ์

ภาพท่ี 2 ความสมั พันธข์ องแบบรูป
http://www.tup.ac.th/tup/learning, นาถลดา มนตท์ อง.

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

ประกอบกนั ตามความสมั พันธร์ ะหว่างสงิ่ เหลา่ นั้น

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

โปรแกรมไว้

ในการเขียนโปรแกรมแบบ Blockly ดว้ ยโปรแกรม Scratch หากเราต้องการสรา้ งรูปบันไดเป็นข้นั ๆ 5
ข้นั หากเราใชค้ ำส่ัง ดังรปู ท่ี 3 เราจะตอ้ งเขียนคำสง่ั ดังกลา่ ว ถึง 5 ครงั้ ดงั รปู ท่ี 4

20

ภาพที่ 3 การเขยี นโปรแกรมแบบ Blockly

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

เราสงั เกตเห็นวา่ รปู แบบมลี กั ษณะความสมั พันธ์ท่เี กี่ยวข้อง โดยใช้คำส่ัง Repeat และนำรปู แบบ
โปรแกรมดังรปู ท่ี 3 เพียง 1 ครัง้ ก็จะได้ผลลัพธ์เชน่ เดยี วกนั และทำใหโ้ ปรแกรมสนั้ ลงอีกด้วย

21

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

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

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

22

วิธกี ารแก้ปญั หาด้วยวธิ ีการคอมพวิ เตอร์ โดยการนำภาษาโปรแกรมคอมพวิ เตอรแ์ ละเครอื่ งมอื ตา่ ง ๆ มา
ช่วยในการแก้ปญั หา นนั้ มรี ายละเอยี ดดังนี้
หลักการและความหมายการแกป้ ัญหา

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

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

ตรวจสอบและการปรบั ปรงุ

ภาพท่ี 1 กระบวนการในการแก้ปญั หา 4 ข้ันตอน
ที่มา https://pixabay.com/th/illustrations/ปญั หา-การแก้ปญั หา-ชว่ ยให-้ 3303396, Geralt

23

ขน้ั ตอนการแกป้ ญั หา

1. การวเิ คราะหแ์ ละกำหนดรายละเอยี ดของปญั หา

การวเิ คราะหแ์ ละกำหนดรายละเอียดของปัญหา (State the problem) วิเคราะหแ์ ละกำหนด
รายละเอยี ดของปัญหา จุดประสงค์ของขัน้ ตอนนี้ คือ เปน็ การทำความเข้าใจเกยี่ วกบั รายละเอยี ดเงอ่ื นไข

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

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

วิเคราะห์ปญั หามดี งั น้ี

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

2. การระบขุ อ้ มลู เขา้ (Input Specification) ตอ้ งทราบว่ามีข้อมูลอะไรบา้ งท่ตี อ้ งป้อนเขา้ สรู่ ะบบ
คอมพิวเตอร์ ขอ้ มูลเร่ิมต้นหรือเง่อื นไขท่โี จทยก์ ำหนดมาใหต้ งั้ แต่แรก ในการแก้ปัญหา ผู้

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

เบกิ ถอนจากบญั ชใี ดเป็นจำนวนเงินเทา่ ใด เปน็ ตน้
3. กำหนดวธิ ีการประมวลผล (Process Specification) ตอ้ งทราบวิธกี ารประมวลผล หรือวธิ ีคดิ ให้

ได้ผลลพั ธต์ ามต้องการ

1. การเลอื กเครือ่ งมือและออกแบบข้ันตอนวธิ ี

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

ผงั งาน โดยวิธีการแก้ปญั หาแบบน้ี เรยี กกว่า “ขน้ั ตอนวธิ ีหรืออัลกอรทิ ึม (algorithm)”

24

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

งานของผ้เู ขียนโปรแกรม และลกั ษณะเฉพาะของแต่ละภาษาท่เี หมาะสมกับปัญหานัน้ ๆ

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

งานเครอื่ งมือเหล่าน้ใี ห้เช่ยี วชาญ ตัวอย่างการเขยี นรหสั ลำลองและผังงาน

1. การดำเนนิ การแก้ปัญหา

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

การดำเนินการอาจพบแนวทางท่ีดีกวา่ ท่อี อกแบบไว้ ผแู้ ก้ปัญหาก็สามารถปรับเปล่ยี นได้

1. การตรวจสอบและปรับปรุง

การตรวจสอบและปรับปรงุ (Refinement) หลังจากทลี่ งมอื แก้ปัญหาแลว้ ตอ้ งตรวจสอบให้แนใ่ จวา่
วิธกี ารน้ีให้ผลลัพธท์ ถี่ กู ตอ้ ง โดยผู้แกป้ ัญหาตอ้ งตรวจสอบว่าขน้ั ตอนวิธที ส่ี รา้ งขนึ้ สอดคลอ้ งกบั

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

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

ระบบ ตามข้นั ตอนวธิ ีและไดผ้ ลลัพธท์ ่ดี ีทสี่ ุด

25

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

เคร่ืองมอื หนึ่งทชี่ ่วยให้ผแู้ กป้ ญั หาสามารถแกป้ ญั หาได้สำเร็จ

รหสั ลำลอง

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

ภาษาคอมพิวเตอร์ภาษาใดภาษาหน่ึง

หลักเกณฑก์ ารเขียนรหสั ลำลอง

มีการสรปุ หลกั เกณฑ์ ในการเขยี นรหัสลำลองดงั น้ี

1. ถ้อยคำหรอื ประโยคคำสั่ง (statement) ใหเ้ ขยี นอยใู่ นรูปแบบของภาษาองั กฤษอย่างง่าย
2. ในหนง่ึ บรรทดั ใหเ้ ขยี นประโยคคำส่งั เพยี งคำส่งั เดียว

3. ควรใชย้ อ่ หนา้ ใหเ้ ปน็ ประโยชนเ์ พื่อแยกคำเฉพาะ (Keywords) ไดอ้ ยา่ งชัดเจน รวมถึงจัด
โครงสร้างการควบคมุ ใหเ้ ป็นสดั ส่วน ซึง่ การกระทำดงั กลา่ วจะทำใหอ้ า่ นงา่ ย

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

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

26

ตวั อยา่ งการเขยี นรหัสลำลอง (Pseudo Code)

อลั กอรทิ ีม (Algorithm)Algorithm การหาพื้นทีส่ ามเหล่ียม Pseudocodes Algorithm
triangle

เร่ิมต้น START

รบั คา่ ความยาวของฐานมาเกบ็ ในตัวแปร x READ X

รบั คา่ ความยาวของสูงมาเก็บในตัวแปร Y READ Y

คำนวณหาพ้ืนที่ Compute ARRAY

=(X"Y)/2

แสดงผลพนื้ ท่ี Print ARRAY

จบ END

ประโยชน์ของการเขียนรหสั ลำลอง

1. เป็นเครอ่ื งมือในการกำหนดโครงร่างกระบวนการทำงานของการเขียนโปรแกรมแต่ละโปรแกรม
2. เป็นตน้ แบบในการทบทวน ปรบั ปรุงแกไ้ ข และพฒั นาโปรแกรมของโปรแกรมเมอร์ และ
นักวิเคราะห์ระบบ

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

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

ทำงานเป็นตวั กำหนดงานเขียนโปรแกรมเพอื่ การพฒั นาโปรแกรมต่อไป

27

การเขยี นผงั งาน

ความหมายของการเขยี นผงั งาน

ผังงาน (Flowchart) คือ รปู ภาพ (Image) หรอื สญั ลกั ษณ์(Symbol) ท่ีใชเ้ ขยี นแทนขัน้ ตอน คำอธิบาย
ขอ้ ความหรอื คำพดู ท่ใี ช้ในอัลกอรทิ ึม (Algorithm) เพราะการนำเสนอข้ันตอนของงานใหเ้ ขา้ ใจตรงกนั

ระหวา่ งผู้เกย่ี วขอ้ ง ดว้ ยคำพดู หรอื ขอ้ ความ ทำไดย้ ากกวา่ เมอื่ ใช้รปู ภาพ หรือสัญลักษณ์

ประเภทของผังงาน

ในการเขียนผงั งานน้ันสามารถจำแนกแบบของผงั งานออกเป็น 2 แบบใหญ่ ๆ คือ

1. ผงั งานระบบ (System Flowchart) หรอื ผังงานในระดบั กวา้ ง ซึง่ จะเปน็ การแสดงข้ันตอนการทำงาน
ของระบบทงั้ หมด ผงั งานระบบมักจะมลี กั ษณะย่นยอ่ รวบรัด และแสดงเฉพาะตวั งานท่ีจะต้องทำใน
ระบบเท่านนั้ ไมม่ ุ่งเน้นรายละเอยี ดในการปฏิบตั ิ ไม่ไดแ้ สดงว่างานนน้ั จะทำอย่างไร ความสำคัญของผงั
งานระบบอยู่ทกี่ ารแสดงความสมั พันธร์ ะหวา่ งงานต่าง ๆ ในระบบว่ามีความสัมพันธก์ ันอยา่ งไร ตง้ั แต่

เร่ืองของวัสดอุ ปุ กรณ์ บคุ ลากร และหน่วยงานที่เกยี่ วข้อง

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

ผู้เขยี นโปรแกรมกำลังทำงานอยู่ ไม่ได้แสดงความสมั พนั ธร์ ะหว่างโปรแกรมนน้ั กบั โปรแกรมอ่นื ๆ

สญั ลกั ษณผ์ งั งานโปรแกรม ( Program Flowchart )

การเขียนผังโปรแกรมจะประกอบไปด้วยการใชส้ ัญลกั ษณม์ าตรฐานตา่ ง ๆ ท่เี รียกวา่ สัญลกั ษณ์ ANSI (
American National Standards Institute ) ในการสรา้ งผังงาน ดงั ตวั อยา่ งทแ่ี สดงในรปู ต่อไปนี้

28

ภาพท่ี 1 สัญลักษณ์ ANSI
ท่มี า ฉัตรพงศ์ ชแู สงนิล
ลักษณะโครงสรา้ งของผังงาน
ผังงานทั่วไปจะประกอบดว้ ยโครงสรา้ งพนื้ ฐาน 3 รปู แบบตอ่ ไปนี้คอื
1. โครงสร้างแบบเปน็ ลำดับ (Sequence structure)
2. โครงสร้างแบบมกี ารเลอื ก (Selection structure)
3. โครงสร้างแบบทำซำ้ (Iteration structure)

29

โครงสร้างแบบเป็นลำดับ (Sequence Structure)
เป็นโครงสรา้ งพนื้ ฐานของผงั งาน และเป็นลักษณะขนั้ ตอนการทำงานท่พี บมากที่สดุ คอื ทำงานทีละ

ขัน้ ตอนลำดบั

ภาพท่ี 2 โครงสร้างแบบเป็นลำดบั
ทีม่ า https://kropomprograming.files.wordpress.com › flowchartandprogram,

kropomprograming
โครงสรา้ งแบบมตี วั เลือก (Selection Structure)

ภาพท่ี 3 โครงสรา้ งแบบมตี วั เลอื ก
ทมี่ า https://kropomprograming.files.wordpress.com › flowchartandprogram,

kropomprograming

30

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

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

ภาพท่ี 4 โครงสรา้ งแบบทำซำ้
ท่ีมา https://kropomprograming.files.wordpress.com › flowchartandprogram,

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

เขา้ ใจได้งา่ ย
2. ผังงานชว่ ยลำดับเปน็ ขน้ั เป็นตอน เน้นสอื่ ความหมายดว้ ยภาพทำใหง้ ่ายต่อการทำความเข้าใจ แตกตา่ ง

จากการใช้ขอ้ ความหรือคำพูดอาจจะส่ือความหมายผดิ ไปได้

31

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

4. ผงั งานชว่ ยทำใหผ้ ูท้ ่ีมาทำต่อหรือศึกษาต่อทำความเขา้ ใจการทำงานของโปรแกรมได้อย่างง่าย สะดวก
และรวดเร็วมากขน้ึ

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

ออกเป็น 2 แบบใหญ่ ๆ ไดแ้ ก่ ผงั งานระบบ และผังงานโปรแกรม สญั ลกั ษณผ์ งั งานโปรแกรมโดยใช้
สัญลกั ษณ์ ANSI โดยลกั ษณะโครงสรา้ งของผังงานจะประกอบดว้ ยโครงสรา้ งพนื้ ฐาน 3 รปู แบบ ได้แก่
โครงสร้างแบบเปน็ ลำดบั โครงสร้างแบบมกี ารเลอื ก โครงสร้างแบบทำซำ้ ซ่ึงจะช่วยใหล้ ำดบั รายละเอยี ด

ของคำส่งั เปน็ ภาพแผนผังทีแ่ สดงลำดับขัน้ ตอนในการทำงานของโปรแกรมได้

32

บรรณนานุกลม

ชาญวิทย์ ศรอี ุดม. (2562, 12 สงิ หาคม). แนวคิดเชิงคำนวณ. สบื คน้ เม่อื 12 สงิ หาคม 2562.
จาก http://charnwit.in.th/?p=1302#.XX8Q4dUzbIU.

สถาบนั สง่ เสริมการสอนวิทยาศาสตรแ์ ละเทคโนโลย.ี (2562). เทคโนโลยี (วทิ ยาการคำนวณ).
สำนักพิมพจ์ ุฬาลงกรณ์ : กรงุ เทพมหานคร.

csunplugged.org. (2562, 12 สงิ หาคม). กิจกรรมส่งจรวดไปดาวองั คาร สืบคน้ เมื่อ 12 สิงหาคม 2562, จาก
https://csunplugged.org/en/topics/kidbots/unit-plan/sending-a-rocket-to-mars.

Tim Bell, Ian H. Witten and Mike Fellows. (2562). ซเี อส อันปลก๊ั โปรแกรมเสริมสมรรถนะและขยาย
ความสามารถของเด็กระดบั ประถมศึกษา. สถาบนั เทคโนโลยีนานาชาตสิ ิรินธร มหาวทิ ยาลัยธรรมศาสตร์ :
ปทมุ ธานี

เจ๊ะมาดีนา กรมเมือง. (2562, 12 สงิ หาคม). การออกแบบและการเขยี นอัลกอริทึม. สบื คน้ เม่ือ 12 สงิ หาคม
2562, จาก https://sites.google.com/site/computernanajang/bth-reiyn-
hnwy-kar-reiyn-ru-thi-1-kar-xxkbaeb-laea-kar-kheiyn-xal-kx-ri-thum.

รัตนา วงศ์ภงู า. (2562, 12 สงิ หาคม). อัลกอรทิ ึม. สืบค้นเม่ือ 12 สิงหาคม 2562, จาก
https://sites.google.com/a/wwk.ac.th/googlesites/hnwy-thi-2/xal-kx-ri-thum.

สถาบันส่งเสริมการสอนวทิ ยาศาสตรแ์ ละเทคโนโลยี. (2562). เทคโนโลยี (วิทยาการคำนวณ).
สำนกั พมิ พจ์ ุฬาลงกรณ์ : กรุงเทพมหานคร.

csunplugged.org. (2562, 12 สงิ หาคม). กิจกรรมสง่ จรวดไปดาวอังคาร. สบื คน้ เมอ่ื 12 สิงหาคม 2562,จาก
https://csunplugged.org/en/topics/kidbots/unit-plan/sending-a-rocket-to-mars.

Tim Bell, Ian H. Witten and Mike Fellows. (2562). ซเี อส อันปลั๊กโปรแกรมเสริมสมรรถนะและขยาย
ความสามารถของเดก็ ระดับประถมศึกษา. สถาบนั เทคโนโลยนี านาชาตสิ ิรินธร มหาวิทยาลยั ธรรมศาสตร์ :
ปทุมธานี

Warayuphat Panumphan. (2562, 12 สงิ หาคม). Algorithm. สืบคน้ เมือ่ 12 สิงหาคม 2562, จาก
http://jsbg.joseph.ac.th/6150/index.php?option=com_content&view=article&id=95&Itemid=95

สถาบนั สง่ เสริมการสอนวทิ ยาศาสตรแ์ ละเทคโนโลย.ี (2562). เทคโนโลยี (วิทยาการคำนวณ). สำนกั พิมพ์ศศศ
จฬุ าลงกรณ์ : กรงุ เทพมหานคร.

33

csunplugged.org. (2562, 12 สิงหาคม). กจิ กรรมส่งจรวดไปดาวอังคาร สบื คน้ เมื่อ 12 สงิ หาคม 2562,จาก
https://csunplugged.org/en/topics/kidbots/unit-plan/sending-a-rocket-to-mars.

Tim Bell, Ian H. Witten and Mike Fellows. (2562). ซเี อส อนั ปลั๊กโปรแกรมเสรมิ สมรรถนะและขยาย
ความสามารถของเดก็ ระดบั ประถมศกึ ษา. สถาบันเทคโนโลยนี านาชาตสิ ริ ินธร มหาวิทยาลัยธรรมศาสตร์ :
ปทุมธานี

นาถลดา มนตท์ อง. (8 ตลุ าคม 2562). แบบฝึกทักษะคณิตศาสตร์ ม.1 เรอ่ื ง แบบรูปและความสัมพันธ์. สืบค้นเมือ่
8 ตุลาคม 2562, จาก http://www.tup.ac.th/tup/learning.

อนุวัฒน์ พานพิ ดั . (8 ตลุ าคม 2562). แนวคิดเชงิ คำนวณ. สบื ค้นเมื่อ 8 ตุลาคม 2562,จาก
https://www.teachernu.com/2019/01/02/

แนวคิดเชิงคำนวณสถาบนั ส่งเสรมิ การสอนวทิ ยาศาสตรแ์ ละเทคโนโลย.ี (2562). เทคโนโลยี (วิทยาการคำนวณ).
สำนักพิมพ์จุฬาลงกรณ์ : กรุงเทพมหานคร.

Tim Bell, Ian H. Witten and Mike Fellows. (2562). ซเี อส อนั ปลัก๊ โปรแกรมเสรมิ สมรรถนะและขยาย
ความสามารถของเด็กระดบั ประถมศึกษา. สถาบนั เทคโนโลยีนานาชาตสิ ิรินธร มหาวิทยาลยั ธรรมศาสตร์ :
ปทมุ ธานี

ดนัยเทพ. (2562, 12 กนั ยายน). หลักการแก้ปัญหาดว้ ยคอมพิวเตอร.์ สืบคน้ เม่อื 12 กันยายน 2562. จาก
https://danaithep.wordpress.com/2012/07/23/บทที่-6-หลักการแก้ปญั หาด-2.

ปรดี าภรณ์ ไชยแสง. แนวคิดเชิงคำนวณ. สืบค้นเมอื่ 12 สิงหาคม 2562. จาก
https://sites.google.com/a/kjn.ac.th/withyakar-khanwn/kh-naewkhid-cheing-khanwn

สถาบันส่งเสรมิ การสอนวิทยาศาสตร์และเทคโนโลยี. (2562). เทคโนโลยี (วิทยาการคำนวณ). สำนกั พมิ พ์
จุฬาลงกรณ์ : กรุงเทพมหานคร.

เจษฎา ก้องสาคร. (2562, 12 กนั ยายน). การเขยี นผังงาน. สบื คน้ เมือ่ 12 กนั ยายน 2562. จาก
https://www.cmarea3.go.th/2562/การเขียนผังงาน-flowchart/

นิรุธ อำนวยศลิ ป์ (2548.) โครงสร้างขอ้ มลู : การเขยี นโปรแกรมและการประยุกต.์ ดวงกมลสมัย : กรงุ เทพฯ.

สถาบนั สง่ เสรมิ การสอนวทิ ยาศาสตร์และเทคโนโลย.ี (2562). เทคโนโลยี (วิทยาการคำนวณ). สำนักพิมพ์
จฬุ าลงกรณ์ : กรุงเทพมหานคร.

โอภาส เอี่ยมสิรวิ งศ.์ (2549.). โครงสร้างขอ้ มลู เพื่อการออกแบบโปรแกรมคอมพวิ เตอร์. ซเี อด็ ยูเคชน่ั :
กรงุ เทพฯ.

34


Click to View FlipBook Version