2.1 ขั้นตอนการแก้ปัญหา
พื้นฐานของการเขียนโปรแกรม คือ การคิดแก้ปัญหาอย่างเป็นขั้นตอน และเป็นระบบ การแก้ปัญหาเป็นกิจกรรมพื้นฐานของมนุษย์ ซึ่งใช้เวลาในการหาคำตอบต่างกัน คำตอบที่ได้ต้องสามารถพิสูจน์ได้ มีความถูกต้อง น่าเชื่อถือ สามารถนำไปอ้างอิงได้ การแก้ปัญหาของแต่ละบุคคลมีขั้นตอนและใช้เวลาต่างกัน ขึ้นอยู่กับ ความรู้และประสบการณืในการแก้ปัญหา
1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา
วิเคราะห์ทำความเข้าใจเกี่ยวกับรายละเอียด เงื่อนไข ข้อกำหนด รวมถึงข้อจำกัดต่างๆ ของปัญหา คัดเลือกคุณลักษณะที่จำเป็นต่อการแก้ปัญหา กำหนดผลลัพธ์ที่จะได้ซึ่งต้องสามารถตรวจสอบได้
2. การวางแผนการแก้ปัญหา
เป็นการคิดหากระบวนการ ที่เป็นขั้นตอน ตั้งแต่เริ่มต้นจนกระทั่งได้ผลลัพธ์ที่ต้องการ สำหรับการพัฒนาโปรแกรม อาจเลือกใช้รหัสจำลอง หรือผังงาน โดยวิธีการแก้ปัญหาที่ได้เรียกว่า ขั้นตอนวิธีหรืออัลกอริทึม (Algorithm) ซึ่งเป็นลำดับขั้นตอนในการแก้ปัญหา หรือการทำงานที่ชัดเจนตั้งแต่เริ่มต้นแก้ปัญหา จนกระทั่ได้ผลลัพธ์ที่ต้องการ ทั้งนี้ต้องอาศัยประสบการณ์และความรู้ของผู้แก้ปัญหา
3. การดำเนินการแก้ปัญหา
เป็นการนำกระบวนการที่ได้วางแผนไว้มาปฏิบัติ หรือพัฒนาโปรแกรมเพื่อแก้ปัญหา เช่น การนำอัลกอริทึม มาเขียนโปรแกรมเพื่อให้ได้ระบบที่ต้องการ
4. การตรวจสอบและประเมินผล
ขั้นตอนนี้จะทำควบคู่กับขั้นตอนการดำเนินการแก้ปัญหา โดยการตรวจสอบผลลัพธ์ที่ได้ หากผลลัพธ์ไม่ถูกต้อง หรือยังมีส่วนที่ต้องแก้ไขปรับปรุงอยู่ ต้องย้อนกลับไปทำซ้ำตั้งแต่ตอนแรกจนกว่าจะได้ผลลัพธ์ที่ถูกต้อง
ใบงานที่ 2.1
ให้นักเรียนตอบคำถามในใบงานที่ 1.1 โดยทำด้วยโปรแกรม Microsoft PowerPoint พร้อมตกแต่งให้สวยงาม แล้วบันทึกเป็นไฟล์ PDF
อัลกอรึทึม (Algorithm) หมายถึง กระบวนการแก้ปัญหาที่สามารถอธิบายออกมาเป็นขั้นตอนที่ชัดเจน กระบวนการนี้ประกอบด้วย วิธีการเป็นขั้นตอน เช่น เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร หรือมีส่วนที่ต้องทำแบบวนซำจนกระทั่งเสร็จสิ้นการทำงาน
* Algorithm ไม่ใช่คำตอบแต่เป็นชุดคำสั่งที่จะทำให้ได้คำตอบ
วิธีการในการอธิบาย Algorithm มี 3 รูปแบบ ได้แก่
1. Natural Language อธิบายแบบใช้ภาษาธรรมชาติ หรือภาษาที่เราสื่อสารกันทั่วไป
2.Pseudocode อธิบายด้วยรหัสจำลองหรือรหัสเทียม
3.Flowchart อธิบายด้วยแผนผัง
1. Natural Language อธิบายแบบใช้ภาษาธรรมชาติ หรือภาษาที่เราสื่อสารกันทั่วไป
ภาษาธรรมชาติ (natural language) คือ รูปแบบภาษาที่มนุษย์เข้าใจ หรือเป็นภาษามนุษย์ที่ใช้สื่อสารกันมีรูปแบบภาษาที่ไม่แน่นอนตายตัวและเป็นไปตามธรรมชาติของมนุษย์ตามเชื้อชาติ เช่น ภาษาไทย ภาษาอังกฤษ ภาษาจีน เป็นต้น
การเขียนอัลกอริทึมด้วยภาษาธรรมชาติ
การเขียนอัลกอริทึมด้วยภาษาธรรมชาติ คือ การบรรยายขั้นตอนการทำงานของอัลกอริทึมใด ๆ โดยใช้ภาษามนุษย์เพื่ออธิบายถึงลำดับขั้นตอนการทำงานของอัลกอริทึมตามลำดับการทำงานก่อนหลัง
ตัวอย่าง
การอธิบายการคำนวณหาพื้นที่สี่เหลี่ยม และแสดงผลลัพธ์การคำนวณ ด้วยการใช้ภาษาธรรมชาติ
สูตรการคำนวณหาพื้นที่สี่เหลี่ยม
พื้นที่สี่เหลี่ยม = ความกว้าง × ความยาว
Area of a Rectangle = width × length
1. เริ่มต้นการทำงาน
2. นำเข้าข้อมูล ความกว้างของสี่เหลี่ยม
3. นำเข้าข้อมูล ความยาวของสี่เหลี่ยม
4. คำนวณ พื้นที่สี่เหลี่ยม = ความกว้าง × ความยาว
5. แสดงผล พื้นที่สี่เหลี่ยม
6. จบการทำงาน
ใบงานที่ 2.2
ให้นักเรียนตอบคำถามในใบงานที่ 2.2 โดยทำด้วยโปรแกรม Microsoft PowerPoint พร้อมตกแต่งให้สวยงาม แล้วบันทึกเป็นไฟล์ PDF
รหัสจำลอง (Pseudo Code)
รหัสจำลองคือ รูปแบบภาษาที่มีโครงสร้างที่ชัดเจน กระชับ เพื่อใช้อธิบายขั้นตอนการทำงานของอัลกอริทึมใด ๆ โดยไม ่ขึ้นกับภาษาคอมพิวเตอร์ใดภาษาหนึ่ง และสามารถแปลงรหัสจำลองเป็นภาษาคอมพิวเตอร์ได้ง่าย โดยรหัสจำลองสามารถใช้รูปแบบคำสั่งที่เป็นภาษาอังกฤษหรือภาษาไทยก็ได้ อีกทั้งสามารถใช้คำสั่งเฉพาะที่มีอยู่ในภาษาโปรแกรมคอมพิวเตอร์มาช ่วยในการเขียนรหัสจำลองได้ ดังนั้น รหัสจำลองจึงคล้ายคลึงกับการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ จึงเป็นเครื่องมือที่นิยมใช้ในการอธิบายขั้นตอนอัลกอริทึมของโปรแกรมคอมพิวเตอร์ด้วยรหัสจําลอง
การเขียนอัลกอริทึมด้วยรหัสจำลอง
เป็นคำสั่งที่จำลองความคิดเป็นลำดับขั้นตอนโดยใช้สัญลักษณ์เป็นประโยคภาษาอังกฤษ รหัสจำลองไม่ใช่ภาษาโปรแกรมทางคอมพิวเตอร์จึงไม่สามารถนำไปประมวลผลได้ และไม่สามารถสั่งให้คอมพิวเตอร์ทำงานตามคำสั่ง แต่เป็นการเขียนจำลองคำสั่งจริงแบบย่อตามอัลกอริทึมของโปรแกรมระบบ เพื่อนนำไปพัฒนาเป็นการเขียนโปรแกรมภาษาคอมพิวเตอร์ได้
ตัวอย่างประโยคภาษาอังกฤษเขียนจำลองคำสั่ง
Input a number : ใส่ข้อมูลนำเข้าเป็นค่าตัวเลข
Find the sum of the number : คำนวณรวมค่าตัวเลขที่นำเข้า
Print the sum : แสดงผลรวมของข้อมูลทั้งหมด
หลักเกณฑ์การเขียนรหัสจําลอง
1. ควรใช้คำสั่งเป็นรูปแบบภาษาที่สั้น กระชับ และเข้าใจง่าย เช่น
start หมายถึง การเริ่มต้นการทำงาน
stop หมายถึง การจบการทำงาน
2. ควรมีหมายเลขลำดับขั้นตอนชัดเจน
3. ไม่จำเป็นต้องมีเครื่องหมายวรรคตอน
4. รหัสจำลองต้องไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง
5. ในหนึ่งบรรทัดให้มีคำสั่งเพียงคำสั่งเดียว
6. ในการเขียนคำสั่งให้เรียงจากบนลงล่าง และมีจุดสิ้นสุดเพียงจุดเดียว
ตัวอย่าง
อธิบายการคำนวณหาพื้นที่สี่เหลี่ยม และแสดงผลลัพธ์การคำนวณด้วยการใช้รหัสจำลอง
สูตรการคำนวณหาพื้นที่สี่เหลี่ยม
พื้นที่สี่เหลี่ยม = ความกว้าง x ความยาว
Area of a Rectangle = width x length
ประโยชน์ของรหัสจำลอง
เป็นเครื่องมือในการกำหนดโครงร่างกระบวนการทำงานของการเขียนโปรแกรมแต่ละโปรแกรม
เป็นต้นแบบในการทบทวน ปรับปรุงแก้ไข และพัฒนาโปรแกรมของโปรแกรมเมอร์ และนักวิเคราะห์ระบบ
เป็นตัวกำหนดงานเขียนโปรแกรม เพื่อให้โปรแกรมเมอร์นำไปพัมนา เพื่อสั่งให้คอมพิวเตอร์ทำงานตามกระบวนการที่ได้จำลองกระบวนการจริงไว้ในรหัสจำลอง
ตัวอย่างรหัสจำลอง (Pseudo code)
Terminate เริ่มต้นโปรแกรม, สิ้นสุดโปรแกรม
START, STOP, BEGIN, END
Input รับค่าทางอุปกรณ์นำเข้า
READ, GET, INPUT
Output แสดงผลผ่านอุปกรณ์แสดงผลข้อมูล
WRITE, DISPLAY, SHOW, PRINT, OUTPUT
ใบงานที่ 2.3
ให้นักเรียนตอบคำถามในใบงานที่ 2.3 โดยทำด้วยโปรแกรม Microsoft PowerPoint พร้อมตกแต่งให้สวยงาม แล้วบันทึกเป็นไฟล์ PDF
ผังงาน (flowchart)
คือ การใช้ภาพสัญลักษณ์เพื่อแสดงลำดับขั้นตอนการทำงานของอัลกอริทึม หรือการทำงานต่าง ๆ ตั้งแต่เริ่มต้นจนจบการทำงานให้ได้ผลลัพธ์ที่ต้องการในการเขียนโปรแกรมคอมพิวเตอร์สามารถใช้ผังงานเพื่อช่วยลำดับแนวความคิดในการเขียนโปรแกรม เรียกว่า ผังงานโปรแกรม (program flowchart) ซึ่งเป็นวิธีที่นิยมใช้เพราะทำให้เข้าใจการทำงานของโปรแกรมได้ง่ายกว่าการอธิบายด้วยข้อความ เมื่อมีข้อผิดพลาดจะสามารถดูจากผังงานทำให้การแก้ไขหรือปรับปรุงโปรแกรมทำได้ง่ายขึ้น ซึ่งสัญลักษณ์ที่ใช้ในการเขียนผังงานบางส่วน มีดังนี้
รูปแบบการเขียนผังงาน
การเขียนผังงานจะเขียนในลักษณะบนลงล่าง (Top-Down) หรือซ้ายไปขวา โดยมีรูปแบบการเขียนผังงาน 3 ลักษณะ ดังนี้
1. เรียงลำดับ (sequence) คือ การเขียนผังงานแบบเรียงลำดับจากบนลงล่าง หรือจากซ้ายไปขวา เป็นรูปแบบที่ง่ายที่สุด เนื่องจากมีการทำงานที่เรียงลำดับไปทีละลำดับ โดยไม่มีทางเลือกหรือการทำซ้ำใด ๆ
2. เลือกกระทำ/เงื่อนไข (decision/selection) คือ การเขียนผังงานในลักษณะการนำข้อมูลไปเปรียบเทียบเพื่อเลือกกระทำ หากเปรียบเทียบแล้วข้อมูลเป็นจริงจะกระทำกระบวนการหนึ่ง หากเป็นเท็จจะกระทำกระบวนการหนึ่ง แต่หากการเปรียบเทียบหรือเงื่อนไขมีความซับซ้อน จำเป็นต้องใช้เงื่อนไขหลายชั้นเพื่อให้ครอบคลุมการเปรียบเทียบ
3. ทำซ่ำ (loop) คือ การเขียนผังงานในลักษณะที่มีการทำกระบวนการซ้ำหลายครั้งขึ้นอยู่กับเงื่อนไขที่กำหนด
การเขียนอัลกอริทึมด้วยผังงาน
หลักการเขียนผังงานจะอ้างอิงจากกระบวนการทางคอมพิวเตอร์ 3 กระบวนการ ได้แก่ การรับข้อมูล (input) การประมวลผล (process) และการแสดงผลลัพธ์ (output) โดยการเขียนผังงานที่ดีควรมีหลักการเขียน ดังนี้
การใช้สัญษณ์ที่เป็นมาตรฐานสากล
เขียนทิศทางการทำงานจากบนลงล่าง หรือซ้ายไปขวา โดยมีหัวลูกศรกำหนดทิศทาง
จุดเริ่มต้นและสิ้นสุดควรมีเพียงจุดเดียว
การเขียนคำอธิบายควรเขียนภายในภาพสัญลักษณ์ โดยใช้ข้อความที่กระชับ ชัดเจน และเข้าใจง่าย
ประโยชน์ของผังงาน
1. ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย (problem define)
2. แสดงลำดับการทำงาน (step flowing)
3. หาข้อผิดพลาดได้ง่าย (easy to debug)
4. ทำความเข้าใจโปรแกรมได้ง่าย (easy to read)
5. ไม่ขึ้นกับภาษาใดภาษาหนึ่ง (flexible language)
ตัวอย่าง1
อธิบายการคำนวณหาพื้นที่สี่เหลี่ยม และแสดงผลลัพธ์การคำนวณด้วยการใช้ผังงาน
สูตรการคำนวณหาพื้นที่สี่เหลี่ยม
พื้นที่สี่เหลี่ยม = ความกว้าง x ความยาว
Area of a Rectangle = width x length
ตัวอย่าง2
เขียนอัลกอริทึมการตรวจสอบผลการเรียนในรายวิชาวิทยาศาสตร์ว่าผ่านหรือไม่ โดยการรับค่าชื่อนักเรียนคะแนนสอบจากคะแนนเต็ม100คะแนนทางแป้นพิมพ์โดยคะแนนสอบตั้งแต่50ขึ้นไปจะแสดงผลว่าสอบผ่านคะแนนสอบไม่ถึง50จะแสดงผลว่าสอบไม่ผ่านด้วยภาษาธรรมชาติรหัสจำลอง และผังงาน
ตัวอย่าง2
เขียนอัลกอริทึมการแสดงผลสูตรคูณแม่ 2
ใบงานที่ 2.4
ให้นักเรียนตอบคำถามในใบงานที่ 2.4 โดยทำด้วยโปรแกรม Microsoft PowerPoint พร้อมตกแต่งให้สวยงาม แล้วบันทึกเป็นไฟล์ PDF