กระบวนการเขียนโปรแกรม พนิดา ทรงรัมย์
กระบวนการเขียนโปรแกรม (programming process) 1. การนิยามปัญหา(problem definition) 6. การจัดทำเอกสาร 2. การเตรียมวิธีคิด (การแก้ปัญหา) (algorithm) 3. การเตรียมผังงานโปรแกรม(flowchart) 4. การเขียนโปรแกรม (coding) 5. การตรวจสอบข้อผิดพลาด และการทดสอบ (debugging and testing)
ตัวอย่าง ตัวอย่าง หาพื้นที่สามเหลี่ยม 1. การนิยามปัญหา start ตัวอย่าง หาพื้นที่สามเหลี่ยม Base, Height 1. การนิยามปัญหา input: ฐาน (Base), สูง (Height) output: พื้นที่สามเหลี่ยม (Area) 2. การเตรียมวิธีแก้ปัญหา - รับข้อมูลจากคีย์บอร์ดทีละค่าใส่ในตัวแปร Base และ Height - ทำการคำนวณหาพื้นที่ ½ * Base * Height ผลลัพธ์ที่ได้เก็บไว้ในตัวแปร Area - แสดงพื้นที่สามเหลี่ยมที่อยู่ในตัวแปร Area 3. การเตรียมผังงานโปรแกรม 4. การเขียนโปรแกรม 5. การทดสอบ สมมติตัวเลขขึ้นมา 1 ชุด คือ 4 6 หลังจากโปรแกรมทำงานเสร็จ คำตอบที่ได้คือ Area is 12 Area ½ * Base * Height; ‘Area is’, Area stop
ตัวอย่าง start ตัวอย่าง 2.1นายหน้าค้าที่ดินต้องการแปลงหน่วยเป็นตารางวาให้เป็นตารางเมตร ID 1. นิยามปัญหา - input: รหัส (ID), ความกว้าง (WidthW) และ ความยาว(LengthW) - output: ตารางวา (Area) 2. วิธีแก้ปัญหา 2.1 รับค่าจากคีย์บอร์ดทีละค่าเก็บไว้ในตัวแปร ID, WidthW, LengthW 2.2 แปลงความกว้างจากวา->เมตร WidthW * 2 เก็บไว้ใน WidthM 2.3 แปลงความยาวจากวา->เมตร LengthW * 2 เก็บไว้ใน LengthM (1 วา = 2 เมตร) 2.4 คำนวณพื้นที่ WidthM * LengthM เก็บไว้ใน Area 2.5 แสดงรหัสและพื้นที่ตารางเมตรในตัวแปร Area 3. ผังงานโปรแกรม 4. เขียนโปรแกรม 5. ทดสอบ สมมติตัเลขขึ้นมา 1 ชุด เช่น 11 20 30 ผลลัพธ์: 11 Area is 2400 6. ในกรณีที่ต้องปรับปรุง ? WidthW LengthW WidthM WidthW * 2; LengthM LengthW * 2; Area WidthM * LengthM; ID, ’space is ’, Area stop
ตัวอย่าง ปรับปรุง ตัวอย่าง 2.1 start 1. นิยามปัญหา - input: รหัส (ID), ความกว้าง (WidthW) และ ความยาว(LengthW) - output: ตารางวา (Area) 2. วิธีแก้ปัญหา 2.1 รับค่าจากคีย์บอร์ดเก็บไว้ในตัวแปร ID, WidthW, LengthW 2.2 คำนวณพื้นที่ WidthW * LengthW*4 เก็บไว้ใน Area 2.5 แสดงรหัสและพื้นที่ตารางเมตรในตัวแปร Area 3. ผังงานโปรแกรม 4. เขียนโปรแกรม 5. ทดสอบ สมมติตัเลขขึ้นมา 1 ชุด เช่น 11 20 30 ผลลัพธ์: 11 Area is 2400 6. ในกรณีที่ต้องปรับปรุง ? ID, WidthW, LengthW Area WidthW * LengthW*4; ID, ’space is ’, Area stop
ตัวอย่าง start Cnt0; ตัวอย่าง 2.2 การนับจำนวนตัวเลขที่รับเข้ามาทางคีย์บอร์ดมีกี่จำนวน 1. นิยามปัญหา - input: ตัวเลข - output: จำนวนตัวเลขที่รับเข้าไป 2. วิธีแก้ปัญหา 2.1 ตัวนับ Cnt = 0 2.2 รับค่าจากคีย์บอด เก็บไว้ในตัวแปร X 2.3 เพิ่มตัวนับ Cnt เข้าอีกหนึ่ง ถ้าค่า X = 0 ให้ไป 2.5 2.4 ไปขั้นตอนที่ 2.2 2.5 แสดง ค่าของตัวนับ 3. ผังงานโปรแกรม 4. เขียนโปรแกรม 5. ทดสอบ สมมติตัเลขขึ้นมา 1 ชุด เช่น 8 99 12 0 ผลลัพธ์: 3 X Y X=0 N Cnt CntCnt+1; stop
แบบฝึกหัด 2.1 start Cnt0; ทดสอบกับข้อมูล 2 5 9 8 9 0 ผลลัพธ์ = 2 ? X 1 2 Y X=0 X : 2 5 9 8 9 N N Cnt X=9 Y stop CntCnt+1;
แบบฝึกหัด 2.2 บริษัทแห่งหนึ่งต้องการทราบรายได้ของพนักงานขาย โดยข้อมูลที่มีประกอบด้วย รหัสพนักงานขาย (id) เงินเดือน(sal) ยอดขาย (Amt) จำนวนที่ขาย (Num) อัตราค่านายหน้า (Agrate) โดยมีเกณฑ์ดังนี้ ค่านายหน้า (Agent) = ยอดขาย x อัตราค่านายหน้า ถ้าจำนวนสินค้าที่ขายมากกว่า 10 หน่วย จะได้โบนัสพิเศษ (bonus)อีก 5,000 บาท รายได้ = เงินเดือน + ค่านายหน้า + โบนัส เขียนผังงานโปรแกรมเพื่อ แสดงวิธีการแก้ปัญหาดังกล่าว
Income Sal+Agent+Bonus; แบบฝึกหัด 2.1 start Id, Sal, Amt, Num, Agrate Agent Amt * Agrate; N Num>10 Bonus 0; Y Bonus 5000; Income Sal+Agent+Bonus; Income stop