การแก้ปัญหา
ในชีวิตประจำวันทุกคนต้องเคยพบกับปัญหาต่างๆ เช่น ปัญหาด้านการเรียน ปัญหาด้านการงาน ปัญหาด้านการเงิน เป็นต้น เมื่อพบกับปัญหา แต่ละคนมีวิธีที่จะจัดการหรือแก้ปัญหาเหล่านั้นแตกต่างกันไปตามความรู้ ความสามารถและประสบการณ์ของบุคคล ซึ่งแต่ละวิธีอาจให้ผลลัพธ์เหมือนหรือแตกต่างกันแต่ถ้านำวิธีการแก้ปัญหาต่างๆมาศึกษาพิจารณาจะพบว่าหลายวิธีคล้ายคลึงกันจนสามารถสรุปเป็นทฤษฎีที่สามารถนำไปประยุกต์ใช้ ได้กับหลายๆปัญหาโดยปกติแล้วมนุษย์มีกระบวนการในการแก้ปัญหาด้วยตนเองอยู่เสมอแต่ในบางครั้งต้องอาศัยการเรียนรู้ระดับสูง เพื่อแก้ปัญหาอย่างสมบูรณ์
- ตัวอย่างปัญหาและวิธีการแก้ปัญหา
มีนักเรียนจำนวน 3 คน คือ หวาน แหวน และหวัง แต่ละคนมีความสามารถอยู่ 2 อย่าง ที่ไม่ซ้ำกัน คือ ว่ายน้ำ วิ่งเร็ว ร้องเพลง วาดภาพ คัดลายมือเล่นดนตรี ไม่ทราบว่าใครมีความสามารถอะไรบ้าง มีข้อมูลของครูประจำชั้น ดังนี้
1. หวานให้เพื่อนช่วยวาดภาพเสมอ
2. แหวนไม่เคยซื้อเครื่องดนตรีเลย
3. หวังว่ายน้ำไม่เป็น
4. ครูชมเชยแหวนว่าเขียนหนังสือสวย
5. หวานซื้อรองเท้ากีฬาคู่ใหม่
1. หวานให้เพื่อนช่วยวาดภาพเสมอ
2. แหวนไม่เคยซื้อเครื่องดนตรีเลย
3. หวังว่ายน้ำไม่เป็น
4. ครูชมเชยแหวนว่าเขียนหนังสือสวย
5. หวานซื้อรองเท้ากีฬาคู่ใหม่
. แหวนชอบให้หวังร้องเพลงให้ฟัง
7. หวังช่วยหวานถือเครื่องดนตรี
8. หวานไม่มีชุดว่ายน้ำ
7. หวังช่วยหวานถือเครื่องดนตรี
8. หวานไม่มีชุดว่ายน้ำ
- ขั้นตอนการแก้ปัญหา
ด้วยกระบวนการเทคโนโลยีสารสนเทศ
ด้วยกระบวนการเทคโนโลยีสารสนเทศ
1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา
– กำหนดขอบเขตของปัญหา
– กำหนดขอบเขตของปัญหา
– กำหนดลักษณะของข้อมูลเข้าและออกจากระบบ
(Input/Output Specification )
– กำหนดวิธีการประมวลผล (Process Specification)
(Input/Output Specification )
– กำหนดวิธีการประมวลผล (Process Specification)
- ตัวอย่างที่ 1 การวิเคราะห์ปัญหา
ตัวอย่างที่ 1 จงเขียนแนวทางแก้ปัญหาด้วยคอมพิวเตอร์ สำหรับให้คอมพิวเตอร์คำนวณหาค่าจ้างพนักงานรายชั่วโมง จากนั้นแสดงค่าจ้างที่คำนวณได้
วิธีทำ ต้องการอะไร ต้องการทราบค่าจ้างพนักงานแต่ละคน
ต้องการเอาท์พุตอย่างไร เป็นค่าจ้างสุทธิของพนักงานทางจอภาพ
ข้อมูลเข้า รหัสพนักงาน,ชื่อพนักงาน,จำนวนชั่วโมงทำงานเก็บ
ในตัวแปรชื่อ House, ค่าจ้างรายชั่วโมงเก็บใน
ตัวแปรชื่อ PayRate
วิธีทำ ต้องการอะไร ต้องการทราบค่าจ้างพนักงานแต่ละคน
ต้องการเอาท์พุตอย่างไร เป็นค่าจ้างสุทธิของพนักงานทางจอภาพ
ข้อมูลเข้า รหัสพนักงาน,ชื่อพนักงาน,จำนวนชั่วโมงทำงานเก็บ
ในตัวแปรชื่อ House, ค่าจ้างรายชั่วโมงเก็บใน
ตัวแปรชื่อ PayRate
วิธีประมวลผล
กำหนดวิธีการคำนวณ
ค่าจ้างสุทธิ = จำนวนชั่วโมง X อัตราต่อชั่วโมง
ขั้นตอนการประมวลผล
1. เริ่มต้น
2. รับรหัสพนักงาน,ชื่อพนักงาน,จำนวนชั่วโมงทำงาน,ค่าจ้างรายชั่วโมง
3. คำนวณ ค่าจ้างสุทธิ = House x PayRate
4. แสดงผลลัพธ์ เป็นรหัสพนักงาน ชื่อ และค่าจ้างสุทธิ
5. จบการทำงาน
กำหนดวิธีการคำนวณ
ค่าจ้างสุทธิ = จำนวนชั่วโมง X อัตราต่อชั่วโมง
ขั้นตอนการประมวลผล
1. เริ่มต้น
2. รับรหัสพนักงาน,ชื่อพนักงาน,จำนวนชั่วโมงทำงาน,ค่าจ้างรายชั่วโมง
3. คำนวณ ค่าจ้างสุทธิ = House x PayRate
4. แสดงผลลัพธ์ เป็นรหัสพนักงาน ชื่อ และค่าจ้างสุทธิ
5. จบการทำงาน
2. การเลือกเครื่องมือและออกแบบขั้นตอนวิธี
หลังจากที่ได้วิเคราะห์ปัญหาแล้ว ขั้นตอนต่อไปจะใช้เครื่องมือช่วยในการออกแบบโปรแกรม โดยเขียนเป็นลำดับขั้นตอนการทำงานของโปรแกรมที่เรียกว่าอัลกอริทึม (Algorithm) โดยจะเขียนแสดงขั้นตอนการแก้ปัญหา ด้วยประโยคที่ชัดเจนไม่คลุมเครือ และมีรายละเอียดการทำงานพอสมควรเพียงพอที่จะนำไปเขียนเป็นโปรแกรมให้ทำงานจริง โดยอัลกอริทึมนั้นอาจเขียนให้อยู่ในรูปของรหัสจำลองหรือซูโดโค้ด (Pseudo-code) หรือเขียนเป็นผังงาน (Flowchart) ก็ได้
- การเขียนผังงาน
ผังงานเป็นแผนภาพที่แสดงลำดับขั้นตอนในการทำงานของโปรแกรม โดยมีการลงรายละเอียด ใส่วิธีการ และจัดลำดับขั้นตอนของโปรแกรม ตั้งแต่เริ่มต้นจากการรับข้อมูล การประมวลผล ไปจนถึงการแสดงผลลัพธ์การทำงาน
3.การเขียนโปรแกรม
เปลี่ยนขั้นตอนการทำงานให้อยู่ในรูปรหัสภาษาคอมพิวเตอร์ การเขียนโปรแกรมจะต้องเขียนตามภาษาที่คอมพิวเตอร์เข้าใจโดยอาจใช้ภาษาระดับสูง หรือระดับต่ำซึ่งสามารถเลือกได้หลายภาษา การเขียนโปรแกรมแต่ละภาษาจะต้องทำตามหลักไวยากรณ์ (syntax) ที่กำหนดไว้ในภาษานั้น
4.การทดสอบและแก้ไขโปรแกรม
หลังจากเขียนโปรแกรมจะต้องทดสอบความถูกต้องของโปรแกรมที่เขียนขึ้น หาจุดผิดพลาดของโปรแกรมว่ามีหรือไม่ จุดผิดพลาดของโปรแกรมนี้เรียกว่าบัก (Bug) ส่วนการแก้ไขข้อผิดพลาดให้ถูกต้องเรียกว่า ดีบัก(debug)
โดยทั่วไปแล้วข้อผิดพลาดจากการเขียนโปรแกรมจะมีสองประเภทคือ
1. การเขียนคำสั่งไม่ถูกต้องตามหลักการเขียนโปรแกรมภาษานั้น ๆ ซึ่งเรียกว่า Syntax Error หรือ Coding Error ข้อผิดพลาดประเภทนี้เรามักพบตอนแปลภาษาโปรแกรมเป็นรหัสภาษาเครื่อง
2. ข้อผิดพลาดทางตรรก หรือ Logic Error เป็นข้อผิดพลาดที่โปรแกรมทำงานได้ แต่ผลลัพธ์ออกมาไม่ถูกต้อง
5.ทำเอกสารและบำรุงรักษาโปรแกรม ขั้นตอนนี้จะทำให้ผู้ใช้สามารถใช้งานโปรแกรมได้อย่างมีประสิทธิภาพ และสะดวกในการตรวจสอบข้อผิดพลาดโดยเขียนเป็นเอกสารประกอบโปรแกรมขึ้นมา โดยทั่วไปแล้วแบ่งออกเป็นสองประเภทคือ
1. คู่มือการใช้ หรือ User Document หรือ User guide ซึ่งจะอธิบายการใช้โปรแกรม
2. คู่มือโปรแกรมเมอร์ หรือ Program Document หรือ Technical Reference ซึ่งจะอำนวยความสะดวกในการแก้ไขโปรแกรมและพัฒนาโปรแกรมในอนาคต โดยจะมีรายละเอียดต่างๆ เกี่ยวกับโปรแกรม เช่นชื่อโปรแกรม การรับข้อมูล การพิมพ์ผลลัพธ์ขั้นตอนต่าง ๆ ในโปรแกรม เป็นต้น