ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

Show

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

ตัวอย่างการตรวจสอบข้อผิดพลาด

เขียนโปรแกรมทายเลขคู่ เลขคี่ โดยผู้ใช้จะต้องตอบคำถามว่า 2 เป็นเลขคู่ใช่หรือไม่ ซึ่งมีเงื่อนไขดังนี้

โปรแกรมคำถามว่า 2 เป็นเลขคู่ใช่หรือไม่”

ถ้าผู้เล่นตอบ “ใช่” ตัวละครจะแสดงคำว่า “ถูกต้อง”

ถ้าผู้เล่นตอบ “ไม่ใช่” ตัวละครจะแสดงคำว่า “ผิด”

แต่โปรแกรมที่เขียนขึ้นมามีข้อผิดพลาด คือ เมื่อผู้ใช้ตอบ “ใช่” โปรแกรมจะแสดงข้อความทั้ง “ถูกต้อง” และ “ผิด”

ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

การตรวจสอบข้อผิดพลาดของโปรแกรม

          เมื่อพบว่ามีข้อผิดพลาดเกิดขึ้น สามารถหาข้อผิดพลาดโดยพิจารณาคำสั่งจากผังงาน (Flowchart) ที่ได้ออกแบบไว้ ดังนี้

ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

          จากการตรวจสอบ พบข้อผิดพลาดคือ เมื่อโปรแกรมรับคำตอบจากผู้ใช้แล้ว โดยถ้าคำตอบคือ “ใช่” จะแสดงคำว่า “ถูกต้อง” ถ้าคำตอบคือ “ไม่ใช่” จะแสดงคำว่า “ผิด” ซึ่งการตรวจสอบเงื่อนไขในลักษณะนี้ ต้องใช้คำสั่ง ถ้า…แล้ว…มิฉะนั้น แต่ในโปรแกรมใช้คำสั่ง ถ้า อย่างเดียว

ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

การแก้ไขข้อผิดพลาดของโปรแกรม

หลังจากตรวจสอบข้อผิดพลาดของโปรแกรมแล้ว สามารถแก้ไขข้อผิดพลาดของโปรแกรมได้ ดังนี้

ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

8.5 ชนิดของข้อผิดพลาด (Type of Errors)

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

1. ข้อผิดพลาดที่เกิดจากไวยากรณ์ (Syntax Errors)

ข้อผิดพลาดที่เกิดจากไวยากรณ์ (Syntax Errors) ข้อผิดพลาดชนิดนี้ เกิดจากการใช้ไวยากรณ์หรือรูปแบบภาษาที่ผิด เช่น สะกดคำสั่งผิด แทนที่จะต้องพิมพ์คำสั่ง clrscr ก็พิมพ์เป็น clrser เป็นต้น ซึ่งเมื่อผ่านการแปลแล้ว ตัวแปลภาษาก็จะไม่รู้จักคำสั่งดังกล่าว อย่างไรก็ตาม ข้อผิดพลาดจากไวยากรณ์นั้น คอมไพเลอร์สามารถตรวจสอบพบ และแจ้งข้อผิดพลาดที่เกิดขึ้นให้ทราบได้

ตัวอย่างที่ 16 ข้อผิดพลาดที่เกิดจากไวยากรณ์ (Syntax Errors)


ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม
Program Syntax_Error;
Uses WinCrt
Var Num := Integer;
Begin
  Clrser;
  Num=10;
  Writte(‘Number = ’);
  Write(Num);
  ReadLn;
End
ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

2. ข้อผิดพลาดที่เกิดจากตรรกะโปรแกรม (Logic Errors)

ข้อผิดพลาดที่เกิดจากตรรกะโปรแกรม (Logic Errors) ข้อผิดพลาดชนิดนี้ เกิดจากตัวผู้เขียนโปรแกรมเอง เช่นการใช้ตรรกะในการสร้างเงื่อนไขผิดพลาด หรือการสร้างสูตรคำนวณที่ผิด ส่งผลให้ผลลัพธ์ผิดพลาดไม่ตรงกับความเป็นจริง เช่น การหาค่าเฉลี่ยของตัวเลขสองจำนวน ถ้าเราสร้างสูตรคือ Average = Num1 + Num2 / 2 ผลลัพธ์ที่ได้จะผิด เพราะถ้าเราดูที่ลำดับความสำคัญของเครื่องหมาย นิพจน์นี้จะทำการหารก่อน แล้วค่อยบวกทีหลังถ้าเราจะแก้ไขให้ถูกต้องจะต้องแก้ไขเป็น Average = (Num1 + Num2) / 2 ซึ่งข้อผิดพลาดแบบนี้คอมไพเลอร์จะตรวจสอบไม่พบ ดังนั้นผู้เขียนโปรแกรมจึงต้องมีการตรวจสอบเงื่อนไขหรือสูตรให้ถูกต้องก่อนทุกครั้ง

ตัวอย่างที่ 17 ข้อผิดพลาดที่เกิดจากตรรกะโปรแกรม (Logic Errors)


ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม
Program Logical_Error;
Uses WinCrt;
Var Num1,Num2:Integer;
Average:Real;
Begin
  Clrscr;
  Num1:=10;
  Num2:=20;
  Average:=Num1+Num2/2;
  Write('Average Of ( ',Num1,' And ',Num2,' ) = ',Average:1:2);
  ReadLn;
End.
ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม

3. ข้อผิดพลาดในขณะที่รันโปรแกรม (Runtime Errors)

ข้อผิดพลาดในขณะที่รันโปรแกรม (Runtime Errors) ข้อผิดพลาดแบบ Run-time errors เป็นข้อผิดพลาดที่จะพบได้ในตอนที่เครื่องกำลังทำงานตามโปรแกรมนั้น ๆ โปรแกรมที่มีข้อผิดพลาดชนิด Run-time errors อาจจะคอมไพล์ผ่านได้ (ถ้าไม่มี Syntax errors) แต่จะไม่สามารถรันได้ ยกตัวอย่างเช่น x := 10 และ y:=0 จากนั้นมีการสั่งให้คำนวณค่าของ x หารด้วย y เมื่อเราคอมไพล์ โปรแกรมจะคอมไพล์ผ่าน แต่ไม่สามารถรันผลลัพธ์ได้ เพราะเกิดจากการหารด้วยศูนย์

ตัวอย่างที่ 18 ข้อผิดพลาดในขณะที่รันโปรแกรม (Runtime Errors)


ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม
Program Runtime_Error;
Uses WinCrt;
Var X,Y:Integer;
Z:Real;
Begin
  Clrscr;
  X:=10;
  Y:=0;
  Z:=X/Y;
  Write(X,'/',Y,'=',Z:1:2);
  ReadLn;
End.
ข้อใด ไม่ใช่ ขั้น ตอน การ ตรวจ สอบ ข้อ ผิด พลาด ของโปรแกรม


ข้อใดคือการตรวจสอบข้อผิดพลาดของโปรแกรม

การตรวจทานโปรแกรมโดยทั่วไปเรียกว่าdebuggingซึ่งเป็นระยะหนึ่งในการเขียนโปรแกรมรวมถุงการตรวจสอบ (checking) การทดสอบ (testing) และการทำให้ถูกต้อง (correction) เหราะการเขียนคำสั่งโปรแกรมใหม่ ๆ อาจเกิดข้อผิดพลาด (bugs) ได้ง่าย

ข้อผิดพลาดของโปรแกรมคืออะไร

1. ข้อผิดพลาดจากการเขียนโปรแกรม (Compile Error) เป็นข้อผิดพลาดที่เกิดจากการเขียนคำสั่งผิด ไม่ตรงกับโครงสร้างของภาษาซี ซึ่งจะมีผลทำให้โปรแกรมที่เขียนขึ้นไม่สามารถแปลความหมาย และทำงานได้ จากนั้นโปรแกรมจะบอกถึงสาเหตุ และแสดงจุดที่ผิดพลาดตำแหน่งนั้น ๆ

การตรวจสอบข้อผิดพลาดของโปรแกรมมีกี่ประเภท อะไรบ้าง

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

กระบวนการในการตรวจหาข้อผิดพลาดในโปรแกรมที่เขียนขึ้น เรียกว่าอะไร

4. ขั้นทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging) ขั้นตอนนี้เป็นการตรวจสอบจุดผิดพลาดของโปรแกรม (Bugs) ที่เขียนขึ้น และดำเนินการแก้ไขข้อผิดพลาดนั้น เรียกกระบวนการนี้การ Debugs โปรแกรมที่ทำงานไม่ได้ตามวัตถุประสงค์ เรียกว่าโปรแกรมมี Error เกิดขึ้น Error ของโปรแกรมมักมีมาจาก 3 สาเหตุใหญ่ ๆ คือ