รายงาน เรือ่ ง แนวคดิ เชงิ คานวณ
จดั ทาโดย
เด็กหญงิ วนั วรณุ นาคดี
เดก็ หญงิ เพ่อื นเพื่อน คู่กัน
เสนอ
คณุ ครวู นั วรุณ นาคดี
รายงานฉบับนี้เป็นส่วนหน่งึ ของรายวิชาวิทยาการคานวณ
โรงเรยี นบ้านห้วยงาชา้ ง
ภาคเรยี นที่ 1 ปกี ารศกึ ษา 2565
คานา
รายงานเล่มน้ีจัดทาข้ึนเพื่อเป็นส่วนหน่ึงของวิชาวิทยาการคานวณ ช้ันมัธยมศึกษาปีท่ี 2 เพื่อให้ได้ศึกษา
ความรใู้ นเร่ือง แนวคิดเชิงคานวณ และได้ศกึ ษาอยา่ งเข้าใจเพ่ือเป็นประโยชน์กับการเรียน
ผู้จัดทาหวังว่า รายงานเล่มนี้จะเป็นประโยชนก์ ับผู้อ่าน หรือนักเรียน นักศึกษา ที่กาลังหาข้อมูลเร่ืองน้อี ยู่
หากมีขอ้ ผดิ พลาดประการใด ผจู้ ดั ทาขอน้อมรับไว้และขออภัยมา ณ ท่ีน้ดี ว้ ย
สารบัญ หน้า
เรื่อง ก
ข
คานา 1
สารบัญ 1
แนวคิดเชงิ คานวณ (Computational Thinking) 2
การแยกส่วนประกอบ และการย่อยปญั หา (Decomposition) 3
การแบง่ ปญั หาใหญ่เป็นปญั หาย่อย (Decomposition) 7
กรณีตัวอย่างการแบง่ ปญั หาใหญ่เป็นปัญหาย่อย (Decomposition) 8
การออกแบบอัลกอริทึม (Algorithm) 8
คณุ สมบตั ิของอัลกอริทมึ 11
เครอ่ื งมือชว่ ยในการเขยี นอลั กอรทิ ึม 15
การคิดเชิงนามธรรม (Abstraction) 16
การอธิบายปัญหาโดยใชร้ ายละเอียด 16
การอธิบายปัญหาแบบซอ่ นรายละเอยี ด 17
การพจิ ารณารปู แบบ (Pattern Recognition) 23
แบบรูป (Pattern) 24
การเขียนรหสั ลาลองและการเขียนผังงาน 30
การเขียนผงั งาน
บรรณานุกรม
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
4
2. การพาจรวดไปดาวอังคาร
จากเว็บไซต์ 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 ชอ่ ง
2. เลย้ี วขวา
3. เดนิ ตรงไป 3 ชอ่ ง
5
3. พัดลม
นอกจากการเขียนโปรแกรมสิ่งของในชีวิตประจาวันเช่น จะเรียนรู้ว่าพัดลมทางานอย่างไร ก็ให้พิจารณา
แยกชน้ิ ส่วนของพดั ลมว่ามีอะไรบา้ งและศึกษาทีละช้นิ
ภาพท่ี 5 ส่วนประกอบพัดลม
https://www.baanlaesuan.com/45800/maintenance/fan, สุพจน์ เพชรศักดวิ์ งศ์
การแบง่ ปญั หาใหญเ่ ปน็ ปัญหายอ่ ย (Decomposition) ของพดั ลม
1. มอเตอรพ์ รอ้ มกะโหลกหลังและฐานพัดลม
2. ตะแกรงหลัง
3. ใบพัด
4. ตะแกรงหน้า
4. การเดินทาง
หากจะเดินทางไปเท่ียวหัวหิน จะมีการวางแผนเดินทางอย่างไร ซึ่งอาจแยกย่อยวธิ ีเดินทางเป็น 4 รูปแบบ
เช่น ขับรถไปเอง นง่ั รถทัวร์ นั่งรถตู้ หรอื นงั่ รถไฟ จากนน้ั กม็ าวิเคราะห์ถึงข้อดขี ้อเสียแตล่ ะวิธกี าร
6
ภาพที่ 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. นัง่ รถทัวร์
3. นัง่ รถตู้
4. นั่งรถไฟ
วิเคราะห์ถึงข้อดีข้อเสียแต่ละวิธีการรวมถึงการคานวณค่าใช้จ่ายของแต่ละวิธีการเดินทางเพ่ือ
เลอื กการเดินทางทด่ี ีทส่ี ุด
แนวคิดเชิงคานวณ ท่ีเก่ียวข้องกับการแบ่งปัญหาใหญ่เป็นปัญหาย่อย (Decomposition)
น้ันเป็นการแตกปัญหาท่ีซบั ซอ้ นให้เป็นปัญหาย่อยที่มขี นาดเล็กลงและซบั ซอ้ นน้อยลง เพื่อช่วยให้การ
วิเคราะห์และออกแบบวิธีการแก้ปัญหาทาได้ง่ายข้ึนทาให้คิดอย่างเป็นระบบมากย่ิงข้ึน โดยผ่านการ
แยกย่อยปัญหาต่าง ๆ เน่ืองด้วยกระบวนงานบางกระบวนงาน มีวิธีการที่ทางานอย่างเป็นข้ันตอน
และมีระบบย่อย จึงมีความจาเป็นที่ต้องแยกปัญหาน้ันออกมาเป็นส่วนย่อย ๆ เพ่ือสามารถศึกษา
ปัญหาของกระบวนการไดช้ ัดเจนยิง่ ข้นึ
7
การออกแบบอลั กอรทิ ึม (Algorithm)
แนวคิดเชิงคานวณ (Computational Thinking) เป็นกระบวนการวิเคราะหป์ ัญหา เพื่อให้ได้แนวทางหา
คาตอบอย่างเปน็ ขั้นตอนท่ีสามารถนาไปปฏิบัติไดโ้ ดยบุคคลหรือคอมพิวเตอร์อย่างถูกต้อง การคิดเชงิ คานวณ เป็น
กระบวนการแก้ปัญหาในหลากหลายลักษณะ เช่น การจัดลาดับเชิงตรรกศาสตร์ การวิเคราะห์ข้อมูล และการ
สร้างสรรค์วิธีแก้ปัญหาไปทีละข้ัน รวมทั้งการย่อยปัญหาที่ช่วยให้รับมือกับปัญหาท่ีซับซ้อนหรือมีลักษณะเป็น
คาถามปลายเปิดได้วิธีคิดเชิงคานวณ จะชว่ ยทาให้ปญั หาที่ซบั ซ้อนเข้าใจได้ง่ายข้นึ เป็นทกั ษะทีเ่ ป็นประโยชน์อย่าง
ย่ิงต่อทุก ๆ สาขาวิชา และทุกเร่ืองในชีวิตประจาวันซ่ึงไม่ได้จากัดอยู่เพียงการคิดให้เหมือนคอมพิวเตอร์แต่เป็น
กระบวนการคิดแก้ปัญหาของมนุษย์ เพ่ือสั่งให้คอมพิวเตอร์ทางานและช่วยแก้ปัญหาตามท่ีเราต้องการได้อย่างมี
ประสิทธิภาพ แนวคิดเชิงคานวณมีองค์ประกอบที่สาคัญ 4 ส่วน ได้แก่ การแบ่งปัญหาใหญ่เป็นปัญหาย่อย
(Decomposition) การพิจารณารูปแบบ (Pattern Recognition) การคิดเชิงนามธรรม (Abstraction) การ
ออกแบบอัลกอริทึม (Algorithm) ในบทเรียนน้ีจะกล่าวเพียง การออกแบบอัลกอริทึม (Algorithm) เท่านั้น โดยมี
รายละเอยี ดดังน้ี
ภาพที่ 1 การออกแบบอลั กอรทิ มึ
ท่มี า https://www.wired.com/story/want-to-prove-your-business-is-fair-audit-your-algorithm/,JESSI
HEMPEL
การออกแบบอัลกอริทึม (Algorithm) เป็นการพัฒนากระบวนการหาคาตอบให้เป็นข้ันตอนท่ีบุคคลหรือ
คอมพิวเตอร์สามารถนาไปปฏิบัติตามเพ่ือแก้ปัญหาได้ อีกทั้ง เป็นการพัฒนาแนวทางแก้ปัญหาอย่างเป็นขั้นเป็น
8
ตอน เพ่ือดาเนินตามทีละขั้นตอนในการแก้ไขปัญหา เช่น เม่ือเราต้องการสั่งคอมพิวเตอร์ให้ทางานบางอย่าง เรา
จะต้องเขียนโปรแกรมคาสั่งเพื่อให้คอมพิวเตอร์ทางานไปตามขั้นตอน ตามแนวทางการแก้ปัญหาเพื่อให้
คอมพวิ เตอร์ทางานตอบสนองความต้องการของเรา วธิ ีคิดน้ที เี่ รยี กว่าวิธีคิดแบบอัลกอริทึม คอมพิวเตอรจ์ ะทางาน
ได้ดีเพียงใดน้ัน ขึ้นอยู่กับชุดคาส่ังอัลกอริทึมท่ีเราออกแบบให้มันทางานนั่นเอง การออกแบบอัลกอริทึมยังเป็น
ประโยชน์ตอ่ การคานวณ การประมวลผลขอ้ มลู และการวางระบบอตั โนมตั ิตา่ ง ๆ
การนาอัลกอริทึมไปใช้แก้ปัญหา ไม่จากัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหา
อื่น ๆ ได้เช่นเดียวกัน เพ่ือให้เกิดการใช้ทรัพยากรอย่างมีประโยชน์สูงสุด ซ่ึงจาเป็นต้องวางแผนอย่างเป็นระบบ
เป็นขั้นตอน จึงจาเป็นต้องอาศัยอัลกอริทึม ด้วย เพ่ือให้ทราบถึงขั้นตอนต่าง ๆ และสามารถตัดทอนขั้นตอนท่ีเกิน
ความจาเป็น อกี ทง้ั ยงั สามารถปรับปรงุ และเพ่มิ เติมข้นั ตอนใหม่ เข้าไปได้ ชว่ ยลดความสับสนขณะทางานดว้ ย อีก
ทง้ั ปัญหาบางปัญหาอาจจะมีอลั กอริทมึ ในการแก้ปญั หาไดห้ ลายวธิ ี นอกจากการเขียนคาสั่งใหค้ อมพวิ เตอร์ทางาน
ตามลาดับขั้นตอนทเ่ี ราวางไว้ ในชวี ติ ประจาวันมนษุ ยก์ ็ล้วนมแี นวคดิ การออกแบบข้นั ตอนในการแก้ไขปัญหา ทาให้
ทราบวา่ จะตอ้ งทาอะไรก่อนอะไรหลัง เชน่ การแตง่ ตัวมาโรงเรยี น การทาอาหาร การทางานในชีวติ ประจาวัน การ
เดนิ ทาง เปน็ ตน้
ภาพที่ 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) อัลกอริทึมที่ดีต้องใช้เวลาในการปฏิบัติงานน้อย มี
ข้นั ตอนในการปฏบิ ัตงิ านทีถ่ ูกต้อง
9
3. ต้องมีลาดับขั้นตอนท่ีชัดเจน ในการประมวลผลชุดคาสั่งต่าง ๆ ที่ถูกกาหนดด้วยกฎเกณฑ์ในการ
แก้ปัญหาของ อลั กอริทมึ จะต้องประมวลผลเปน็ ลาดบั ตามขน้ั ตอน เพราะการแกป้ ญั หาดว้ ยคอมพวิ เตอรจ์ ะต้อง มี
ลาดับขั้นตอนที่แน่นอน ซึ่งแต่ละข้ันตอนของอัลกอริทึมจะต้องทาหน้าท่ีอย่างชัดเจนและต่อเนื่องโดยการเร่ิมต้น
ทางานแต่ละข้ันตอนมีการรับและส่งข้อมูลต่อเน่ืองกันไปจนส้ินสุดการทางาน ถ้าลาดับไม่ดีอาจจะทาให้การ
ประมวลผลผดิ พลาดได้
4. ใช้เนื้อท่ีในหน่วยความจาน้อยที่สุด เนื้อที่ในหน่วยความจาจะถูกใช้สาหรับเก็บค่าของตัวแปร และเก็บ
คาสั่งที่ใช้ในการทางาน ดังนั้น ถ้าอัลกอริทึมยาวเกินความจาเป็น จะทาให้ใช้เนื้อท่ีมาก และ ถ้ามีตัวแปรมากเกิน
ความจาเป็น กจ็ ะทาใหเ้ สยี เนอื้ ที่ในหนว่ ยความจาไปดว้ ย
5. มีความยืดหย่นุ ในการใช้งาน
6. ใช้เวลาในการพัฒนาน้อยท่ีสดุ เม่ือนาอลั กอริทึมไปแปลงเปน็ โปรแกรมภาษาคอมพวิ เตอรแ์ ลว้ จะต้องใช้
เวลาน้อยที่สดุ
7. ง่ายต่อการทาความเข้าใจ (readability) อา่ นงา่ ยเข้าใจลาดับข้นั ตอนไดง้ า่ ย มคี วามชดั เจนของขน้ั ตอน
เครือ่ งมอื ช่วยในการเขยี นอัลกอริทมึ
การออกแบบอัลกอรทิ ึม เปน็ แนวทางในการเขยี นโปรแกรม ช่วยใหก้ ารเขียนโปรแกรมทาได้งา่ ยข้นึ ชว่ ยให้
โปรแกรมมีข้อผิดพลาดน้อยลง นอกจากน้ียังช่วยตรวจสอบการทางานของโปรแกรม ทาให้ทราบขั้นตอนการ
ทางานของโปรแกรมได้อย่างรวดเร็ว โดยไม่ต้องดูจากโปรแกรมจริงในการเขียนอัลกอริทึม มีเคร่ืองมือช่วยในการ
เขียนที่นยิ มใช้ 3 แบบ คอื
1. บรรยาย (narrative description) เปน็ การอธบิ ายแบบใช้ภาษาท่ีเราสื่อสารกนั ทว่ั ไป เป็นการแสดง
ขนั้ ตอนการทางานในลกั ษณะการบรรยายเปน็ ข้อความดว้ ยภาษาพดู ใด ๆ เชน่ ภาษาไทย ภาษาองั กฤษ ภาษาญป่ี ุ่น
หรือ ภาษาจีน เป็นต้น ขึ้นอยู่กับความถนัดของผู้เขียนอัลกอริทึม มักเขียนบรรยายขั้นตอนการทางานเป็นข้อ ๆ
เชน่ การตม้ บะหมีก่ ่ึงสาเรจ็ รูป
1. เทน้าสะอาดใสห่ มอ้ และตม้ นา้ จนเดอื ด
2. ฉีกซองและนาบะหมก่ี ึ่งสาเร็จรูปใสล่ งในหม้อ
3. เทเครอื่ งปรุงลงในหม้อ
10
4. ปิดฝา
5. รอประมาณ 3 นาที
6. เทใสช่ ามรับประทานได้
2. ผังงาน (flowchart) เป็นการใช้รูปภาพสัญลักษณ์ แทนขั้นตอนการเขียนโปรแกรมช่วยลาดับขั้นตอน
การทางานของโปรแกรม และสามารถนาไปเขียนโปรแกรมได้อย่างถูกต้อง ทาให้ตรวจสอบ และแก้ไขโปรแกรมได้
ง่าย เมื่อเกิดข้อผิดพลาดช่วยให้การดัดแปลง แก้ไข ทาได้อย่างสะดวกและรวดเร็ว ผู้อื่นสามารถศึกษาการทางาน
ของโปรแกรมไดอ้ ย่างง่าย และรวดเรว็ มากขึ้น
3. รหัสเทียม (pseudo code) เป็นการเขียนคาอธิบายขั้นตอนการทางานของโปรแกรม โดยใช้ถ้อยคา
ผสมระหว่างภาษาอังกฤษและภาษาการเขียนโปรแกรมแบบโครงสร้าง ซ่ึงจะช่วยให้ผู้เขียนโปรแกรมสามารถ
พัฒนาขั้นตอนต่าง ๆ ให้เป็นโปรแกรมได้ง่ายขึ้น ส่วนใหญ่มักใช้คาเฉพาะ (Reserve Word) ที่มีในภาษาการ
เขียนโปรแกรมและมักเขียนด้วยตัวอักษรตัวใหญ่ รหัสเทียมท่ีดี จะต้องมีความชัดเจน สั้น และได้ใจความ
ข้อมูลตา่ ง ๆ ทใ่ี ชจ้ ะถกู เขียนอยูใ่ นรปู ของตัวแปร
ภาพท่ี 3 ตัวอยา่ งรหสั เทยี ม
ทม่ี าhttps://www.researchgate.net/figure/Pseudo-Code-Example-of-a-GEC_fig1_220930688,
Joshua Adams
11
การออกแบบอัลกอริทึม ในแนวคิดเชิงคานวณจึงเป็นการพัฒนากระบวนการหาคาตอบให้เป็นข้ันตอนที่
บคุ คลหรอื คอมพิวเตอร์สามารถนาไปปฏิบตั ิตามเพื่อแกป้ ัญหาได้ อัลกอริทึมท่ีดี จะต้องมคี วามถูกต้อง ต้องมลี าดับ
ขั้นตอนที่ชัดเจน มีความยืดหยุ่นในการใช้งาน ใช้เวลาในการพัฒนาน้อย และง่ายต่อการทาความเข้าใจ เครื่องมือ
ท่ีจะช่วยให้การเขียนอัลกอริทึมของโปรแกรมทาได้ง่ายขึ้น ช่วยให้โปรแกรมมีข้อผิดพลาดน้อยลง เช่น การเขียน
บรรยาย การเขียนผังงาน หรือรหัสเทยี ม จะชว่ ยใหอ้ ลั กอริทึมมีความถกู ต้องแม่นยา และมีข้อผดิ พลาดนอ้ ยลง
แนวคิดเชิงคานวณ (Computational Thinking) เป็นกระบวนการวิเคราะห์ปัญหา เพื่อให้ได้แนวทางหา
คาตอบอย่างเป็นขั้นตอนที่สามารถนาไปปฏิบตั ิไดโ้ ดยบุคคลหรือคอมพิวเตอร์อย่างถูกต้อง การคดิ เชิงคานวณ เป็น
กระบวนการแก้ปัญหาในหลากหลายลักษณะ เช่น การจัดลาดับเชิงตรรกศาสตร์ การวิเคราะห์ข้อมูล และการ
สร้างสรรค์วิธีแก้ปัญหาไปทีละข้ัน รวมทั้งการย่อยปัญหาท่ีช่วยให้รับมือกับปัญหาที่ซับซ้อนหรือมีลักษณะเป็น
คาถามปลายเปิดได้วธิ ีคิดเชิงคานวณ จะช่วยทาให้ปัญหาท่ีซบั ซ้อนเข้าใจได้ง่ายข้ึน เป็นทกั ษะที่เป็นประโยชน์อย่าง
ย่ิงต่อทุก ๆ สาขาวิชา และทุกเร่ืองในชีวิตประจาวันซึ่งไม่ได้จากัดอยู่เพียงการคิดให้เหมือนคอมพิวเตอร์แต่เป็น
กระบวนการคิดแก้ปัญหาของมนุษย์ เพื่อส่ังให้คอมพิวเตอร์ทางานและช่วยแก้ปัญหาตามที่เราต้องการได้อย่างมี
ประสิทธิภาพ แนวคิดเชิงคานวณมีองค์ประกอบท่ีสาคัญ 4 ส่วน ได้แก่ การแบ่งปัญหาใหญ่เป็นปัญหาย่อย
(Decomposition) การพิจารณารูปแบบ (Pattern Recognition) การคิดเชิงนามธรรม (Abstraction) การ
ออกแบบอัลกอริทึม (Algorithm) ในบทเรียนนี้จะกล่าวเพียง การคิดเชิงนามธรรม (Abstraction) เท่าน้ัน โดยมี
รายละเอียดดงั น้ี
การคิดเชิงนามธรรม (Abstraction)
เป็นองค์ประกอบหนึ่งของแนวคิดเชิงคานวณ ซ่ึงใช้กระบวนการคัดแยกคุณลักษณะท่ีสาคัญออกจาก
รายละเอียดปลีกยอ่ ย ในปญั หาหรืองานที่กาลังพิจารณา เพ่อื ใหไ้ ด้ข้อมลู ทีจ่ าเป็นและเพียงพอในการแกป้ ัญหา เปน็
การแยกรายละเอียดท่ีสาคัญและจาเป็นต่อการแก้ปัญหาออกจากรายละเอียดท่ีไม่จาเป็น ซ่ึงรวมไปถึงการแทน
กลุ่มของปัญหา ขั้นตอน หรือกระบวนการท่ีมีรายละเอียดปลีกย่อยหลายขั้นตอนด้วยข้ันตอนใหม่เพียงขั้นตอน
เดยี ว โดยจะยกตวั อยา่ งดังนี้
12
1. การคดิ เชิงนามธรรมทีเ่ กี่ยวขอ้ กับรปู ทรง
ภาพที่ 1 การคิดเชิงนามธรรมทเี่ ก่ยี วข้อกบั รูปทรง
ท่มี า https://www.youtube.com/watch?v=bAVTLjhDjuw, NativLang
จากรูปภาพดังกล่าวที่เกิดจากรูปทรงกลม ได้แก่ ล้อ ผลส้ม ลูกบาสเก็ตบอล มีลักษณะเป็นรูปทรงกลม
การคิดเชิงนามธรรมนี้คือรูปทรงกลม นอกจาก ล้อ ผลส้ม ลูกบาสเก็ตบอล ยังมีวัตถุอ่ืน ๆ อีกมากมายที่มีลักษะ
เปน็ ทรงกล เช่น ฝาขวดนา้ ด่ืม ฟุตบอล ลกู ปงิ ปอง เหรยี ญ เป็นต้น
2. การคิดเชงิ นามธรรมท่เี กย่ี วขอ้ กับตัวอักษร
ในหนังสือแบบเรียนวิทยาการคานวณ ของสถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี ระดับชั้น
มธั ยมศกึ ษาปที ่ี 1 ได้ยกตวั อยา่ งคาว่า Hello
13
ภาพที่ 2 ตัวอกั ษร Hello
ที่มา หนังสือเรยี นวิทยาการคานวณ ระดบั ชั้นมัธยมศึกษาปีที่ 1, สถาบันส่งเสริมการสอนวิทยาศาสตร์และ
เทคโนโลยี
Hello แต่ละตัวจะมีรูปแบบท่ีแตกต่างกันขึ้นอยู่กับประสบการณ์ท่ีผู้เขียนแต่ละคนมี จากตัวอย่างจะเห็น
รายละเอียดที่แตกต่างกันเชน่ สรี ูปแบบตัวอักษร อักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กและรายละเอียดอื่น ๆเช่นการ
ขีดเส้นใตห้ รอื การเอียงของตวั อักษร โดยรปู แบบทีแ่ ต่ละคนมีอยู่ ถ้าจะถา่ ยทอดใหผ้ ู้อ่ืนรบั รู้และเข้าใจทุกอย่างแทบ
จะเป็นไปไม่ไดแ้ ละอาจจะไม่มีความจาเป็นทผ่ี อู้ น่ื ต้องรับรู้รายละเอยี ดทัง้ หมด
ในท่ีนี้หากผู้รับข้อมูลต้องการทราบว่าคาน้ีประกอบไปด้วยอักขระใดบ้างโดยไม่สนใจประเภทของอักษร
ตัวพิมพ์เล็กหรือพิมพ์ใหญ่คาว่า Hello ทุกตัวในตารางต่างก็มีองค์ประกอบเชิงนามธรรมเดียวกันคือเป็นคาที่
ประกอบด้วยอักขระ H e l l และ o แตใ่ นบางสถานการณ์อาจส่อื วา่ ขอ้ มูลดงั กลา่ วเป็นเพยี งอักขระภาษาอังกฤษ
หา้ ตัวหรือเปน็ คาภาษาอังกฤษเพียงหนึง่ คา
3. การคดิ เชงิ นามธรรมจากเกมเลขฐานสอง
ภาพที่ 3 กจิ กรรมเลขฐานสอง
ทม่ี า https://csunplugged.org/en/topics/binary-numbers/unit-plan/how-binary-digits-work,
csunplugged
14
การแสดงเลขฐานสอง (เพียงแค่ใช้ 0 และ 1) เป็นแนวคิดเชิงนามธรรมท่ีซ่อนความซับซ้อนของอุปกรณ์
อิเล็กทรอนิกส์และฮาร์ดแวร์ภายในคอมพิวเตอร์ท่ีเก็บข้อมูล ส่ิงท่ีเป็นนามธรรมช่วยให้เราทาให้ง่ายข้ึนเพราะเรา
สามารถลดทอนต่อรายละเอียดท่ีเราไม่จาเป็นต้องรู้ ในกรณีน้ีรายละเอียดท่ีเราสามารถละเว้นได้ ได้แก่ : อุปกรณ์
คอมพิวเตอร์ เช่น วงจรอิเล็กทรอนกิ ส์และแรงดันไฟฟ้าในวงจร เพ่ือจัดเก็บและย้ายข้อมูล และฟิสิกส์เชิงซ้อนและ
ทฤษฎีทางคณิตศาสตร์ท่ีเกี่ยวกับคอมพิวเตอร์ เราไม่จาเป็นต้องเข้าใจว่าวงจรเหล่าน้ีทางานอย่างไรเพ่ือใช้ข้อมูล
และแสดงส่ิงต่าง ๆ โดยใช้เลขฐานสอง การใช้เลขฐานสองเป็นส่ิงที่เป็นนามธรรมของวงจรเหล่าน้ีและช่วยให้เรา
สามารถแทนตัวเลขท่ีทาจากบติ (0s และ 1s) เพื่อทาความเข้าใจข้อมูลและแก้ไขปัญหาโดยไม่ต้องคิดเก่ียวกับส่ิงท่ี
เกิดขึ้นภายใต้เคร่ืองคอมพิวเตอร์ เราสามารถใช้เลขฐานสองเพ่ือแสดงข้อมูลทุกประเภทที่เก็บไว้ในคอมพิวเตอร์
เมื่อเราแสดงข้อมูลรูปแบบอ่ืน ๆ (เช่น ตัวอักษรรูปภาพและเสียง) เรายังใช้นามธรรมเพราะเราซ่อนรายละเอียด
ของตัวเลขไบนารี่ท้ังหมดที่อยู่ด้านล่างและเพียงแค่ดูข้อมูลท้ังหมด ข้อมูลทุกรูปแบบถูกแสดงเป็นตัวเลข สาหรับ
ข้อความท่ีเรามีตัวเลขสาหรับตัวอักษรแต่ละตัวสาหรับภาพที่เราใช้ตัวเลขสาหรับแต่ละสีและอื่น ๆ เราใช้ส่ิงที่เป็น
นามธรรมหลายช้ัน การแปลงและเป็นตัวแทนของเลขฐานสองโดยใช้สิ่งอ่ืน ๆ นอกเหนือจาก“ 1 และ 0 ”,“ ขาว
ดา” และ“ ปิดและเปิด” หากคุณสามารถเปล่ียนคาเชน่ "ดา" และ "ขาว" ด้วย 0 และ 1 โดยท่ีผู้เรียนไม่ต้องกังวล
เก่ยี วกบั ความแตกต่างผู้เรียนก็กาลังใชส้ ง่ิ ท่เี ป็นแนวคิดเชิงนามธรรม
4. การคดั แยกรายละเอยี ดปลีกย่อย
ภาพที่ 4 แผนภาพรถไฟฟ้า
ที่มา https://computersciencewiki.org/index.php/File:Screen_Shot_2017-08-05_at_06.29.05.png,
MacKenty
15
แผนภาพท้ังสองให้ข้อมูลเก่ียวกับสถานีรถไฟฟ้าและสถานีเชื่อมต่อ แผนภาพด้านซ้ายมือจะแสดง
รายละเอียดของสถานี ช่ือสถานน้ี และจุดเช่ือมต่อสถานี แผนภาพด้านขวาจะลดทอนรายละเอียดของสถานีแสดง
เฉพาะข้อมูลเส้นทางและการเชื่อมต่อของรถไฟฟ้า ในการใช้แผนภาพทั้งสอง หากผู้ใช้ต้องการทราบตาแหน่งของ
สถานีรถไฟฟ้าแผนภาพด้านซ้ายมือจะเหมาะสมกว่าแผนภาพขวามือ แต่สาหรับผู้ใช้งานเพ่ือการเดินทางใน
ชีวิตประจาวันแผนภาพด้านขวามือจะเหมาะสมกว่า ดังน้ันแบบจาลองท่ีดีต้องมีรายละเอียดท่ีเหมาะสมกับความ
ต้องการการใชง้ านของผูใ้ ช้
5. การอธิบายปญั หาโดยใช้รายละเอียด และแบบซ่อนรายละเอียด
ปญั หาประกอบดว้ ยรายละเอียดท่ีหลากหลายโดยมีทัง้ รายละเอียดทีจ่ าเป็น และไมจ่ าเป็นต่อการแก้ปัญหา
การคิดเชิงนามธรรมเป็นการคัดแยกรายละเอียดท่ีไม่จาเป็นออกจากปัญหาท่ีพิจารณาอยู่ ทาให้สามารถเข้าใจ
วิเคราะห์ และออกแบบวิธีการแก้ปัญหาในภาพรวมได้ง่ายขึ้น การคิดเชิงนามธรรมยังรวมถึงการซ่อนรายละเอียด
โดยการแทนกลุ่มของปัญหาข้ันตอนและกระบวนการที่มีรายละเอียดปลีกย่อยหลายขั้นตอน ให้เป็นขั้นตอนเดียว
เพื่อให้สามารถอธบิ ายวธิ แี ก้ปัญหาได้กระชบั ขึน้ ดงั ตวั อย่างต่อไปน้ี
ภาพที่ 5 บ้าน
การอธิบายปญั หาโดยใช้รายละเอียด
วาดตวั บา้ นด้วยสเ่ี หล่ียมจตั รุ ัสสีเหลือง ขนาดดา้ นละ 50 หน่วย ต้ังอยูต่ าแหนง่ มุมลา่ งซา้ ยที่พกิ ัด (120,90)
ด้านบนของส่เี หล่ยี มวาดหลังคาเปน็ รูปสามเหล่ียมด้านเท่าสีเขยี วขนาดดา้ นละ 50 หน่วย
16
การอธบิ ายปญั หาแบบซ่อนรายละเอียด
ขนาด 50 หน่วย ตัวบ้านสีเหลือง หลงั คาสีเขียว ต้งั อยตู่ าแหน่ง (120,90)
แนวคิดนามธรรมจึงเป็นองค์ประกอบหน่ึงของแนวคิดเชิงคานวณ ซึ่งใช้กระบวนการคัดแยกคุณลักษณะที่
สาคัญออกจากรายละเอียดปลีกย่อย ในปัญหาหรืองานท่ีกาลังพิจารณา เพ่ือให้ได้ข้อมูลท่ีจาเป็นและเพียงพอใน
การแก้ปัญหา แนวคิดนามธรรมบางอย่างอาจจะอยู่ในรูปแบบของรูปร่างหรือรูปทรง ความแตกต่าง ความเหมือน
รูปแบบอักขระ การแทนสัญลักษณ์ต่าง ๆ เช่น การแทน 0 1 ของเลขฐานสอง การคัดแยกรายละเอียดปลีกย่อยท่ี
ไมจ่ าเปน็ ต่อการตัดสินใจหรือการใช้งาน เชน่ การใชแ้ ผนที่ การคานวณระยะทาง การวาดแผนทีการเดินทางไป ณ
จุดหมายใดจุดหมายหนึ่ง การเดินทางด้วยรถไฟฟ้า หรือแม้แต่การอธิบายปัญหาโดยใช้รายละเอียดและแบบซ่อน
รายละเอียด ลว้ นเปน็ แนวคดิ เชงิ นามธรรมทอ่ี ยใู่ นชีวิตประจาวนั ท้ังส้นิ
การพจิ ารณารปู แบบ (Pattern Recognition)
เป็นการหารปู แบบซึง่ เป็นทักษะการหาความสัมพันธ์ทีเ่ กี่ยวข้อง แนวโน้ม และลกั ษณะ ทั่วไปของสิง่ ต่าง ๆ
โดยท่ัวไปแล้วผู้เรียนจะเริ่มพิจารณาปัญหาหรือสิ่งที่สนใจ จากนั้นอาจใช้ทักษะการแยกส่วนประกอบทาให้ได้
องค์ประกอบภายในอื่น ๆ แล้วจึงใช้ทักษะการหารูปแบบเพื่อสร้างความเข้าใจระหว่างองค์ประกอบเหล่าน้ัน โดย
พิจารณาว่าเคยพบปัญหาลักษณะนี้มาก่อนหรือไม่ หากมีรูปแบบของปัญหาที่คลา้ ยกันสามารถนาวิธีการแก้ปัญหา
นั้นมาประยุกต์ใช้ และพิจารณารูปแบบปัญหาย่อยซ่ึงอยู่ภายในปัญหาเดียวกันว่ามีส่วนใดที่เหมือนกัน เพื่อใช้
วิธีการแก้ปัญหาเดียวกันได้ ทาให้จัดการกับปัญหาได้ง่ายข้ึน และการทางานมีประสิทธิภาพเพิ่มข้ึน เช่น ใน
ส่วนประกอบของจักรยานผู้เรียนจะพบว่าระบบขับเคล่ือนประกอบด้วยเฟืองหน้า และเฟืองหลังเชื่อมกันด้วยโซ่
จักรยานมีลักษณะเหมือนระบบรอก ดังน้ัน ถ้านักเรียนทราบถึงคุณสมบัติการทดแรงของระบบรอกดังกล่าว
นักเรียนก็จะเข้าใจการทดแรงของระบบขับเคล่ือนของจักรยาน เช่นเดียวกัน ในกรณี การหารูปแบบเกิดขึ้นเมื่อ
ผเู้ รียนเปรยี บเทยี บส่ิงท่สี นใจกบั สง่ิ อน่ื ทีเ่ คยทราบมาก่อน
17
ภาพท่ี 1 เฟืองหน้าและเฟอื งหลงั
http://www.zeedbike.com/article/28/จักรยานหลายเกียร์, zeedbike
แบบรูป (Pattern)
เป็นการแสดงความสัมพันธ์ของสิ่งต่าง ๆ ที่มีลักษณะสาคัญบางอย่างร่วมกันอย่างมีเง่ือนไข ซึ่งสามารถ
อธิบายความสัมพันธ์เหล่าน้ันได้โดยใช้การสังเกต การวิเคราะห์ หาเหตุผลสนับสนุนจนได้บทสรุปอันเป็นท่ียอมรับ
ได้ แบบรปู นับเปน็ ปัจจัยพ้ืนฐานอนั หนง่ึ ในการช่วยคดิ แกป้ ญั หาต่าง ๆ ในชีวติ ประจาวันโดยท่ีเราได้เคยพบเห็นและ
ไดผ้ ่านการใชก้ ระบวนการคิดวเิ คราะห์ด้วยเหตดุ ว้ ยผลกบั แบบรูปในลักษณะตา่ ง ๆ กันมาแล้ว แบบรูปทจี่ ะกล่าวถึง
นี้เป็นแบบรูปในลักษณะต่าง ๆ เพ่ือให้เห็นรูปแบบของการจัดลาดับ และการกระทาซ้าอย่างต่อเนื่องเพ่ือจะได้ใช้
การสังเกต การวิเคราะห์ การให้เหตุผลในการบอกความสัมพันธข์ อง ส่ิงต่าง ๆ ที่พบเห็นได้อย่างถูกต้องจนถึง
ขนั้ สรปุ เป็นกฎเกณฑ์
ภาพที่ 2 ความสัมพนั ธ์ของแบบรปู
http://www.tup.ac.th/tup/learning, นาถลดา มนต์ทอง.
18
โดยทั่วไปในคณิตศาสตร์จะพบเห็นการใช้แบบรูปในเร่ืองของจานวน รูปภาพ รูป เรขาคณิตจากแบบรูป
ของจานวนเราสามารถเขียนแสดงความสัมพันธ์โดยใช้ตัวแปร และสมบัติของการเท่ากันสร้างสมการเพื่อใช้
แก้ปัญหาได้ จากเงื่อนไขข้างต้น สรุปได้ว่า แบบรูปจึงเป็นรูปร่าง หรือลักษณะของส่ิงต่าง ๆ ท่ีนามาประกอบกัน
ตามความสมั พนั ธร์ ะหว่างสิง่ เหลา่ นัน้
ในทางวิทยาการคานวณ การหารูปแบบจึงเป็นการหารูปแบบท่ีเหมือนและแตกต่างกันระหว่างส่ิงของ
ต่าง ๆ ที่สนใจหลายชิ้นการพิจารณารูปแบบน้ีจะช่วยระบุองค์ประกอบสาคัญร่วมกันของสิ่งของเหล่าน้ันได้ซ่ึงจะ
เป็นพื้นฐานในการสร้างความเข้าใจเชิงนามธรรม เช่น เมาส์จะเห็นว่าเมาส์นั้นมีรูปลักษณ์ภายนอกที่แตกต่างกัน
ออกไปแต่สังเกตได้ว่ารูปแบบการใช้งานน้ันเหมือนกัน คือสามารถบังคับตาแหน่งตัวชี้ได้โดยการขยับเมาส์และใช้
กดหรือสัมผสั บนปมุ่ เมาส์เพอ่ื กระทาการสงิ่ ใดสงิ่ หนึง่ ตามท่ีโปรแกรมไว้
ในการเขียนโปรแกรมแบบ Blockly ด้วยโปรแกรม Scratch หากเราต้องการสร้างรูปบันไดเป็นข้ัน ๆ 5
ขนั้ หากเราใชค้ าสง่ั ดังรปู ท่ี 3 เราจะต้องเขียนคาสั่งดังกล่าว ถงึ 5 ครงั้ ดงั รูปท่ี 4
ภาพท่ี 3 การเขยี นโปรแกรมแบบ Blockly
ภาพที่ 4 สร้างรปู บนั ไดเป็นขั้น ๆ 5 ขน้ั
19
เมอื่ เราประยุกต์การพจิ ารณารปู แบบสาหรบั การเขยี นโปรแกรมดังกลา่ ว แล้วใช้คาส่ัง Repeat ช่วย ดงั รูป
ท่ี 5 ในการเขียนโปรแกรม ผลปรากฏวา่ แทนทีเ่ ราจะต้องเขียนโปรแกรมดังรูปที่ 3 ซา้ กนั ถงึ 5 ครงั้ เราสังเกตเห็น
ว่า รูปแบบมีลักษณะความสัมพันธ์ที่เก่ียวข้อง โดยใช้คาสั่ง Repeat และนารูปแบบโปรแกรมดังรูปท่ี 3 เพียง 1
คร้ัง ก็จะได้ผลลพั ธ์เชน่ เดยี วกนั และทาใหโ้ ปรแกรมสั้นลงอกี ด้วย
ภาพท่ี 5 สร้างรูปบนั ไดเปน็ ข้ัน ๆ 5 ข้ัน โดยใชค้ าส่งั Repeat
ดังนั้นการพิจารณารูปแบบ เปน็ การหารูปแบบซงึ่ เป็นทักษะการหาความสัมพนั ธ์ที่เก่ียวข้อง แนวโนม้ และ
ลักษณะ ท่ัวไปของส่ิงต่าง ๆ การหารูปแบบเพื่อสร้างความเข้าใจระหว่างองค์ประกอบเหล่าน้ัน เช่น การจัด
หมวดหมู่สัตว์ที่คล้ายคลึงกัน ให้อยู่ในสปีชีส์เดียวกัน เพ่ือให้ง่ายต่อการศึกษา การหาพฤติกรรมการบริโภคของคน
ว่านิยมซื้ออะไร ช่วงเวลาไหน มีรูปแบบพฤติกรรมซ้า ๆ อะไรบ้าง ความสัมพันธ์ของเฟืองหน้า และเฟืองหลัง ของ
รถจักรยานทเ่ี ชื่อมกนั ด้วยโซจ่ ักรยานมีลักษณะเหมือนระบบรอก ส่งิ ของเช่นมาสน์ ้ันมีรูปลักษณภ์ ายนอกท่ีแตกต่าง
กันออกไปแต่สังเกตได้ว่ารูปแบบการใช้งานนั้นเหมือนกัน การเขียนโปรแกรมที่ทาซ้า ๆ กันหลาย ๆ ครั้ง จะมี
ลกั ษณะรูปแบบท่ีเหมือนกัน รูปแบบของปญั หาที่คล้ายกันสามารถนาวธิ ีการแกป้ ัญหามาประยุกต์ใช้ เพอ่ื ใช้วิธีการ
แก้ปญั หาเดียวกันได้
การแกป้ ัญหา
ในการดาเนนิ ชวี ิตประจาวันเรามักประสบกับปัญหาต่าง ๆ เช่น ดา้ นการเรียน ด้านการทางาน เมอ่ื เราเจอ
ปัญหา มนุษย์มักจะดาเนินวิธีการแก้ปัญหาด้วยรูปแบบต่าง ๆ ตามบริบทของปัญหานั้น ๆ โดยแต่ละวิธีการอาจ
20
เหมือนหรือแตกต่างกัน ท้ังนี้ขึ้นอยู่กับความรู้ ความสามารถ และประสบการณ์ของแต่ละบุคคล ได้มีการนาวิธีการ
แกป้ ญั หาตา่ ง ๆ มาวเิ คราะห์และสามารถแกป้ ัญหานั้นได้ การนาหลกั และวธิ ีการแก้ปัญหาด้วยวธิ ีการคอมพวิ เตอร์
โดยการนาภาษาโปรแกรมคอมพิวเตอร์และเคร่อื งมือต่าง ๆ มาชว่ ยในการแก้ปญั หา นั้นมรี ายละเอยี ดดงั น้ี
หลกั การและความหมายการแกป้ ญั หา
การแก้ปัญหา หมายถึงกระบวนการการแก้ปัญหาอย่างเป็นระบบ (Systematically) และมีประสิทธิภาพ
(Efficiently) สามารถแก้ปัญหาได้รวดเร็ว ใช้ทรัพยากรน้อย โดยศึกษาถึงสาเหตุที่มาของปัญหา ซึ่งจะมีลักษณะ
แตกต่างกัน และคิดค้นหาวิธีการท่ีเหมาะสมที่สุดเพื่อจะแก้ไข การคิดหาวิธีการโดยการศึกษาหาความรู้จากแหล่ง
ต่าง ๆ แล้วจึงตัดสินใจเลือกวิธีที่ดีที่สุดในการตัดสินใจน้ัน นอกจากวิธีการแก้ปัญหาท่ียกตัวอย่างมาซึ่งได้แก่
วิธีการลองผดิ ลองถูก การใชเ้ หตผุ ล การใช้วธิ ขี จัด ยงั มวี ธิ กี ารแก้ปัญหาอกี มากมายทผ่ี ู้แก้ปัญหาสามารถเลือกใช้
ให้เข้ากับตัวปัญหาและประสบการณ์ของผู้แก้ปัญหาเอง แต่อย่างไรก็ตาม วิธีการเหล่าน้ันล้วนมีขั้นตอนท่ี
คล้ายคลึงกัน และจากการศึกษาพฤติกรรมในการเรียนรู้และแก้ปัญหาของมนุษย์พบว่า โดยปกติมนุษย์มี
กระบวนการในการแก้ปัญหา ได้แก่ การวิเคราะห์และกาหนดรายละเอียดของปัญหา การเลือกเคร่ืองมือและ
ออกแบบขัน้ ตอนวิธี การดาเนินการแก้ปญั หา การตรวจสอบและการปรับปรงุ
ภาพที่ 1 กระบวนการในการแกป้ ญั หา 4 ขัน้ ตอน
ท่มี า https://pixabay.com/th/illustrations/ปญั หา-การแกป้ ัญหา-ช่วยให้-3303396, Geralt
ขนั้ ตอนการแก้ปัญหา
1.การวิเคราะหแ์ ละกาหนดรายละเอียดของปญั หา
21
การวเิ คราะห์และกาหนดรายละเอยี ดของปัญหา (State the problem) วิเคราะห์และกาหนดรายละเอียด
ของปัญหา จุดประสงค์ของข้ันตอนนี้ คือ เป็นการทาความเข้าใจเกี่ยวกับรายละเอียดเง่ือนไข ข้อกาหนด รวมถึง
ข้อจากัดต่าง ๆ ของปัญหา ข้อมูลท่ีจาเป็นในการแก้ปัญหา ตรวจสอบว่ามีข้อมูลเพียงพอหรือไม่ จะหาข้อมูล
เพ่ิมเติมให้ครบถ้วนต่อการใช้แก้ปัญหาได้อย่างไร ข้อมูลผลลัพธ์ท่ีได้คืออะไร และจะตรวจสอบความถูกต้องของ
ผลลพั ธ์ทไี่ ดอ้ ย่างไร ขัน้ ตอนนีเ้ ป็นขนั้ ตอนแรกสดุ กอ่ นทีจ่ ะลงมือแก้ปัญหา แตผ่ ้แู กป้ ัญหามักจะมองขา้ มความสาคัญ
ของขั้นตอนน้ีอยเู่ สมอ โดย องค์ประกอบในการวเิ คราะห์ปญั หามดี งั น้ี
1. การระบุข้อมูลออก (Output Specification) ต้องพิจารณาเป้าหมาย หรือวัตถุประสงค์ของงานว่า
ต้องการผลลัพธ์อย่างไร โดยคานึงถึงผู้ใช้เป็นหลัก เป็นสิ่งท่ีโจทย์ต้องการในการแก้ปัญหาด้วยคอมพิวเตอร์
จาเป็นต้องระบุให้ชัดเจนว่าส่ิงท่ีต้องการให้เป็นผลลัพธ์ของปัญหาคืออะไร และต้องการให้แสดงออกในรูปแบบใด
เช่น การประมวลผลข้อมูลการเบิกถอนเงินจากเครื่องเอทีเอ็ม ต้องมีการแสดงข้อมูลออกเป็นจานวนเงินท่ีถอนไป
และจานวนเงนิ คงเหลอื ในบญั ชี อีกทั้งยงั ต้องออกแบบการจัดวางข้อมูลเหลา่ นเี้ พือ่ พิมพล์ งในใบบันทกึ รายการด้วย
2. การระบุข้อมูลเข้า (Input Specification) ต้องทราบว่ามีข้อมูลอะไรบ้างท่ีต้องป้อนเข้าสู่ระบบ
คอมพิวเตอร์ ข้อมูลเร่ิมต้นหรือเงื่อนไขท่ีโจทย์กาหนดมาให้ตง้ั แต่แรก ในการแก้ปัญหา ผู้แก้ปัญหาจะต้องใช้ข้อมลู
เหล่าน้ีในการประมวลผู้เพ่ือให้ได้ผลลัพธ์ตามท่ีต้องการ ตัวอย่าง เช่น การเบิกถอนเงินด้วยบัตรเอทีเอ็มข้างต้น ผู้
ถอนเงนิ ต้องมีขอ้ มลู ระบตุ ัวตนว่าเปน็ เจ้าของบัญชีตวั จริง ได้แก่ บตั รเอทเี อ็ม และรหสั ประจาตัว 4 หลักและยังต้อง
ระบขุ อ้ มูลใหค้ รบถ้วนวา่ ตอ้ งการเบกิ ถอนจากบญั ชใี ดเป็นจานวนเงนิ เทา่ ใด เป็นต้น
3. กาหนดวิธีการประมวลผล (Process Specification) ต้องทราบวิธีการประมวลผล หรือวิธีคิดให้ได้
ผลลพั ธต์ ามต้องการ
2. การเลอื กเครอื่ งมอื และออกแบบขัน้ ตอนวธิ ี
เป็นการคิดค้นกระบวนการต่าง ๆ ท่ีเป็นลาดับขั้นตอน ซ่ึงต้องอาศัยประสบการณ์และความรู้ของผู้
แก้ปัญหา โดยอาจนาวิธีท่ีเคยแก้ปัญหา หรือค้นหาวิธีการอื่นแล้วนามาประยุกต์เข้ากับปัญหาที่กาลังแก้ไข
เคร่ืองมือที่ใช้ในการวางแผนแก้ไขปัญหาสาหรับการพัฒนาโปรแกรม อาจเลือกใช้รหัสลาลอง หรือผังงาน โดย
วธิ กี ารแกป้ ัญหาแบบน้ี เรยี กกว่า “ขน้ั ตอนวธิ หี รืออลั กอรทิ มึ (algorithm)”
สาหรับปญั หาทมี่ ขี นั้ ตอนในการแก้ปัญหาอย่างซับซ้อน หรือต้องมกี ารแกป้ ัญหาในลักษณะเดิมซ้าอกี หลาย
ครั้ง จาเป็นต้องใช้คอมพิวเตอร์เป็นอุปกรณ์ในการแก้ปัญหา โดยเขียนโปรแกรมเพื่อรับข้อมูลเข้าไปประมวลผล
22
และยงั ต้องเลอื กว่าจะใช้โปรแกรมคอมพิวเตอร์ภาษาใด ซงึ่ ข้ึนอย่กู บั ความคุ้นเคยในการใชง้ านของผเู้ ขียนโปรแกรม
และลกั ษณะเฉพาะของแต่ละภาษาทเ่ี หมาะสมกบั ปัญหาน้ัน ๆ
ในการแก้ปัญหาโดยใช้คอมพิวเตอร์น้ัน การออกแบบวิธีแก้ปัญหาอย่างเป็นข้ันตอนและง่ายต่อการทา
ความเข้าใจสาคัญมาก เพราะจะทาให้สามารถเขยี นโปรแกรมจากขน้ั ตอนทไ่ี ดอ้ อกแบบไวอ้ ย่างงา่ ยดาย เคร่ืองมือท่ี
ใช้เพื่อการออกแบบข้ันตอนวิธี เช่น รหัสลาลอง (Pseudo code) ซึ่งเป็นการจาลองข้ันตอนวิธีแก้ปัญหา โดยการ
อธิบายด้วยคาพูดที่เข้าใจได้ง่ายเป็นขั้น ๆ หรือผังงาน (flowchart) ซึ่งเป็นการใช้สัญลักษณ์ในการแสดง
รายละเอียดและลาดับของแต่ละข้ันตอนที่ใช้แก้ปัญหา ข้อดีอีกประการหนึ่งของการใช้เครื่องมือเหล่าน้ีชว่ ยในการ
ออกแบบวิธีแก้ปัญหาคือ จะทาให้สามารถตรวจสอบความถูกต้อง หาจุดผิดพลาด และแก้ไขขั้นตอนในการ
แก้ปัญหาที่ซับซ้อนได้รวดเร็ว นักเขียนโปรแกรมจึงควรฝึกฝนการใชง้ านเครื่องมือเหล่านี้ให้เช่ยี วชาญ ตัวอย่างการ
เขียนรหัสลาลองและผงั งาน
3. การดาเนนิ การแกป้ ญั หา
การดาเนินการแก้ปัญหา (Implementation) หลังจากที่ได้ออกแบบขั้นตอนวิธีเรียบร้อยแล้ว ข้ันตอนนี้
เป็นขั้นตอนที่ต้องลงมือแก้ปัญหาโดยใช้เครื่องมือที่ได้เลือกไว้ หากการแก้ปัญหาดังกล่าวใช้คอมพิวเตอร์เข้ามา
ช่วยงาน ข้ันตอนน้ีก็เป็นการใช้โปรแกรมสาเร็จ หรือใช้ภาษาคอมพิวเตอร์เขียนโปรแกรมแก้ปัญหา ข้ันตอนนี้ต้อง
อาศัยความรู้เก่ียวกับเครื่องมือท่ีเลือกใช้ซ่ึงผู้แก้ปัญหาต้องศึกษาให้เข้าใจและเชี่ยวชาญ ในการดาเนินการอาจพบ
แนวทางทดี่ กี ว่าทอ่ี อกแบบไว้ ผูแ้ ก้ปัญหากส็ ามารถปรับเปลยี่ นได้
4. การตรวจสอบและปรับปรงุ
การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแก้ปัญหาแล้ว ต้องตรวจสอบให้แน่ใจว่า
วิธีการน้ีให้ผลลัพธ์ที่ถูกต้อง โดยผู้แก้ปัญหาต้องตรวจสอบว่าข้ันตอนวิธีที่สร้างขึ้นสอดคล้องกับรายละเอีย ดของ
ปัญหา ซึ่งได้แก่ ข้อมูลเข้า และข้อมูลออก เพื่อให้มั่นใจว่าสามารถรองรบั ข้อมูลเข้าได้ในทุกกรณี อย่างถูกต้องและ
สมบรู ณ์ ในขณะเดยี วกนั ก็ตอ้ งปรับปรงุ วธิ กี ารเพอ่ื ให้การแกป้ ัญหานไ้ี ด้
ดังน้ัน การแก้ปัญหา จึงเป็นกระบวนการท่ีเป็นระบบขั้นตอนในการแก้ปัญหาใดปัญหาหน่ึง โดยใช้วิธีการ
ดาเนินการแก้ปัญหาด้วยรูปแบบต่าง ๆ ด้วยกระบวนการแก้ปัญหา 4 ขั้นตอน ได้แก่ การวิเคราะห์และกาหนด
รายละเอียดของปัญหา การเลือกเครื่องมือและออกแบบข้ันตอนวิธี การดาเนินการแก้ปัญหา การตรวจสอบและ
การปรับปรุง ซ่ึงรายละเอียดได้กล่าวไปแล้วนั้น จะทาให้เราสามารถแก้ปัญหาได้อย่างเป็นระบบ ตามขั้นตอนวิธี
และไดผ้ ลลัพธท์ ีด่ ที ส่ี ุด
23
การเขยี นรหัสลาลองและการเขียนผงั งาน
เป็นการคิดค้นกระบวนการต่าง ๆ ท่ีเป็นลาดับขั้นตอน ซ่ึงต้องอาศัยประสบการณ์และความรู้ของผู้
แก้ปัญหา โดยอาจนาวิธีท่ีเคยแก้ปัญหา หรือค้นหาวิธีการอ่ืนแล้วนามาประยุกต์เข้ากับปัญหาที่กาลังแก้ไข
เคร่ืองมือท่ีใช้ในการวางแผนแก้ไขปัญหาสาหรับการพัฒนาโปรแกรม อาจเลือกใช้รหัสลาลอง หรือผังงาน โดย
วิธีการแก้ปัญหาแบบนี้ เรียกว่า ขั้นตอนวิธีหรืออัลกอริทึม โดยเฉพาะรหัสลาลองซ่ึงเป็นเคร่ืองมือหนึ่งที่ช่วยให้ผู้
แก้ปัญหาสามารถแก้ปัญหาได้สาเรจ็
รหัสลาลอง
รหสั ลาลอง (Pseudo code) เปน็ คาบรรยายท่ีเขยี นแสดงข้นั ตอนวิธี (algorithm) ของการเขียนโปรแกรม
โดยใช้ภาษาที่กะทัดรัด สื่อสารกับโปรแกรมเมอร์ผู้เขียนโปรแกรม โดยอาจใช้ภาษาท่ีใช้ทั่วไปและอาจมีภาษาที่ใช้
ในการเขียนโปรแกรมประกอบ แต่ไม่มีมาตรฐานแน่นอนในการเขียนรหัสลาลอง และไม่สามารถนาไปทางานบน
คอมพิวเตอร์โดยตรงเพราะไม่ใช่คาสั่งในภาษาคอมพวิ เตอร์ และไมข่ ้ึนกบั ภาษาคอมพวิ เตอรภ์ าษาใดภาษาหนึ่ง
หลกั เกณฑ์การเขยี นรหสั ลาลอง
มีการสรปุ หลักเกณฑ์ ในการเขียนรหัสลาลองดังน้ี
1. ถ้อยคาหรือประโยคคาสั่ง (statement) ใหเ้ ขียนอยู่ในรูปแบบของภาษาอังกฤษอยา่ งงา่ ย
2. ในหนง่ึ บรรทดั ใหเ้ ขยี นประโยคคาสัง่ เพยี งคาส่งั เดียว
3. ควรใช้ยอ่ หนา้ ใหเ้ ป็นประโยชน์เพ่ือแยกคาเฉพาะ (Keywords) ได้อย่างชัดเจน รวมถงึ จดั โครงสรา้ งการ
ควบคุมใหเ้ ป็นสดั สว่ น ซึง่ การกระทาดังกลา่ วจะทาใหอ้ า่ นง่าย
4. แต่ละประโยคคาส่ังให้เขียนลาดับจากบนลงล่างโดยมีเพียงทางเข้าทางเดียวและมีทางออกทางเดียว
เทา่ นน้ั
5. กลุ่มของประโยคคาสั่งต่าง ๆ อาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องกาหนดช่ือโมดูล
เหล่านั้นด้วย เพอ่ื ให้สามารถเรียกใช้โมดูลเหลา่ นน้ั ได้
ตวั อยา่ งการเขียนรหสั ลาลอง (Pseudo Code)
อัลกอรทิ ึม (Algorithm)Algorithm การหาพ้นื ท่สี ามเหล่ียม Pseudocodes Algorithm triangle
เร่มิ ตน้ START
24
รับคา่ ความยาวของฐานมาเกบ็ ในตัวแปร x READ X
รบั คา่ ความยาวของสงู มาเก็บในตวั แปร Y READ Y
คานวณหาพืน้ ท่ี Compute ARRAY =(X"Y)/2
แสดงผลพื้นท่ี Print ARRAY
จบ END
ประโยชน์ของการเขียนรหัสลาลอง
1. เป็นเคร่ืองมือในการกาหนดโครงรา่ งกระบวนการทางานของการเขยี นโปรแกรมแตล่ ะโปรแกรม
2. เป็นต้นแบบในการทบทวน ปรับปรุงแก้ไข และพัฒนาโปรแกรมของโปรแกรมเมอร์ และนักวิเคราะห์
ระบบ
3. เปน็ ตัวกาหนดงานเขยี นโปรแกรม เพือ่ ให้โปรแกรมเมอรน์ าไปพัฒนาเป็นโปรแกรมคอมพิวเตอร์ เพอ่ื ส่ัง
ให้ คอมพวิ เตอรท์ างานตามกระบวนการท่ีไดจ้ าลองกระบวนการจริงไว้ในรหัสลาลอง
รหัสลาลองจึงมีความสาคัญต่อการแก้ปัญหาเป็นตัวแทนของอัลกอริทึม โดยมีถ้อยคาหรือประโยคคาสั่งที่
เขียนอยู่ในรูปแบบของภาษาอังกฤษที่ไม่ข้ึนกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง โดยการเขียนรหัสลาลอง
จะต้องคานึงถึงหลักเกณฑ์ของการเขียนรหัสลาลองคาสั่งให้เขียนลาดับจากบนลงล่างและมีเพียงทางเข้าทางเดียว
และมีทางออกทางเดียว รหัสลาลองจึงเป็นเครื่องมือในการกาหนดโครงร่างกระบวนการทางานเป็นตัวกาหนดงาน
เขยี นโปรแกรมเพอ่ื การพัฒนาโปรแกรมตอ่ ไป
การเขยี นผงั งาน
ความหมายของการเขยี นผังงาน
ผังงาน (Flowchart) คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนข้ันตอน คาอธิบาย
ข้อความหรือคาพูด ท่ีใช้ในอัลกอริทึม (Algorithm) เพราะการนาเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่าง
ผเู้ กย่ี วข้อง ด้วยคาพดู หรือ ข้อความ ทาไดย้ ากกวา่ เม่อื ใชร้ ูปภาพ หรอื สัญลักษณ์
ประเภทของผงั งาน
ในการเขยี นผังงานน้ันสามารถจาแนกแบบของผังงานออกเปน็ 2 แบบใหญ่ ๆ คือ
25
1. ผังงานระบบ (System Flowchart) หรือผังงานในระดับกว้าง ซึ่งจะเป็นการแสดงข้ันตอนการทางาน
ของระบบท้ังหมด ผังงานระบบมักจะมีลักษณะย่นย่อ รวบรัด และแสดงเฉพาะตัวงานท่ีจะต้องทาในระบบเท่าน้ัน
ไม่มุ่งเน้นรายละเอียดในการปฏบิ ัติ ไม่ได้แสดงว่างานนั้นจะทาอย่างไร ความสาคัญของผงั งานระบบอยูท่ ี่การแสดง
ความสัมพันธ์ระหว่างงานต่าง ๆ ในระบบว่ามีความสัมพันธ์กันอย่างไร ตั้งแต่เร่ืองของวัสดุอุปกรณ์ บุคลากร และ
หน่วยงานท่ีเกีย่ วขอ้ ง
2. ผังงานโปรแกรม (Program Flowchart) หรือผังงานระดับละเอียด เป็นภาพแผนผังที่แสดงลาดับ
ขั้นตอนในการทางานของโปรแกรม ซึ่งจะแยกย่อยมาจากผังงานระบบ คือในแต่ละข้ันตอนจะแสดงการทางานแต่
ละคาสั่งโดยละเอยี ด ใส่วิธีการ และจัดลาดบั ข้ันตอนของโปรแกรม สาหรับโปรแกรมนนั้ ๆ ต้งั แต่เริม่ ตน้ จากการรับ
ข้อมูล การประมวลผล และไปจนถึงการแสดงผลลัพธ์ท่ีได้จากการประมวลผลที่ผู้เขียนโปรแกรมกาลังทางานอยู่
ไม่ไดแ้ สดงความสัมพันธร์ ะหวา่ งโปรแกรมนั้นกบั โปรแกรมอ่ืน ๆ
สัญลักษณ์ผังงานโปรแกรม ( Program Flowchart )
การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ ท่ีเรียกว่า สัญลักษณ์ ANSI
( American National Standards Institute ) ในการสร้างผังงาน ดงั ตัวอย่างท่ีแสดงในรปู ต่อไปนี้
26
ภาพที่ 1 สัญลักษณ์ ANSI
ที่มา ฉัตรพงศ์ ชูแสงนิล
ลกั ษณะโครงสรา้ งของผงั งาน
ผงั งานทั่วไปจะประกอบดว้ ยโครงสร้างพน้ื ฐาน 3 รปู แบบต่อไปน้คี อื
1. โครงสร้างแบบเปน็ ลาดบั (Sequence structure)
2. โครงสรา้ งแบบมกี ารเลอื ก (Selection structure)
3. โครงสร้างแบบทาซา้ (Iteration structure)
27
โครงสรา้ งแบบเป็นลาดบั (Sequence Structure)
เป็นโครงสร้างพ้ืนฐานของผังงาน และเป็นลักษณะข้ันตอนการทางานท่ีพบมากที่สุด คือทางานทีละ
ขั้นตอนลาดับ
ภาพท่ี 2 โครงสร้างแบบเป็นลาดับ
ท่มี า https://kropomprograming.files.wordpress.com › flowchartandprogram, kropomprograming
โครงสรา้ งแบบมีตวั เลือก (Selection Structure)
ภาพท่ี 3 โครงสรา้ งแบบมีตวั เลือก
ที่มา https://kropomprograming.files.wordpress.com › flowchartandprogram, kropomprograming
28
โครงสร้างการทางานแบบมีการเลือกมีรูปแบบท่ีซับซ้อนกว่าโครงสร้างแบบเป็นลาดับรูปแบบท่ีง่ายท่ีสุดของ
โครงสร้างแบบน้ีคือ การเลือกแบบมีทางออก 2 ทาง ในการเลือกแบบมีทางออก 2 ทาง นี้จะมีทางออกจาก
สญั ลกั ษณก์ ารตดั สินใจเพยี ง 2 ทาง คอื ใช่หรอื ไมใ่ ช่ เท่านน้ั
โครงสร้างแบบทาซ้า (Iteration Structure)
โครงสร้างการทางานแบบทาซ้า จะทางานแบบเดียวกันซ้าไปเรื่อย ๆ ในขณะท่ียังเป็นไปตามเง่ือนไขหรือเง่ือนไข
เปน็ จรงิ จนกระทงั่ เงื่อนไขเป็นเทจ็ จงึ ทางานอืน่ ต่อไป
ภาพท่ี 4 โครงสร้างแบบทาซา้
ที่มา https://kropomprograming.files.wordpress.com › flowchartandprogram, kropomprograming
ประโยชนข์ องผงั งาน
ผังงานเป็นเครื่องมือที่ช่วยให้ลาดับข้ันตอนของโปรแกรมง่ายข้ึน จึงนิยมเขียนผังงานประกอบการเขียน
โปรแกรม ดว้ ยเหตผุ ลดงั นี้
1. การใช้ผังงานเป็นรูปแบบท่ีไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ภาษาใดภาษาหน่ึง ทาให้เรียนรู้และทาความ
เขา้ ใจไดง้ า่ ย
2. ผังงานช่วยลาดับเป็นขั้นเป็นตอน เน้นสื่อความหมายด้วยภาพทาให้ง่ายต่อการทาความเข้าใจ แตกต่าง
จากการใช้ข้อความหรือคาพูดอาจจะสื่อความหมายผิดไปได้
29
3. เม่ือเกิดข้อผิดพลาดในข้ันตอนการเขียนโปรแกรมจะช่วยให้ตรวจสอบความถูกต้องของลาดับข้ันตอน
และแกไ้ ขโปรแกรมได้ง่าย
4. ผังงานช่วยทาให้ผู้ท่ีมาทาต่อหรือศึกษาต่อทาความเข้าใจการทางานของโปรแกรมได้อย่างง่าย สะดวก
และรวดเร็วมากข้นึ
ดังนั้นผังงานจึงเป็นแผนภาพแสดงลาดับขั้นตอนการทางานของอัลกอริทึม เป็นเคร่ืองมือท่ีใช้การรวบรวม
จัดลาดับความคิด เพื่อให้เห็นข้ันตอนการทางานที่ชัดเจนและใช้วางแผนการทางานขั้นแรก โดยสัญลักษณ์
Flowchart แสดงถึงการทางานลักษณะต่าง ๆ เช่ือมต่อกัน โดยแบ่งประเภทของผังงานออกเป็น 2 แบบใหญ่ ๆ
ได้แก่ ผังงานระบบ และผังงานโปรแกรม สัญลักษณ์ผังงานโปรแกรมโดยใช้สัญลักษณ์ ANSI โดยลักษณะ
โครงสร้างของผงั งานจะประกอบดว้ ยโครงสร้างพื้นฐาน 3 รปู แบบ ไดแ้ ก่โครงสรา้ งแบบเป็นลาดับ โครงสร้างแบบมี
การเลือก โครงสร้างแบบทาซ้า ซึ่งจะช่วยให้ลาดับรายละเอียดของคาสั่ง เป็นภาพแผนผังที่แสดงลาดับข้ันตอนใน
การทางานของโปรแกรมได้
30
บรรณนานุกรม
ชาญวทิ ย์ ศรีอดุ ม. (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). ซเี อส อนั ปล๊ักโปรแกรมเสริมสมรรถนะและขยาย
ความสามารถของเดก็ ระดบั ประถมศึกษา. สถาบันเทคโนโลยีนานาชาตสิ ริ นิ ธร มหาวิทยาลัยธรรมศาสตร์ :
ปทมุ ธานี
31
สถาบนั สง่ เสริมการสอนวิทยาศาสตรแ์ ละเทคโนโลย.ี (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&Itemi
d=95
นาถลดา มนตท์ อง. (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). เทคโนโลยี (วทิ ยาการคานวณ). สานักพมิ พ์
จฬุ าลงกรณ์ : กรุงเทพมหานคร.
32
เจษฎา ก้องสาคร. (2562, 12 กันยายน). การเขยี นผังงาน. สืบค้นเม่อื 12 กันยายน 2562. จาก
https://www.cmarea3.go.th/2562/การเขียนผงั งาน-flowchart/
นริ ธุ อานวยศลิ ป์ (2548.) โครงสรา้ งขอ้ มูล : การเขียนโปรแกรมและการประยุกต.์ ดวงกมลสมยั : กรงุ เทพฯ.
สถาบนั สง่ เสริมการสอนวทิ ยาศาสตรแ์ ละเทคโนโลย.ี (2562). เทคโนโลยี (วทิ ยาการคานวณ). สานักพิมพ์
จฬุ าลงกรณ์ : กรุงเทพมหานคร.
โอภาส เอ่ียมสริ วิ งศ.์ (2549.). โครงสร้างขอ้ มูลเพ่ือการออกแบบโปรแกรมคอมพิวเตอร์. ซีเอ็ดยเู คชั่น :
กรงุ เทพฯ.