ส่งงานครั้งที่ 1
ภาษาปาสคาล
ภาษาปาสคาลเป็นภาษาคอมพิวเตอร์ชั้นสูงที่พัฒนาขึ้นโดย Niklaus Wirth และได้ตั้งชื่อว่าปาสคาล (Pascal) เพื่อให้เกียรติแก่นักวิทยาศาสตร์ชาวฝรั่งเศส ชื่อ Blaise Pascal ภาษาปาสคาล พัฒนามาจากภาษา Algol โดยพัฒนาให้เป็นภาษาสำหรับฝึกหัดเขียนโปรแกรมคอมพิวเตอร์ ภาษาปาสคาลจะมีลักษณะเป็นภาษาคอมพิวเตอร์แบบประมวลความหรือคอมไพเลอร์ (Compiler) เมื่อเทียบกับภาษาคอมพิวเตอร์ชั้นสูงอื่น ๆ จะพบว่าภาษาปาสคาลเป็นภาษาที่มีการวางระบบและจัดรูปแบบที่มีโครงสร้างแน่นอนตายตัว จึงทำให้ภาษาปาสคาลเป็นภาษาที่เหมาะสำหรับการเขียนโปรแกรมโครงสร้าง (Structured Program) มากกว่าภาษาอื่น ๆ ที่ใช้กันอยู่จึงทำให้ได้รับความนิยมและนำมาประยุกต์ใช้งานต่าง ๆ อย่างแพร่หลาย
ประเภทของข้อผิดพลาด
สำหรับข้อผิดพลาดที่อาจเกิดขึ้นได้ในโปรแกรม จะมีอยู่หลายแบบดังนี้
- Syntax Error
- เกิดจากการเขียนไวยกรณ์ของภาษาผิดพลาด
- ตรวจพบได้ในขณะทำการแปล (Compile) โปรแกรม
- สามารถแก้ไขได้ง่ายที่สุด
ตัวอย่าง
a:=10;
writteln(a);
มีการเขียนคำสั่งผิดหลักไวยกรณ์ของภาษาได้แก่ คำสั่ง writteln (a) ซึ่งควรเขียนเป็น writeln(a) ซึ่ง
หมายถึงการสั่งให้พิมพ์ข้อมูลที่เก็บอยู่ในตัวแปร a ออกมาบนหน้าจอ
- Run-time Error
- เป็นความผิดพลาดของโปรแกรมในระหว่างการปฏิบัติงาน (Execution) ของคอมพิวเตอร์
- ข้อผิดพลาดนี้จะตรวจไม่พบในขณะทำการแปล (Compile) โปรแกรม
ตัวอย่าง
จากคำสั่ง 1/X โดยกำหนดให้ X >=0 และ X<=100 ซึ่งการหารด้วย 0 จะเกิดข้อผิดพลาด (การแปลไม่
มีข้อผิดพลาด) จะเป็นข้อผิดพลาดชนิด Run-time Error เนื่องจากไม่มีตัวเลขใดๆ ที่สามารถหารด้วยเลข 0 ได้
นั่นเอง
- Logical Error
- เกิดจากการตีความหมายของปัญหาผิดไป
- เป็นข้อผิดพลาดที่แก้ไขได้ยากที่สุด
ตัวอย่าง ต้องการคำนวณค่า x จากสูตร
a
x b b ac
2
− + 2 − 4
= เขียนเป็นประโยคคำสั่งในภาษาปาสคาล
x = - b + sqrt ( b * b – 4* a *c ) / 2 * a
การตีความหมายของคอมพิวเตอร์จะเป็น x b b ac * a
2
− + 2 − 4
=
ซึ่งคำสั่งที่ถูกต้องควรเป็น x = (- b + sqrt ( b * b – 4* a *c )) /( 2 * a)
ขั้นตอนการตรวจสอบข้อผิดพลาดของโปรแกรม
- ตรวจสอบด้วยตนเอง (Self Checking)
เป็นการตรวจสอบการทำงานทีละขั้นของโปรแกรมด้วยตนเอง อาจตรวจเจอข้อผิดพลาดแบบ
Syntax Error หรือ Logical Error ได้
- การตรวจสอบด้วยการแปรโปรแกรม (Translating)
เป็นการตรวจสอบโดยการใช้ตัวแปลภาษา (Compiler or Interpreter) อาจตรวจเจอ
ข้อผิดพลาดแบบ Syntax Error แต่ไม่สามารถตรวจเจอข้อผิดพลาด แบบ Logical Error และ Run-time Error
ได้