สวัสดีค่ะ ยินดีต้อนรับเข้าสู่เว็บไซต์ hongkrunan.in.th แหล่งการเรียนรู้ออนไลน์วิชาวิทยาการคำนวณ
สวัสดีค่ะ ยินดีต้อนรับเข้าสู่เว็บไซต์ hongkrunan.in.th แหล่งการเรียนรู้ออนไลน์วิชาวิทยาการคำนวณ
หน่วยการเรียนรู้ที่ 2
การแก้ปัญหา
จุดประสงค์การเรียนรู้
1.นักเรียนสามารถอธิบายขั้นตอนการแก้ปัญหาได้
2.นักเรียนสามารถวางแผนการแก้ปัญหาโดยใช้รหัสลำลองและผังงานได้
3.นักเรียนสามารถแก้ปัญหาตามขั้นตอนการแก้ปัญหาได้
การแก้ปัญหา
การแก้ปัญหาเป็นกิจกรรมพื้นฐานในการดำรงชีวิตของมนุษย์ ปัญหาบางปัญหาสามารถหาคำตอบได้ในทันที ขณะที่บางปัญหาใช้เวลานานในการค้นหาคำตอบ อย่างไรก็ตามทุกคนต่างต้องการหาวิธีการในการแก้ปัญหาที่ทำให้ได้คำตอบที่ถูกต้องในเวลารวดเร็ว การแก้ปัญหาประกอบด้วย 4 ขั้นตอน
เป็นการทำความเข้าใจเกี่ยวกับรายละเอียดเงื่อนไข ข้อกำหนด รวมถึงข้อจำกัดต่าง ๆ ของปัญหา ข้อมูลที่จำเป็นในการแก้ปัญหา ตรวจสอบว่ามีข้อมูลเพียงพอหรือไม่ จะหาข้อมูลเพิ่มเติมให้ครบถ้วนต่อการใช้แก้ปัญหาได้อย่างไร ข้อมูลผลลัพธ์ที่ได้คืออะไร และจะตรวจสอบความถูกต้องของผลลัพธ์ที่ได้อย่างไร
เครื่องมือที่ใช้ในการวางแผนการแก้ปัญหา สำหรับการพัฒนาโปรแกรม อาจเลือกใช้รหัสลำลอง หรือผังงาน โดยวิธีการแก้ปัญหาที่ได้เรียกว่า ขั้นตอนวิธีหรืออัลกอริทึม (algorithm) ซึ่งเป็นลำดับขั้นตอนในการแก้ปัญหาหรือการทำงานที่ชัดเจน
เป็นกระบวนการที่ได้วางแผนไว้มาปฏิบัติ หรือพัฒนาโปรแกรมเพื่อแก้ปัญหา โดยอาจใช้ภาษาโปรแกรมช่วยในการดำเนินการ
ขั้นตอนนี้จะทำควบคู่ไปกับขั้นตอนการดำเนินการแก้ปัญหา โดยการตรวจสอบผลลัพธ์ที่ได้ หากผลลัพธ์ที่ได้ไม่ถูกต้อง หรือยังมีส่วนที่ต้องแก้ไขปรับปรุงอยู่ ต้องย้อนกลับไปทำซ้ำตั้งแต่ขั้นตอนแรกจนกว่าจะได้ผลลัพธ์ที่ถูกต้อง
กระบวนการในการออกแบบแนวทางการแก้ปัญหานั้น จะต้องถ่ายทอดความคิด และความเข้าใจไปสู่การนำไปสู่การนำไปปฏิบัติได้ การถ่ายทอดความคิดจะต้องมีจุดเริ่มต้น จุดสิ้นสุด และลำดับก่อนหลังที่ชัดเจน อาจอยู่ในรูปของข้อความที่เรียงกันเป็นลำดับซึ่งเรียกว่า รหัสลำลอง (pseudo code) หรืออยู่ในรูปผังงาน (flowchart)
การเขียนรหัสลำลอง
รหัสลำลอง (pseudo code)
การเขียนรหัสลำลองเป็นการใช้คำบรรยายอธิบายขั้นตอนอย่างชัดเจนในการแก้ปัญหาหรือการทำงานของโปรแกรม ซึ่งรูปแบบการเขียนจะขึ้นอยู่กับประสบการณ์ และความถนัดของผู้เขียน
ผังงาน (flowchart)
ผังงานเป็นเครื่องมือหนึ่งที่ใช้ในการวางแผนหรือออกแบบการแก้ปัญหา เพื่อให้สามารถนำไปปฏิบัติตามหรือเขียนโปรแกรมเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานได้ง่าย สถาบันมาตรฐานแห่งชาติอเมริกา (The American Nation Standard Institute : ANSI) ได้กำหนดสัญลักษณ์ที่เป็นมาตรฐานในการเขียนผังงานไว้ ซึ่งในที่นี้จะแนะนำการใช้งาน 5 สัญลักษณ์พื้นฐาน
เริ่มต้นและจบ (Start/End)
คือจุดเริ่มต้นและจุดสิ้นสุดของผังงาน
การนำข้อมูลเข้า-ออก แบบทั่วไป
คือจุดที่จะนำข้อมูลเข้าจากภายนอกหรือออกสู่ภายนอก โดยไม่ระบุชนิดของอุปกรณ์
การปฏิบัติงาน (Process)
คือจุดที่มีการปฏิบัติงาน อย่างใดอย่างหนึ่ง
การตัดสินใจ (Decision)
คือจุดที่ต้องเลือกปฏิบัติ อย่างใดอย่างหนึ่ง
ทิศทาง (Arrow)
คือทิศทางขั้นตอนการดำเนินงาน
ซึ่งจะปฏิบัติต่อเนื่องกันตามหัวลูกศรชี้
ตัวอย่างผังงานการคำนวณหาพื้นที่สามเหลี่ยม
หลักการเขียนผังงาน (Flowchart) มีหลักการง่ายๆที่ควรคำนึงดังนี้ คือ
1. ผังงาน (Flowchart) จะต้องมีจุดเริ่มต้นและจุดสิ้นสุดเสมอ
2. เลือกใช้สัญลักษณ์เพื่อสื่อความหมายให้ถูกต้อง
3. ใช้ลูกศรเป็นตัวกำหนดทิศทางการทำงานของโปรแกรมจากบนลงล่าง จากซ้ายไปขวาโดยเรียงตามลำดับ
4. รูปสัญลักษณ์ทุกตัวต้องมีลูกศรเข้าและออก ยกเว้นจุดเริ่มต้นจะมีเฉพาะออก จุดสิ้นสุดจะมีเฉพาะเข้าเท่านั้น
5. ลูกศรทุกตัวจะชี้ออกจากรูปสัญลักษณ์ตัวหนึ่งไปยังรูปสัญลักษณ์อีกตัวหนึ่งเสมอ
6. คำอธิบายภายในรูปสัญลักษณ์ ควรสั้นๆเข้าใจง่าย
7. ไม่ควรใช้ลูกศรชี้ไปไกลมากเกินไป หากจำเป็นให้ใช้จุดเชื่อมแทน
โครงสร้างของผังงาน หรือ Flowchart สามารถแบ่งได้เป็น 3 รูปแบบคือ
การทำงานแบบตามลำดับ (Sequence Flowchart),
การเลือกกระทำตามเงื่อนไข (Selection Flowchart),
การทำซ้ำ (Iteration Flowchart)
สามารถอธิบายโดยสังเขปได้ดังนี้
การทำงานแบบตามลำดับ (Sequence Flowchart) เป็นการเขียน Flowchart โดยจัดลำดับขั้นตอนการทำงานจากบนลงล่าง มีโครงสร้างในการเขียนคำสั่งเป็นบรรทัด และโดยทำงานตามคำสั่งทีละบรรทัดจากบรรทัดแรกที่เป็นการเริ่มต้นคำสั่งลงไปจนถึงบรรทัดล่างสุดเป็นการสิ้นสุดคำสั่ง
การทำงานแบบเลือกกระทำตามเงื่อนไข (Selection Flowchart) คือ การตัดสินใจหรือการเลือกทำตามเงื่อนไข โดยการวิเคราะห์จากข้อมูลจะมีเหตุการณ์ให้ดำเนินการต่อไป 2 กระบวนการ คือ ถ้าหากเงื่อนไขเป็นจริงจะดำเนินการตามกระบวนการหนึ่ง และหากเงื่อนไขเป็นเท็จจะดำเนินการอีกกระบวนการหนึ่ง
การทำซ้ำ (Iteration Flowchart) เป็นการเขียน flowchart ให้กลับมาทำงานในขั้นตอนแบบเดิมซ้ำ ๆ ซึ่งจะเห็นว่า flowchart มีขั้นตอนการทำงานบางขั้นตอนได้รับการประมวลผลมากกว่า 1 ครั้ง ซึ่งเรียกว่า loop โครงสร้างผังงานแบบทำซ้ำนี้จะมีการใช้ “สัญลักษณ์การตัดสินใจ”เข้ามาเปรียบเทียบเงื่อนไขเพื่อให้มีการทำงานซ้ำ โดยแบ่งได้ 3 ลักษณะ ดังนี้
การทำซ้ำแบบลูป for (for Loop) เป็นการทำซ้ำที่มีการกำหนดจำนวนรอบที่แน่นนอน โดยเริ่มต้นการเปรียบเทียบกับเงื่อนไข
การทำซ้ำแบบลูป while (while Loop) เป็นคำสั่งการทำซ้ำที่จะเริ่มด้วยการตรวจสอบเงื่อนไข หากเงื่อนไขเป็น “จริง” จะมีการทำซ้ำต่อไป แต่ถ้าหากเงื่อนไขเป็น “เท็จ” ก็จะเลิกดำเนินการทำตามคำสั่ง
การทำซ้ำแบบลูป do…while (do…while Loop) เป็นคำสั่งการทำซ้ำที่จะเริ่มด้วยการทำงาน 1 รอบ แล้วจึงค่อยตรวจสอบเงื่อนไข ถ้าหากเงื่อนไขเป็น “จริง” ก็จะมีการทำซ้ำต่อ ถ้าเงื่อนไขเป็น “เท็จ” ก็จะเลิกดำเนินการทำคำสั่ง