บทที่ 9

วิธีการทางคอมพิวเตอร์

( Principle of Poblem Solving By Computer)


     1.)วิธีการทางคอมพิวเตอร์( Computer Algorithms)

       ในการพัฒนาซอฟต์แวร์ ต้องมีการเตรียมงานเกี่ยวกับการเขียนโปรแกรมอย่างเป็นขั้นตอน เรียกขั้นตอนดังกล่าวว่า วิธีการทางคอมพิวเตอร์ (Computer Algorithms) ซึ่งถือเป็นขั้นตอนที่จำเป็นในการพัฒนาซอฟต์แวร์ เพื่อให้การเขียนโปรแกรมเป็นไปอย่างไม่มีอุปสรรค และได้ผลลัพธ์ตามที่ต้องการประกอบด้วยงาน 5 อย่างดังนี้

      1.การวิเคราะห์งาน(Problem analization)
       เป็นขั้นตอนการวางแผนเพื่อคือการพิจารณาศึกษารายละเอียดและลักษณะของงานที่ต้องการให้คอมพิวเตอร์ทำ ว่ามีรูปแบบผลลัพธ์เป็นอย่างไร ต้องการใช้ข้อมูลอะไรเพื่อให้ได้ผลลัพธ์ที่ต้องการ และการประมวลผลจะมีขั้นตอนและใช้สูตรอะไร เตรียมการให้พร้อมที่จะเขียนโปรแกรม

      2. การออกแบบวิธีการแก้ปัญหา (Algorithms design)
       เป็นขั้นตอนในการนำผลที่ได้จากการวิเคราะห์งาน มาวางแผนการแก้ไขปัญหา โดยการแสดงลำดับขั้นตอนกระบวนการแก้ปัญหา เรียกว่า อัลกอริทึม(algorithms) เช่น การเขียนผังงาน(Flowchart)การเขียนรหัสเทียม(Psuedo code) เป็นต้น

      3. การเขียนโปรแกรม(Programming)
       เป็นการเปลี่ยนขั้นตอนและวิธีการในอัลกอริทึม ให้อยู่ในรหัสภาษาคอมพิวเตอร์(Programming language) ภาษาใดภาษาหนึ่ง การเลือกใช้ภาษาคอมพิวเตอร์ใดนั้น ขึ้นอยู่กับลักษณะและประเภทของงาน ขีดความสามารถและข้อจำกัดของภาษา และความถนัดและความชำนาญของผู้เขียนโปรแกรม

      4. การทดสอบและการแก้ไขโปรแกรม
       หมายถึง การตรวจสอบความถูกต้องของคำสั่งหรือโปรแกรมที่เขียนขึ้น และแก้ไขข้อผิดพลาด(Bugs) ของโปรแกรมที่ทำให้ไม่สามารถได้ผลลัพธ์ตามต้องการ การแก้ไขข้อผิดพลาดเรียกว่า Debuggingโดยส่วนใหญ่ข้อผิดพลาดจากการเขียนโปรแกรมมี 2 ชนิด คือ
-Syntax Error หรือ Coding Error ข้อผิดพลาดที่เกิดจากการเขียนรหัสคำสั่งไม่ถูกต้องตามหลักไวยากรณ์ของภาษาคอมพิวเตอร์ ในรอบแปล(Compilation Run) จะตรวจสอบ และจะแสดงข้อความผิดพลาด(Error Message) ออกมา
-Logic Error เป็นข้อผิดพลาดที่ทำให้เกิดผลลัพธ์ไม่ถูกต้องตามวัตถุประสงค์ของงานที่กำหนดไว้ เช่น ผลลัพธ์ต้องเป็น 15.50 แต่ได้ผลลัพธ์เป็น 15.75 ซึ่งอาจเกิดจากสูตรในการคำนวณไม่ถูกต้อง
การตรวจสอบโปรแกรมเพื่อหาข้อผิดพลาด นิยมดำเนินการ 2 ช่วง ได้แก่
1. การทดสอบที่ทำโดยผู้พัฒนาระบบเอง ก่อนนำไปใช้งานจริง โดยการใช้ข้อมูลสมมติทดสอบ ว่าได้ผลลัพธ์ตามที่ต้องการหรือไม่
2. การทดสอบที่ทำโดยผู้ใช้ระบบจริง โดยการใช้งานในสภาวะแวดล้อมจริง


      5. การจัดทำเอกสารและบำรุงรักษาโปรแกรม
1. เอกสารประกอบโปรแกรม มีความสำคัญกับการเขียนโปรแกรมมาก อาจจะเริ่มทำไปพร้อมกับการเขียนโปรแกรมแบ่งเป็น 2 ประเภทคือ
-คู่มือผู้ใช้(User manual) จะอธิบายวิธีการใช้โปรแกรม
-คู่มือโปรแกรมเมอร์(Programmer manual) จะมีรายละเอียดต่าง ๆ เกี่ยวกับ ชื่อโปรแกรม ชื่อผู้เขียนโปรแกรม วันที่เขียนโปรแกรม จุดประสงค์ของโปรแกรม สื่อที่ใช้ในการบันทึกข้อมูลเข้า ผลลัพธ์ที่ได้ วิธีการขั้นตอนต่าง ๆ ในโปรแกรม รวมทั้งผังงาน ฯลฯ เป็นประโยชน์ในการแก้ไขโปรแกรมในอนาคต
-คู่มือผู้ใช้(User manual) จะอธิบายวิธีการใช้โปรแกรม
-คู่มือโปรแกรมเมอร์(Programmer manual) จะมีรายละเอียดต่าง ๆ เกี่ยวกับ ชื่อโปรแกรม ชื่อผู้เขียนโปรแกรม วันที่เขียนโปรแกรม จุดประสงค์ของโปรแกรม สื่อที่ใช้ในการบันทึกข้อมูลเข้า ผลลัพธ์ที่ได้ วิธีการขั้นตอนต่าง ๆ ในโปรแกรม รวมทั้งผังงาน ฯลฯ เป็นประโยชน์ในการแก้ไขโปรแกรมในอนาคต
2. การบำรุงรักษาโปรแกรม
คือการปรับปรุงแก้ไขโปรแกรมให้ทันสมัยเหมาะกับสภาวะการณ์ที่เป็นอยู่ในปัจจุบัน รวมถึงการรักษาสื่อข้อมูลที่มีโปรแกรมบันทึกอยู่ ให้อยู่ในสภาพพร้อมใช้งานได้


     2.)การวิเคราะห์งาน( Problem Analization)

nbsp      เป็นขั้นตอนการวางแผน และศึกษารายละเอียดของโจทย์และลักษณะของงานที่ต้องการให้คอมพิวเตอร์ทำ โดยพิจารณา รูปแบบผลลัพธ์ที่ต้องการเป็นอย่างไร ,ต้องการใช้ข้อมูลอะไรเพื่อให้ได้ผลลัพธ์ที่ต้องการ และการประมวลผลจะมีขั้นตอนและใช้สูตรอะไร

     หลักเกณฑ์ในการวิเคราะห์งาน

      ประกอบด้วย 5 หัวข้อ ได้แก่
      1. สิ่งที่โจทย์ต้องการ
      หมายถึง การพิจารณาอย่างละเอียดเกี่ยวกับ “งานที่ต้องการให้คอมพิวเตอร์ทำ” และผลที่ได้ให้ตรงกับเป้าหมายการพิจารณางานนั้น เป็นการบอกให้ทราบว่างานที่ต้องการให้ทำมีอะไรบ้าง ถ้าผลลัพธ์มีมากกว่า 1 อย่าง ควรแยกเขียนเป็นข้อ ๆ ให้ชัดเจน

     ตัวอย่างเช่น Ex. ต้องการคำนวณหาคะแนนสูงสุด คะแนนต่ำสุดและคะแนนเฉลี่ยของผู้เข้าสอบวิชาคอมพิวเตอร์และการเขียนโปรแกรมทั้งหมด มีการสอบ 2 ครั้งคือ กลางภาคและปลายภาค
สิ่งที่โจทย์ต้องการ :
1. คำนวณหาคะแนนสูงสุด
2. คำนวณหาคะแนนต่ำสุด
3. คำนวณหาคะแนนเฉลี่ย


      2. รูปแบบผลลัพธ์
      หมายถึง การพิจารณาหรือศึกษาถึง “ ลักษณะของผลลัพธ์ที่ต้องการให้คอมพิวเตอร์แสดงออกมาให้เห็น” เป็นการกำหนดรายละเอียดเป้าหมายของการเขียนโปรแกรมให้ชัดเจน

      3. ข้อมูลนำเข้า
      หมายถึง ข้อมูลที่ต้องป้อนเข้ามาเพื่อใช้ในการประมวลผล เพื่อให้ได้ผลลัพธ์ตามที่ต้องการออกมา นอกจากการพิจารณาข้อมูลที่จำเป็นต้องใช้ในการประมวลผลแล้ว ต้องคำนึงถึงรูปแบบของข้อมูลที่จะใช้ให้สอดคล้องกับตัวโปรแกรมด้วย

Ex1. ปีการศึกษา รหัสประจำผู้สอบ ชื่อ นามสกุล คะแนนสอบกลางภาค คะแนนสอบปลายภาค
Ex2. เลขที่ ชื่อพนักงาน ค่าจ้างรายวันและจำนวนวันที่ทำงาน
Ex3. เลขที่ ชื่อพนักงาน เงินเดือนที่ได้รับและอัตราภาษีที่ต้องจ่าย
Ex4. เพศ อายุ ของสมาชิกชมรมคอมพิวเตอร์


      4. การกำหนดตัวแปรที่ใช้
      หมายถึง การกำหนดชื่อแทนความหมายของข้อมูลต่าง ๆ การตั้งชื่อตัวแปร ต้องตั้งชื่อให้มีความหมาย และต้องอยู่ในกฏเกณฑ์การตั้งชื่อของภาษาที่ใช้ในการเขียนโปรแกรมด้วย

     ตัวอย่างเช่น
s = ภาคการศึกษา
ID = รหัสประจำตัว
name = ชื่อ
surname = นามสกุล
Mid = คะแนนกลางภาค
Final = คะแนนปลายภาค
Total = คะแนนรวม (Mid + Final)
Max = คะแนนสูงสุด
Min = คะแนนต่ำสุด
Mean = คะแนนเฉลี่ย
Num = จำนวนนักศึกษา
sum = คะแนนรวมของนักศึกษาทุกคน


      5. วิธีการประมวลผล
      หมายถึง ขั้นตอนอธิบายลำดับและวิธีการประมวลผล เพื่อให้ได้ผลลัพธ์ตามรูปแบบที่ต้องการ

     ตัวอย่างการวิเคราะห์งาน

      โครงสร้างเลือกทำ(Selection Structure)
โครงสร้างวนซ้ำ (Iteration Structure)     โจทย์
จงเขียนโปรแกรมคำนวณคะแนนรวมจากการรับค่าคะแนนรายภาคและคะแนนปลายภาค เพื่อพิจารณาว่าสอบผ่านหรือสอบตก โดยแสดงผลการสอบ ถ้าคะแนนรวมต่ำกว่า 60 คะแนน ถือว่าสอบตก


     1. สิ่งที่โจทย์ต้องการ

-คะแนนรวม
-ผลการสอบ


     2. รูปแบบผลลัพธ์

<รอรับค่าคะแนนรายภาค>
กรอกคะแนนปลายภาค => <รอรับค่าคะแนนปลายภาค>
คะแนนรวม => <แสดงค่าคะแนนรวม>
ผลการสอบ => <แสดงค่าผลการสอบ>


     3.ข้อมูลนำเข้า

-คะแนนรายภาค
-คะแนนปลายภาค


     4. กำหนดตัวแปรที่ใช้

ชื่อตัวแปร    ความหมาย
Mid_score คะแนนรายภาค
Final_score คะแนนปลายภาค
Total_score คะแนนรวม


     5. วิธีการประมวลผล

1. เริ่มต้น
2. รับค่าใส่ตัวแปร Mid_score , Final_score
3. คำนวณ Total_score = Mid_score + Final_Score
4. เปรียบเทียบ ถ้า Total_score >= 60 ดังนี้
    -ถ้า เป็นจริง ให้ พิมพ์ข้อความ “สอบผ่าน” ไปทำข้อ 5
    -ถ้า เป็นเท็จ ให้ พิมพ์ข้อความ “สอบตก” ไปทำข้อ 5
5. จบการทำงาน


     ตัวอย่างการวิเคราะห์งาน

      โครงสร้างวนซ้ำ(Iteration Structure)
     ตัวอย่างเช่น
    โจทย์
จงเขียนโปรแกรมเพื่อคำนวณหาสูตรคูณ โดยการรับแม่สูตรคูณจากผู้ใช้ทางคีย์บอร์ด


     1.สิ่งที่โจทย์ต้องการ : สูตรคูณ

     2.รูปแบบผลลัพธ์

สูตรคูณแม่ : 10 <รับค่าจากผู้ใช้ สมมุติว่าป้อนแม่ 10>
10 x 1 = 10
10 x 2 = 20
.... 10 x 12 = 120


     3. ข้อมูลนำเข้า

      ตัวเลขแม่สูตรคูณ

     4. กำหนดตัวแปรที่ใช้

N = ตัวเลขแม่สูตรคูณ
Mul = เก็บผลการคูณ
i = ตัวแปรใช้นับจำนวนรอบตั้งแต่ 1 - 12


     5. การประมวลผล
1. กำหนดค่าเริ่มต้นให้ Mul = 0 , i = 1
2. รับค่าตัวแปร N
3. เปรียบเทียบค่า i <= 12 ดังนี้
    - ถ้า เป็นจริง ไปทำข้อ 4
    - ถ้า เป็นเท็จ ไปทำข้อ 7
4. คำนวณ Mul = N * i
5. พิมพ์ค่า N , i , Mul
6. เพิ่มรอบการทำงานโดยกำหนดให้ i = i + 1 กลับไปทำข้อ3
7. จบการทำงาน