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