1. แนวคดิ เชงิ นามธรรม
1.1 แนวคิดเชงิ นามธรรม 1
แนวคิดเชงิ นามธรรม (Abstraction) เปน็ แนวคดิ หนึง่ ในการแกป้ ัญหา ซงึ่ องคป์ ระกอบของแนวคดิ เชงิ คำนวณ
(Computation Thinking) โดยมแี นวคิดในการแก้ไขปัญหาอย่างเปน็ ระบบและสามารถกำหนดข้นั ตอนการแกป้ ญั หาได้อย่างชดั เจน
จะเปน็ การประเมนิ ความสำคัญของรายละเอียดของปัญหา แยกแยะสว่ นท่ีเปน็ สาระสำคญั ออกจากสว่ นทีไ่ มใ่ ชส่ าระสำคญั และ
พิจารณาปัญหาโดยพจิ ารณาจดุ ทเี่ หมอื นกันของปัญหา เพื่อหาแนวคดิ รวบยอดของปัญหา
นกั เรยี นควรรู้
1 แนวคิดเชิงคำนวณ (Computation Thinking) คือ แนวคิดท่ีม่งุ เนน้ เกยี่ วกบั การคดิ เชิงตรรกะอยา่ งเป็นระบบ ซง่ึ มีองค์ประกอบ 4 แนวคดิ ยอ่ ย ดงั น้ี
1. แนวคดิ การแยกย่อย (Decomposition) เป็นการแตกปญั หาใหญใ่ หเ้ ป็นปญั หายอ่ ย เพื่อให้สามารถจัดการปัญหาได้ง่ายขนึ้
2. แนวคิดการจดจำรปู แบบ (Pattern Recognition) เป็นการกำหนดแบบแผนจากปัญหายอ่ ยตา่ ง ๆ จากปญั หาทีม่ รี ปู แบบทหี่ ลากหลาย โดยปัญหาตา่ ง ๆ
มกั มีรปู แบบท่ีคลา้ ยคลึงกนั
3. แนวคดิ เชิงนามธรรม (Abstraction) เป็นการหาแนวคิดเชงิ นามธรรมเพ่อื หาแนวคิดรวบยอดของแตล่ ะปัญหายอ่ ย เปน็ การมงุ่ เนน้ ความสำคัญของปญั หา
โดยไมส่ นใจรายละเอียดทไ่ี มจ่ ำเป็น
4. แนวคดิ การออกแบบข้ันตอน (Algorithm Design) เปน็ การออกแบบลำดับขน้ั ตอนการแก้ปญั หาดว้ ยการคิดเชงิ อัลกอริทึม ซง่ึ เป็นความคดิ พื้นฐานในการ
สร้างชดุ ของลำดบั ขั้นตอนวิธีง่าย ๆ ทีท่ ุกคนสามารถนำไปใช้แกป้ ญั หาทีม่ ลี ักษระแบบเดียวกันได้
1.2 การใชแ้ นวคิดเชิงนามธรรมเพ่ือแก้ปญั หา
1. ใช้แนวคิดเชงิ นามธรรมในการแกป้ ญั หาทางคณิตศาสตร์
หากนำแนวคิดเชงิ นามธรรมมาประยุกตใ์ ช้กบั รูปทรงเลขคณิต เช่น หากต้องการหาแนวคดิ เชิงนามธรรมของสเ่ี หลย่ี มมมุ ฉาก
สามารถกระทำได้โดยพิจารณาเฉพาะสาระสำคัญ และจุดร่วมของสีเ่ หลย่ี มของมุมฉาก ดงั แสดงในตารางด้านลา่ ง
2. ใช้แนวคิดเชงิ นามธรรมในการแก้ปญั หาทางวทิ ยาศาสตร์
เมือ่ แสงอาทิตย์สอ่ งมายังพนื้ โลก จำทำใหน้ ้ำจากแหลง่ ตา่ ง ๆ ระเหยกลายเป็นไอลอยตัวสงู ขึ้นรวมท้งั ไอน้ำทเ่ี กิดจากการคายนำ้ ของ
พชื จากการหายใจของสิ่งมชี วี ติ หรอื ของเหลวจากสง่ิ ขับถ่าย เชน่ เหงอื่ ปัสสาวะ เปน็ ตน้ ซ่งึ ไอน้ำดงั กล่าวจะลอยตวั ข้นึ สบู่ รรยากาศ
โดยไอน้ำท่รี วมตวั กนั น้ีจะมีลักษระร้อนช้นื เมอื่ ลอยตัวสงู ขึ้นไปกระทบกบั อากาศเย็นด้านบน ไอน้ำบางส่วนจะควบแน่นกลายเปน็
หยดนำ้ ขนาดเลก็ ลอยอยู่ในอากาศในรปู ของเมฆ ถ้าหยดนำ้ มีขนาดใหญ่จนอากาศรบั น้ำหนกั ไม่ได้ ก็จะตกลงมาเป็นฝนและถูกกัก
เก็บไว้ตามแหลง่ น้ำตา่ ง ๆ ซึ่งเกิดการหมนุ เวียนในลักษณะดงั ท่ีกลา่ ว
2ค.ออมัลพกิวอเตรอิทรึมอ์ เลับกอื้ องตรทิน้ มึ เป็นแก่นของวทิ ยาการคอมพิวเตอ1ร์ เปน็ ศาสตร์ที่ทำใหส้ ามารถประมวลผลแบบทลี ะขัน้ ตอน ซงึ่ ทำให้
คอมพิวเตอรส์ ามารถประมวลผลเพ่ือแก้ไขปญั หาด้วยเครื่องคอมพิวเตอร์ที่ทำงานได้รวดเรว็ และสามารถประมวลผล
ตามลำดับของคำสัง่ ท่กี ำหนดให้ได้ โดยเป็นการประมวลผลทีน่ า่ เชื่อถือ ถูกต้อง และทำการประมวลผลได้จริง อย่างไรกต็ ามการ
ประมวลผลด้วยคอมพิวเตอรท์ ก่ี ระทำโดยคอมพวิ เตอรน์ ้นั ต้องอาศยั ความเข้าใจอลั กอริทมึ คอมพวิ เตอร์ที่ดดี ้วยอัลกอริทึม
(algorithm) คือ ระเบียบวิธีหรอื ขนั้ ตอนวธิ ีทดี่ ำเนนิ การได้ดว้ ยคอมพวิ เตอร์ เพือ่ ใชใ้ นการแก้ไขปัญหา โดยเปน็ กระบวนการแกไ้ ข
ปัญหาที่สามารถอธิบายเปน็ ข้ันตอนท่ชี ัดเจนขอ้ มลู ที่ตอ้ งนำเข้า และผลลัพธ์ทไ่ี ด้จากการนำเขา้ ขอ้ มูล รวมทง้ั การดำเนนิ การตาม
ขั้นตอนและจากขอ้ มลู การนำเขา้ น้ัน อัลกอริทึมตอ้ งสามารถแกไ้ ขปญั หาโดยทวั่ ไป กล่าวคอื ตอ้ งไม่เป็นขัน้ ตอนวธิ ีเพือ่ การแกไ้ ข
ปญั หาเฉพาะเจาะจงกรณหี น่ึงกรณีใด รูปแบบการเขียนอลั กอริทมึ สามารถแบ่งได้ 3 รูปแบบ ดงั นี้
ในการแก้ปัญหาต่าง ๆ อาจมวี ธิ กี ารแก้ปญั หาหลายวธิ ี ซงึ่ เราสามารถเลอื กขัน้ ตอนวธิ กี ารแก้ปญั หาที่แตกต่างกนั ออกไป โดยขนั้
สดุ ทา้ ยผลลพั ธ์ท่ไี ด้อาจเหมอื นหรอื แตกตา่ งกนั ซ่ึงการแก้ปญั หาแบบอัลกอริทึมนนั้ จะเปน็ การแก้ท่ีมลี ำดับหรือวธิ ีการแก้ไขปัญหาใด
ปัญหาหนึง่ อยา่ งเป็นข้ันตอนและชัดเจน
นักเรยี นควรรู้
1 วิทยาการคอมพิวเตอร์ เปน็ ศาสตรท์ ่ีเก่ียวกับการศกึ ษาคน้ คว้าทฤษฎีการคำนวณสำหรบั คอมพวิ เตอร์และทฤษฎีการประมวลผล สารสนเทศ ทัง้ ดา้ นซอฟตแ์ วร์
ฮารด์ แวร์ และเครอื ขา่ ย ซง่ึ วิทยาการคอมพวิ เตอรน์ นั้ ประกอบดว้ ยหลายหวั ข้อท่เี กย่ี วกับคอมพิวเตอร์ ต้ังแต่ระดบั นามธรรมหรอื ความคดิ เชิงทฤษฎี เช่น การวเิ คราะห์
และสังเคราะหข์ นั้ ตอนวธิ ีไปจนถงึ ระดับรูปธรรม เช่น ทฤษฎีภาษาโปรแกรม ทฤษฎกี ารพฒั นาซอฟตแ์ วร์ ทฤษฎฮี าร์ดแวร์คอมพิวเตอร์ ทฤษฎีเครือ ข่าย
จากทก่ี ลา่ วมาแลว้ ว่า ผลลพั ธ์เดียวกัน จากโจทย์เดียวกนั สามารถทำได้โดยหลายวธิ ที แ่ี ตกตา่ งกัน ซงึ่ ทุกวิธขี องการหาผลลพั ธน์ ้นั คอื
อลั กอรทิ ึม
3. การเขียนอลั กอรทิ มึ ดว้ ยภาษาธรรมชาติ
ภาษาธรรมชาติ (natural language) คือ รูปแบบภาษาที่มนุษยเ์ ขา้ ใจ หรอื เปน็ ภาษามนุษยท์ ่ีใชส้ อ่ื สารกันมรี ูปแบบภาษาท่ีไม่
แนน่ อนตสาำยหตรัวับแกลาะรเตปดิน็ ตไปอ่ ตสาั่งมงาธนรครมอชมาพตวิ ขิ เตอองมร์นภุษายษต์าคามอเมชพ้อื ิวชเาตตอิ เรช์จน่ะเภปาน็ ษภาาไษทายปภระาษดิษาอ1ฐัง์ (กaฤrtษifiภciาaษl าlaจnนี gเuปa็นgดeนั) เพื่อทีใ่ ห้สามารถทำ
ความเขา้ ใจภาษามนุษยโ์ ดยคอมพวิ เตอร์ ซ่ึงเก่ียวกบั การตดิ ตอ่ สอื่ สารดว้ ยภาษาคอมพวิ เตอร์ของมนษุ ย์ เปน็ การประยกุ ต์ใช้
ภาษาศาสตรแ์ ละเครอ่ื งคอมพิวเตอร์เข้าด้วยกนั โดยจะหาวิธีใหค้ อมพวิ เตอรส์ ามารถเข้าใจความหมายของประโยค เข้าใจเรื่องของ
คำ และความหมายของคำ หลักไวยากรณ์ของประโยค ภาษาธรรมชาตจิ รงิ ๆ ล้วนเปน็ ภาษาทยี่ อมให้คอมพิวเตอรร์ ับ
ดำส่งั โดยไมค่ ำนงึ ถึงรปู แบบหรือหลกั ไวยากรณ์ของภาษาเหมือนกบั โปรแกรมภาษาอน่ื ๆ ที่ตอ้ งการมขี น้ั ตอนในการใช้คำสั่ง เช่น
การใช้คำสงั่ ให้เคร่อื งจักรทำงาน เป็นต้น
3.1 ภาษาคอมพวิ เตอร์ 2
ภาษาคอมพวิ เตอร์ คอื โปรแกรมหรือชดุ คำสง่ั ท่ีโปรแกรมเมอร์เขยี นเพอ่ื ใช้สง่ั งานตามรูปแบบและโตรงสรา้ งของภาษา
ภาษาคอมพิวเตอรม์ กี ารพฒั นาเช่นเดียวกับคอมพวิ เตอร์ สามารถแบง่ ออกเป็นยุคหรือเป็นรนุ่ ของภาษา (generation) ซึง่ ในยุคหลงั
มกี ารพฒั นาภาษาให้มีความสะดวกในการอ่านและเขยี นใหง้ า่ ยขน้ึ กวา่ ภาษาในยุคแรก เนื่องจากจะมีโครงสรา้ งภาษาใกลเ้ คียงกบั
ภาษาอังกฤษ ภาษาคอมพิวเตอร์สามารถแบ่งออกไต้เปน็ 5 ยคุ ดังน้ี
1. ยคุ ของภาษาเครื่อง (Machine language)
2. ยคุ ของภาษาแอสเซมบลี (Assembly Language)
3. ยคุ ของภาษาช้ันสูง (High level Language)
4. ยคุ ของภาษาขน้ั สงู มาก (Very High level Language)
5. ยคุ ของภาษาธรรมชาติ (National Language)
ㆍ ระดับของภาษา การใช้งานคอมพิวเตอรซ์ ่ึงเปน็ เครือ่ งมอื ทางอเิ ลก็ ทรอนิกสใ์ ห้ทำงานตามท่ีต้องการ จำเป็นตอ้ งมีการ
กำหนดภาษาสำหรับใช้ตดิ ตอ่ สั่งงานกับคอมพิวเตอร์ ภาษาคอมพิวเตอรส์ ามารถแบง่ ได้ 3 ระดบั ไดแ้ ก่ ภาษาระดับตำ่ ภาษา
ระดบั กลาง และภาษาระดับสงู
- ภาษาระดบั ต่ำ เป็นภาษาทมี่ นษุ ย์ทำความเขา้ ใจไดย้ าก เหมาะแกก่ ารเขยี นโปรแกรมควบคุมฮารด์ แวร์ซ่งึ จะทำงานได้
โดยตรงและรวดเร็ว แตไ่ มเ่ หมาะแกก่ ารใช้พฒั นาโปรแกรมตวั อย่างภาษาระดับต่ำ เช่น ภาษาเครอ่ื ง ภาษาแอสเซมบลี เป็นต้น
- ภาษาระดับกลาง เปน็ ภาษาที่มีลกั ษณะแบบโครงสรา้ ง สามารถใชบ้ นเครอ่ื งที่มีความเร็วแตกตา่ งกนั โดยไม่ตอ้ งดดั แปลง
ภาษาระดบั กลางเปน็ การนำขอ้ ดีของภาษาระดบั ต่ำกบั ภาษาระดบั สูงมาพฒั นา ดังน้ัน ภาษาระดับกลางจึงเปน็ ทน่ี ิยมใชก้ นั อยา่ ง
แพรห่ ลาย
- ภาษาระดับสูง เป็นภาษาที่เข้าใจไดง้ ่ายมกี ารใช้คำสง่ั เปน็ ภาษาองั กฤษ ซ่ึงมีลักษณะใกลเั คียงกับภาษาของมนษุ ยม์ าก การ
สงั่ ใหค้ อมพิวเตอรท์ ำงานจะต้องมีการแปลความหมายของคำสง่ั
3.2 การเขยี นอลั กอริทมึ ดว้ ยภาษาธรรมชาติ
การเขียนอลั กอรทิ มึ ด้วยภาษาธรรมชาติ คอื การบรรยายขั้นตอนการทำงานของอัลกอรทิ ึมใด ๆ โดยใชภ้ าษามนษุ ย์เพ่อื อธิบายถงึ
ลำดบั ขัน้ ตอนการทำงานของอัลกอริทึมตามลำดับการทำงานก่อนหลงั
นักเรยี นควรรู้
1. ภาษาประดิษฐ์ คอื ภาษาทม่ี นษุ ย์คดิ ค้นและสร้างข้ึนมาเอง เปน็ ภาษาทมี่ จี ุดมุง่ หมายเฉพาะเจาะจง และมีขีดจำกัดในการใชค้ ำและไวยากรณท์ ีก่ ำหนด รวมถึงมกี าร
ตคี วามหมายทชี่ ัดเจน
2. โปรแกรมเมอร์ คอื บคุ คลท่ีใชค้ วามเชีย่ วชาญในโปรแกรมเฉพาะดา้ นเขียนโปรแกรมหรอื ชุดคำสัง่ เพ่อื สื่อสารกับคอมพิวเตอร์ จนคอมพิวเตอร์เข้าใจและสามารถ
ปฏบิ ัตอิ อกมาได้ตรงตามความตอ้ งการ
4. การเขยี นอลั กอริทึมดว้ ยรหสั จำลอง
รหสั จำลอง (Pseudo code) คอื รูปแบบภาษาท่ีมโี ครงสรา้ งทีช่ ัดเจน กระชบั เพ่ือใชอ้ ธิบายขน้ั ตอนการทำงานของอลั กอรทิ ึมใด ๆ
โดยไมข่ ึน้ กบั ภาษาคอมพิวเตอรใ์ ดภาษาหน่ึง และสามารถแปลงรหสั จำลองเปน็ ภาษาคอมพิวเต1อร์ได้งา่ ย โดยรหสั จำลองสามารถใช้
รูปแบบคำส่งั ทเ่ี ปน็ ภาษาอังกฤษหรือภาษาไทยก็ได้ อีกท้ังสามารถใชค้ ำสง่ั เฉพาะท่ีมอี ยใู่ นภาษาโปรแกรมคอมพิวเตอร์มาช่วยในการ
เขียนรหัสจำลองได้ ดงั นั้น รหสั จำลองจงึ คล้ายคลึงกบั การเขยี นโปรแกรมด้วยภาษาคอมพิวเตอร์ จงึ เปน็ เครอื่ งมอื ท่นี ยิ มใช้ใน
การอธบิ ายข้นั ตอนอัลกอรทิ ึมของโปรแกรมคอมพิวเตอร์
4.1 การเขยี นอัลกอรทิ ึมด้วยรหัสจำลอง
การเขยี นอัลกอรทิ ึมด้วยรหัสจำลอง เปน็ คำสงั่ ท่ีจำลองความคิดเป็นลำดับขน้ั ตอนโดยใชส้ ญั ลักษณ์เป็นประโยคภาษาองั กฤษ รหสั
จำลองไมใ่ ชภ่ าษาโปรแกรมทางคอมพวิ เตอร์จึงไม่สามารถนำไปประมวลผลได้ และไมส่ ามารถสั่งใหค้ อมพวิ เตอรท์ ำงานตามคำสง่ั แต่
เป็นการเขียนจำลองคำส่ังจรงิ แบบยอ่ ตามอัลกอรทิ ึมของโปรแกรมระบบ เพ่อื นำไปพัฒนาเป็นการเขียนโปรแกรมภาษาคอมพวิ เตอร์
ได้
ตัวอยา่ งประโยคภาษาองั กฤษเขยี นจำลองคำสง่ั
Input a number : ใสข่ อ้ มลู นำเข้าเปน็ คา่ ตัวเลข
Find the sum of the number : คำนวณรวมค่าตวั เลขทน่ี ำเข้า
Print the sum : แสดงผลรวมของขอ้ มลู ทง้ั หมด
4.2 หลกั เกณฑ์การเขยี นรหสั จำลอง
1. ควรใช้คำสั่งเปน็ รปู แบบภาษาท่ีสั้น กระชบั และเขา้ ใจง่าย เช่น
start หมายถึง การเริ่มตน้ การทำงาน
stop หมายถึง การจบการทำงาน
2. ควรมีหมายเลขลำดบั ข้ันตอนชัดเจน
3. ไม่จำเป็นต้องมีเครื่องหมายวรรคตอน
4. รหสั จำลองต้องไม่ขึ้นกบั ภาษาคอมพิวเตอร์ภาษาใดภาษาหน่ึง
5. ในหน่งึ บรรทดั ให้มคี ำส่งั เพยี งคำส่ังเดียว
6. ในการเขยี นคำสงั่ ให้เขียนจากลงบนล่าง และมจี ุดสน้ิ สุดเพียงจดุ เดียว
นักเรยี นควรรู้
1. ภาษาคอมพิวเตอร์ คอื ภาษาที่ใช้กบั เครอื่ งคอมพวิ เตอรห์ รอื ใชเ้ พอ่ื ส่ือสารให้คอมพวิ เตอรเ์ ข้าใจ และสามารถปฏิบัติตามคำส่ังได้ ในทางคอมพวิ เตอรน์ ้นั จะตอ้ งทำการ
พฒั นาภาษาทจี่ ะสอ่ื สารระหว่างมนษุ ยก์ บั เครอื่ งคอมพวิ เตอร์ แต่ดว้ ยเหตทุ เ่ี ครอื่ งคอมพิวเตอร์เป็นอุปกรณอ์ ิเล็กทรอนกิ ส์ ซ่งึ มเี ฉพาะวงจรการเปดิ และปดิ ทำให้เคร่อื ง
คอมพวิ เตอรส์ ือ่ สารโดยใชเ้ ลขฐานสองเท่านั้น เรยี กภาษาทใ่ี ช้
เฉพาะเลขฐานสองในคอมพวิ เตอรว์ ่า ภาษาเครอ่ื ง (Machine Language)
5. การเขยี นอลั กอรทิ ึมดว้ ยผังงาน
ผงั งาน (flowchart) คือ การใชภ้ าพสญั ลักษณเ์ พอ่ื แสดงลำดับขนั้ ตอนการทำงานของอลั กอริทึม หรือการทำงานตา่ ง ๆ ตง้ั แตเ่ ร่มิ ต้น
จนจบการทำงานใหใ้ ดผ้ ลลพั ธ์ทต่ี อ้ งการ
ในการเขยี นโปรแกรมคอมพิวเตอร์สามารถใช้ผงั งานเพื่อชว่ ยลำดับแนวความคดิ ในการเขียนโปรแกรม เรียกว่า ผังงาน
โปรแกรม1 (program flowchart) ซ่งึ เปน็ วิธีที่นยิ มใช้เพราะทำให้เข้าใจการทำงานของโปรแกรมได้ง่ายกว่าการอธบิ ายด้วยขอ้ ความ
เมอ่ื มขี ้อผิดพลาดจะสามารถดูจากผงั งานทำใหก้ ารแกไ้ ขหรือปรับปรุงโปรแกรมทำได้ง่ายขนึ้ ซึ่งสญั ลักษณท์ ี่ใช้ในการเขียนผังงาน
บางส่วน มีดังน้ี
นกั เรียนควรรู้
1 ผงั งานโปรแกรม (program flowchart) คอื ผังงานทีแ่ สดงการทำงานย่อยหรือลำดับในโปรแกรม ซง่ึ แสดงรายละเอียดข้นั ตอนการทำงานและประมลผลโปรแกรมนนั้
ๆ ทำใหร้ ู้วิธกี ารคำนวณรับข้อมูลจากส่อื ใดและประมวลผลอยา่ งไร รวมถึงการแสดงผลลัพธด์ ้วยสื่อหรอื วธิ ีใด ดงั นนั้ การเขียนผังงานจะมีประโยชนซ์ ึ่งเหมาะสำหรับผู้
วเิ คราะห์ระบบ ผเู้ ขยี นโปรแกรม และบุคคลอืน่ ทีต่ ้องการ
ศกึ ษา ทำใหท้ ราบถึงความสัมพนั ธข์ องระบบตั้งแตเ่ รม่ิ ต้นว่ามกี ารปฏบิ ัตแิ ตล่ ะข้นั ตอนอยา่ งไร ใชว้ ธิ กี ารอะไรและจะไดผ้ ลลัพธ์อย่างไร ซง่ึ จะชว่ ยใหส้ ามารถปฏิบัติงาน
และแกป้ ญั หาไดอ้ ย่างมปี ระสทิ ธิภาพมากข้นึ
5.1 รูปแบบการเขียนผงั งาน
การเขยี นผงั งานจะเขียนในลักษณะบนลงลา่ ง (Top-Down) หรอื ซ้ายไปขวา โดยมีรปู แบบการเขียนผังงาน 3 ลกั ษณะ ดงั น้ี
1. เรียงลำดบั (Sequence) คือ การเขยี นผงั งานแบบเรียงลำดบั จากบนลงลา่ ง หรือจากซา้ ยไปขวา เปน็ รูปแบบท่งี า่ ยทส่ี ดุ
เน่อื งจากมกี ารทำงานท่เี รยี งลำดับไปทลี่ ะลำดับ โดยไม่มีทางเลอื กหรือการทำซำ้ ใด ๆ
2. เลือกกระทำ/เงื่อนไข (Selection/Condition) คอื การเขียนผงั งานในลักษณะการนำขอ้ มลู ไปเปรียบเทยี บเพื่อเลอื ก
กระทำ หากเปรยี บเทียบแล้วขอ้ มูลเปน็ จริงจะกระทำกระบวนการหนง่ึ หากเป็นเท็จจะกระทำกระบวนการหนึง่ แต่หากการ
เปรียบเทยี บหรือเงื่อนไขมีความซบั ซอ้ นจำเป็นตอ้ งใชเ้ งื่อนไขหลายชนั้ เพือ่ ใหค้ รอบคลมุ การเปรียบเทยี บ
3. ทำซำ้ (Loop) คือ การเขียนผงั งานในลักษณะท่มี ีการทำกระบวนการซำ้ หลายครงั้ ข้ึนอยู่กบั เงอ่ื นไขท่ีกำหนด
5.2 การเขยี นอัลกอริทึมด้วยผังงาน
หลกั การเขียนผังงานจะอา้ งองิ จากกระบวนการทางคอมพวิ เตอร์ 3 กระบวนการ ไดแ้ ก่ การรบั ข้อมลู (input) การประมวลผล
(process) และการแสดงผลลัพธ(์ output) โดยการเขยี นผังงานท่ีดีควรมหี ลักการเขียน ดงั น้ี
• ใช้สัญลักษณ์ท่เี ปน็ สญั ลกั ษณ์มาตรฐาน
• เขียนทศิ ทางการทำงานจากบนลงลา่ ง หรอื ซา้ ยไปขวา โดยมหี วั ลกู ศรทำกบั ทิศทาง
เสมอ
• จุดเรม่ิ ตน้ และจดุ ส้ินสดุ ควรมีเพียงจดุ เตยี ว
• การเขยี นคำอธิบายควรเขยี นภายในภาพสญั ลักษณ์ โดยใช้ขอ้ ความที่กระชบั ชัดเจน
และเขา้ ใจงา่ ย
นักเรยี นควรรู้
1 อลั กอรทิ ึม (Algorithm) คอื ข้ันตอนหรือลำดับการประมวลผลในการแก้ปญั หาใดปัญหาหนึ่งซง่ึ จะชว่ ยใหผ้ ู้พัฒนาโปรแกรมเห็นขัน้ ตอนการเขยี นโปรแกรมง่ายข้ึน ซึ่ง
มที ม่ี าจากชื่อของนกั คณิตศาสตรซ์ าวเปอร์เซยี ในยคุ ศตวรรษท่ี ๑ ชอ่ื อะบู อับดิลลาห์ มูฮัมหมัด อิบน์ มูซา อลั คอวาริซมีย์ (Abu Abdillah Muhammad Ibn Musa
al-Khawarizmi) คำวา่ อัลคอวาริซมยี ์ ไดเ้ พี้ยนเป็น
อัลกอรทิ ึม เมอื่ งานเขยี นของเขาไดร้ ับการแปลเป็นภาษาละดินแลว้ กลายเป็นอลั กอรทิ ึม ซง่ึ หมายถึงกฎทใ่ี ชใ้ นการคิดคำนวณเลขคณติ ในช่วงศตวรรษที่ 18 ในปจั จุบันคำ
นไี้ ต้มคี วามหมายที่กว้างขึ้น โดยหมายรวมถึงข้ันตอนวธิ กี ารในการแกป้ ัญหาต่าง ๆ
5.3 กรณีศึกษาการออกแบบและเขยี นอลั กอริทมึ
กรณศี กึ ษาที่ 1 ออกแบบอัลกอริทึมโดยใชแ้ นวคิดเชิงนามธรรม เพ่อื แกป้ ัญหาการปหู ญา้ ในสนามรูปล่ีเหลยี่ มมมุ ฉากตามพนื้ ที่ที่
กำหนด โดยหญ้าหน่ึงผืนมคี วามกว้าง 0.5 เมตร ยาว 0.5 เมตร และหญ้าแตล่ ะผนื เปน็ สี่เหล่ยี มมุมฉาก จะตอ้ งใชห้ ญ้าท้ังหมดทผ่ี ืน
เนอื่ งจากแนวคดิ เชิงนามธรรมเป็นองค์ประถอบหนงึ่ ของแนวคิดเชงิ คำนวณ ดงั นั้น จำเป็นต้องดำเนนิ การตามขนั้ ตอน ดงั น้ี
1. decomposition แตกปญั หาใหญใ่ หเ้ ปน็ ปัญหายอ่ ย โดยในกรณีศกึ ษานี้ สามารถแตกปัญหาออกเปน็ ปัญหายอ่ ยได้ ดงั น้ี
1) ปัญหายอ่ ยท่ี 1 หาพน้ื ท่ตี า่ ง ๆ ดงั นี้
- หาพน้ื ทส่ี นาม
- หาพน้ื ท่ีของหญ้า 1 ผนื
2) ปัญหาย่อยท่ี 2 หาจำนวนผืนหญา้ ที่ใช้ปพู นื้ สนาม
2. pattern recognition กำหนดแบบแผนจากปัญหาย่อยต่าง ๆ จากข้อ 1. โดยในกรณศี ึกษาน้ี สามารถกำหนดแบบแผน
เปน็ ข้ันตอนได้ ดังนี้
1) คำนวณหาพ้นื ทตี่ า่ ง ๆ คอื พืน้ ที่สนาม และพน้ื ทีข่ องหญา้ 1 ผืน โดยในท่นี ้สี ามารถคำนวณพ้ืนที่ใดกอ่ นกไ็ ด้
2) คำนวณหาจำนวนผืนหญา้ ซึง่ จำเป็นตอ้ งได้ผลลัพธก์ ารคำนวณหาพื้นท่ีต่าง ๆ จากขัน้ ตอนท่ี 1 กอ่ น จงึ จะดำเนนิ การ
ในข้นั ตอนน้ไี ด้ โดยตำนวณหาจำนวนผืนหญา้ สามารถคำนวณได้ ดงั นี้
จำนวนผืนหญ้าท่ใี ช้ปูสนาม = พนื้ ท่ีสนามพน้ื ทขี่ องหญา้ 1 ผนื
3. abstraction หาแนวติดเชิงนามธรรม เพ่ือหาแนวดิดรวบยอดของแต่ละปญั หายอ่ ย
1) หาแนวคิดเชงิ นามธรรมของปญั หาย่อยท่ี 1
- สนามเป็นส่ีเหลยี่ มมุมฉาก ดงั นนั้ คำนึงเฉพาะสาระสำคญั ของการคำนวณสี่เหลยี่ มมุมฉาก คอื พ้ืนทส่ี นาม =
ความกว้าง x ความยาว
โดยปกติ ความกวา้ งและความยาวของสนามจะวดั เป็นเมตร ดังนน้ั ขนาดของหญา้ ควรเปน็ เมตร เพอ่ื ให้เปน็ หนว่ ย
เดียวกัน
- หญา้ แตล่ ะผนื เป็นส่เี หล่ียมมมุ ฉาก ดังนนั้ คำนึงเฉพาะสาระสำคญั ของการคำนวณสเ่ี หลย่ี มมุมฉาก คือ พ้ืนทหี่ ญ้า
1 ผนื = ความกวา้ ง * ความยาว
ดงั นั้น แนวคิดเชงิ นามธรรมของปัญหายอ่ ยที่ 1 คอื พ้ืนทตี่ า่ ง ๆ = ความกว้าง x ความยาว
2) หาแนวคิดเชงิ นามธรรมของปญั หาย่อยท่ี 2
จำนวนผนื หญ้าทใ่ี ช้ปูสนาม = (พ้นื ทสี่ นาม/พน้ื ท่ีของหญา้ 1 ผนื ) + (ปริมาณที่เผ่ือขาดเช่น 3% เป็นต้น)
4. algorithm design ออกแบบลำดับข้นั ตอนการแกป้ ญั หา โดยในกรณีศกึ ษาน้ีจะออกแบบเปน็ อลั กอรทิ มึ 3 รปู แบบ คอื
ภาษาธรรมชาติ รหัสจำลอง และผงั งาน
กรณศี ึกษาท่ี 2 การออกแบบอลั กอริทึมเพอื่ อธบิ ายการคำนวณสว่ นลดสินค้า และแสดงผลลัพธก์ ารคำนวณของรา้ นขายอุปกรณ์การ
เรยี นแหง่ หนึ่งที่กำลังจดั โปรโมชนั ส่วนลดสนิ คา้ โดยสินคา้ ทุกข้ึนจะมีส่วนลด 10 เปอร์เซน็ ต์ (ร้อยละ 10) จากราคาขายปกติ โดยให้
ขอ้ มลู ราคาสินคา้ ปกติเป็นข้อมูลนำเข้า เช่น สไี มก้ ล่องละ 200 บาท สว่ นลด 10 เปอรเ์ ซน็ ต์ คดิ เปน็ สว่ นลดกบ่ี าท
นกั เรยี นควรรู้
1 รหัสจำลอง คอื รูปแบบภาษาทม่ี ีโครงสรา้ งทชี่ ดั เจนกระชบั เพอ่ื ใช้อธิบายข้ันตอนการทำงานของอลั กอรทิ ึมใด ๆ โดยไม่ขึ้นอยกู่ บั ภาษาคอมพิวเตอรใ์ ดภาษาหน่งึ และ
สามารถแปลงรหัสจำลองเป็นภาษาคอมพวิ เตอร์ไดง้ ่าย โดยรหัสจำลองสามารถใชร้ ูปแบบคำสัง่ ท่ีเปน็ ภาษาอังกฤษหรือภาษาไทย อกี ทัง้ สามารถใชค้ ำสง่ั เฉพาะที่มอี ยใู่ น
ภาษาโปรแกรมคอมพิวเตอรม์ าชว่ ยในการเขยี นรหสั จำลองได้
กรณีศึกษาท่ี 3 การออกแบบอลั กอริทึมเพือ่ อธบิ ายการคำนวณการออมเงนิ และแสดงผลลพั ธ์การคำนวณ โดยนกั เรยี นสามารถ
กำหนดจำนวนเงินออมที่เทา่ กันทกุ วนั และสามารถกำหนดจำนวนวนั ทจี่ ะนำมาคำนวณได้ เช่น นกั เรียนออมเงนิ วนั ละ 5 บาท
เท่ากนั ทุกวนั เปน็ เวลา 30 วนั นกั เรยี นจะมเี งินออมรวมเทา่ ใด
Summary การออกแบบและการเขียนอัลกอรทิ ึม
แนวคดิ เชงิ นามธรรม
แนวคิดเชิงนามธรรม (abstriction) เป็นแนวคิดหน่ึงในการแก้ไขปญั หา ซ่ึงเป็นองคป์ ระกอบของแนวคดิ เชิงคำนวณ
(computational thinking) โดยมแี นวคิดในการแก้ไขปญั หาอย่างเป็นระบบและสามารถกำหนดขัน้ ตอนการแกป้ ญั หาได้อยา่ ง
ชดั เจน
อัลกอริทึมเบ้ืองตน้
อัลกอริทึม (algorithm) คือ ระเบียบวิธีหรือข้ันตอนวธิ ที ีด่ ำเนนิ การดว้ ยคอมพิวเตอร์เพื่อ
ใชใ้ นการแกไ้ ขปญั หา การเขียนอลั กอริทึมสามารถแบ่งได้ 3 รูปแบบ
การเขียนอลั กอริทึมด้วยภาษาธรรมชาติ
การเขยี นอลั กอรทิ ึมดว้ ยภาษาธรรมชาติ คือ การบรรยายขน้ั ตอนการทำงานของอลั กอริทึมใด ๆ โดยใชภ้ าษามนุษย์เพื่อ
อธิบายถงึ ลำดับขน้ั ตอนการทำงานของอลั กอริทึมตามลำดบั การทำงานก่อนหลงั
การเขียนอัลกอริทึมดว้ ยรหสั จำลอง
รหัสจำลอง (Pseudo code) คือ รปู แบบภาษาท่ีมีโครงสร้างที่ชดั เจน กระชับ เพื่อใชอ้ ธิบายขั้นตอนการทำงานของ
อลั กอริทึมใด ๆ โดยไม่ข้นึ กบั ภาษาคอมพวิ เตอร์ใดภาษาหน่ึง
การเขียนอัลกอริทึมดว้ ยรหสั จำลอง เป็นคำสงั่ ท่ีจำลองความคิดเปน็ ลำดบั ขนั้ ตอนโดยใชส้ ัญลกั ษณ์เป็นประโย คภาษาองั กฤษ
รหัสจำลองไมส่ ามารถนำไปประมวลผล และสงั่ ใหค้ อมพวิ เตอรท์ ำงานตามคำส่ังได้ แตเ่ ป็นการเขียนจำลองคำส่ัง เพื่อนำไปพัฒนา
เปน็ การเขยี นโปรแกรมภาษาคอมพวิ เตอรไ์ ด้
การเขียนอัลกอรทิ มึ ดว้ ยผงั งาน
การเขียนอัลกอรทิ ึมด้วยผงั งาน จะอ้างอิงจากกระบวนการทางคอมพิวเตอร์ 3 กระบวนการได้แก่ การรบั ขอ้ มูล (input)
การประมวลผล (process) และการแสดงผลลัพธ์ (output)