160 likes | 254 Views
เรื่องที่ 1 ขั้นตอนในการแก้ไขปัญหา. 1. การทำความเข้าใจกับปัญหา (Problem Statement) 2. พิจารณาข้อมูลเข้าและออก ( Input Output Description) 3. ทดลองแก้ไขปัญหาด้วยตนเอง (Hand Example) 4. การพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา ( Algorithm Development)
E N D
เรื่องที่ 1 ขั้นตอนในการแก้ไขปัญหา 1. การทำความเข้าใจกับปัญหา (Problem Statement) 2. พิจารณาข้อมูลเข้าและออก (Input Output Description) 3. ทดลองแก้ไขปัญหาด้วยตนเอง (Hand Example) 4. การพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา ( Algorithm Development) 5. ทดสอบลำดับขั้นตอนวิธีการแก้ปัญหา (Testing)
1 ทำความเข้าใจกับปัญหา พิจารณาว่าปัญหาที่จะแก้ไขคืออะไร ถ้าไม่สามารถทำความเข้าใจได้ก็ไม่สามารถจะดำเนินการในขั้นตอนถัดไปได้ ตัวอย่าง -ให้หาค่าเฉลี่ยของเลข 3 จำนวน ? อะไรคือปัญหาที่จะแก้ไข - ให้หาดอกเบี้ยของเงินฝากเมื่อครบระยะเวลา 1 ปี ปัญหาที่จะแก้ คือ ค่าเฉลี่ยของเลข 3 จำนวน ดอกเบี้ยของเงินฝากเมื่อครบระยะเวลา 1 ปี
2. การพิจารณาข้อมูลเข้าออก ต้องพิจารณาว่าข้อมูลที่จะส่งให้กับเครื่องคอมพิวเตอร์เพื่อใช้ในการแก้ปัญหานั้น คือ ข้อมูลอะไร รวมไปถึงชนิดของข้อมูลนั้นด้วยว่า ต้องใช้ข้อมูลชนิดใด (ซึ่งชนิดของข้อมูลย่อมขึ้นกับโปรแกรมที่นักศึกษาจะนำมาใช้ รวมถึงรูปแบบการประกาศข้อมูล ) ตัวอย่าง ต้องการหาอัตราผ่อนชำระรายเดือนของสินค้ารายการหนึ่ง ข้อมูลเข้าจะเป็น ราคาสินค้า อัตราดอกเบี้ย จำนวนเดือนที่จะผ่อนชำระ สามารถจำแนกลงไปได้อีกว่า ราคาสินค้าเป็นตัวเลข อัตราดอกเบี้ยเป็นตัวเลข จำนวนเดือนเป็นตัวเลข ตัวเลขมีทั้ง ตัวเลขจำนวนเต็ม เช่น 1,000 50,000 และทศนิยม เช่น 17.50
การพิจารณาข้อมูลออก (Output)เมื่อคอมพิวเตอร์ทำงานเรียบร้อยจะต้องส่งข้อมูลใดกลับมาที่ผู้ใช้บ้าง รวมถึงชนิดข้อมูลที่ส่งกลับด้วย จากตัวอย่างเดิม ข้อมูลที่ส่งกลับคือ จำนวนเงินที่ลูกค้าต้องผ่อนชำระในแต่ละเดือน ซึ่งต้องเป็นตัวเลข แต่จะเป็นจำนวนเต็มหรือทศนิยม ผู้เขียนโปรแกรมจะต้องพิจารณาเองว่าควรจะออกมาเป็นชนิดใด
การทดลองแก้ไขปัญหาด้วยตนเอง (Hand Example) วิธีการ คือ ทำการสมมุติข้อมูลขึ้นมาแล้วทำการทดลองวิธีการต่าง ๆ มาใช้ในการแก้ปัญหา แล้วเลือกวิธีการที่เหมาะสมที่สุด และถูกต้องที่สุก และเมื่อทำการส่งข้อมูลไปให้คอมพิวเตอร์ดำเนินการ ผลงานที่ออกมาจะเป็นผลการทำงานที่ถูกต้อง ตัวอย่าง การคำนวณหาอัตราผ่อนชำระรายเดือน ข้อมูลเข้าคือ ราคาสินค้า อัตราดอกเบี้ย จำนวนเดือนที่จะผ่อนชำระ สมมุติ ราคาสินค้า เท่ากับ 24,000 บาท อัตราดอกเบี้ย 14 % ต่อปี ลูกค้าต้องการผ่อนชำระ 12 เดือน
การทดลองแก้ไขปัญหาด้วยตนเอง(ต่อ)การทดลองแก้ไขปัญหาด้วยตนเอง(ต่อ) จำนวนเงินที่ต้องผ่อนชำระรายเดือน = (ราคาสินค้า + ดอกเบี้ย ) / จำนวนเดือนที่ผ่อนชำระ ดอกเบี้ย = ราคาสินค้า * อัตราดอกเบี้ย * ( จำนวนเดือน / 12 ) = 24,000 * (14/100)*(12/12) = 3,360 บาท จำนวนเงินที่ผ่อนชำระรายเดือน = (24,000 + 3,360)/12 = 2,280 บาท
การพัฒนาลำดับขั้นตอนการทำงาน (Algorithm Development) Algorithm หมายถึง การอธิบายลำดับขั้นตอนการทำงานลักษณะข้อความ ตั้งแต่ขั้นตอนแรกจนถึงขั้นสุดท้าย โดยมีลำดับขั้นตอน ดังนี้
การอธิบายขั้นตอนอย่างหยาบ (Decomposition) • 1. เริ่มต้น • 2. รับค่าราคาสินค้า • 3. รับค่าอัตราดอกเบี้ยรายปี • 4. รับค่าจำนวนเดือนที่ต้องผ่อนชำระ • 5. คำนวณหาค่าจำนวนเงินที่ต้องชำระรายเดือน • 6. แสดงค่าจำนวนเงินที่ต้องชำระรายเดือน • 7. จบการทำงาน
2. การอธิบายขั้นตอนอย่างละเอียด (Refinement) ให้พิจาณาว่าขั้นตอนหยาบ มีความละเอียดพอให้เครื่องคอมพิวเตอร์ทำงานให้หรือยัง ถ้ายังไม่ละเอียดต้องแยกย่อยให้ละเอียดขึ้น จากตัวอย่าง ขั้นตอนที่ควรแยกย่อยคือขั้นตอนที่ 5 และ 6 คือ คำนวณหาค่าจำนวนเงินที่ต้องชำระรายเดือน ยังไม่บอกว่าคำนวณโดยวิธีใด . แสดงค่าจำนวนเงินที่ต้องชำระรายเดือน มีวิธีการทำอย่างไร ซึ่งขยายได้ ดังนี้ 1. เริ่มต้น 2. รับค่าราคาสินค้า 3. รับค่าอัตราดอกเบี้ยรายปี
4. รับค่าจำนวนเดือนที่ต้องผ่อนชำระ 5. คำนวณดอกเบี้ยจาดสูตร ดอกเบี้ย ราคาสินค้า * อัตราดอกเบี้ย * (จำนวนเดือน/12) 6. คำนวณหาค่าจำนวนเงินที่ต้องชำระรายเดือน จากสูตร เงินที่ต้องผ่อนชำระรายเดือน - (ราคาสินค้า + ดอกเบี้ย) / จำนวน เดือนที่ต้องการผ่อนชำระ 6. แสดงค่าจำนวนเงินที่ต้องชำระรายเดือน 7. จบการทำงาน ถ้าปัญหาไม่ซับซ้อนมากนัก การอธิบายขั้นตอนแบบหยาบอาจใช้ได้เลย
3. คำสั่งเทียม (Pseudo Code) Pseudo Code หมายถึง ภาษาที่ใกล้เคียงกับภาษาคอมพิวเตอร์ที่ใช้ในการเขียนโปรแกรม แต่จะไม่อ้างอิงกับภาษาใดภาษาหนึ่ง ปกติจะใช้ภาษาอังกฤษในการเขียน Pseudo Code เพราะโปรแกรมคอมพิวเตอร์จะเป็นภาษาอังกฤษทั้งหมด คำสั่งเทียมยังไม่สามารถป้อนให้คอมพิวเตอร์ทำงานได้ ต้องทำการพัฒนาต่อให้เป็นโปรแกรมภาษาคอมพิวเตอร์อีกครั้งหนึ่ง จากตัวอย่างสามารถนำมาเขียนได้ดังนี้
Begin Read Price Read Interest_rate Read Month Interest --Price x Interest_rate x(Month/ 12) Payment --(Price + Interest)/Month Write Payment End
การทดสอบลำดับขั้นตอนในแก้ไขปัญหาการทดสอบลำดับขั้นตอนในแก้ไขปัญหา ในขั้นที่ให้สมมุติตัวคนทดสอบเป็นเครื่องคอมพิวเตอร์ แล้วทำตามคำสั่งเทียมที่ละขั้นตอน ขั้นตอนใดมีข้อมูลเข้าก็ให้สมมุติข้อมูลขึ้นมา แล้วทดสอบขั้นตอนต่าง ๆ จนถึงสุดท้าย แล้วพิจาณาผลงานว่ามีความถูกต้องหรือไม่ ในการทดสอบควรพิจารณาข้อมูลประมาณ 2 ชุด จากตัวอย่าง ทดสอบข้อมูล (สมมุติทดสอบแค่ชุดเดียว) เมื่อราคาสินค้า = 35,000 บาท อัตราดอกเบี้ย 13.5 เปอร์เซ็นต์ต่อปี ระยะเวลาที่ต้องการจะผ่อนชำระ = 24 เดือน
Begin บอกการเริ่มต้นของขั้นตอนการทำงาน • Read Price • รับราคาสินค้าเข้ามา ในที่นี้ = 35,000 บาท • 3. Read Interest_rate • รับค่าอัตราดอกเบี้ย ในที่นี้ = 13.5 % ต่อปี • 4. Read Month • รับค่าเวลาที่ต้องการผ่อนชำระ ในที่นี้คือจำนวนเดือน = 24 เดือน • 5. Interest ---Price x Interest_rate x (Month/12) • คำรวณหาจำนวนดอกเบี้ย = 35,000x(13.5/100)x(24/12)
6. Payment ---(Price + Interest) / Month • คำนวณหาจำนวนเงินที่ต้องชำระรายเดือน • = (35,000 + 9,450) /24 = 1,852.08 บาท • 7. Write Payment • แสดงค่าจำนวนเงินที่ต้องชำระรายเดือน คือ 1,852.08 บาท • End • บอกจุดสิ้นสุดของลำดับขั้นตอนการทำงานทั้งหมด ปฏิบัติกิจกรรมครั้งที่ 1 ตามเอกสารที่ผู้สอนแจก