วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2555

การเขียนโปรแกรม


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


1.1 ขั้นตอนวิธีการทางคอมพิวเตอร์ (computer algorithms)

ก่อนที่เราจะเขียนโปรแกรมคอมพิวเตอร์ภาษาใดภาษาหนึ่งเพื่อแก้ปัญหาทางคอมพิวเตอร์ เราควรศึกษาขั้นตอนวิธีการทางคอมพิวเตอร์ เพื่อให้เกิดความรู้ความเข้าใจที่ถูกต้องตามขั้นตอนวิธีดังนี้

1) การวิเคราะห์งาน (job analysis)

2) การเขียนผังงานโปรแกรม (program flowcharting)

3) การเขียนโปรแกรม (programming)

4) การทดสอบ และแก้ไขโปรแกรม (testing and editing program)

5) การจัดทำเอกสารประกอบ และการบำรุงรักษาโปรแกรม (documentation and maintenance program)


1.1.1 การวิเคราะห์งาน (job analysis) ในการวิเคราะห์งานเราจะต้องกำหนดจุดประสงค์ของการวิเคราะห์งาน และขั้นตอนวิธีการวิเคราะห์งานแต่ละอย่างให้ได้ ซึ่งงานแต่ละอย่างมีรายละเอียดดังนี้

1.1.1.1 จุดประสงค์ของการวิเคราะห์งาน

ในการวิเคราะห์งานแต่ละอย่างมีจุดประสงค์ของการวิเคราะห์งานที่สำคัญดังนี้

1. เพื่อหาวัตถุประสงค์ของการเขียนโปรแกรม

2. เพื่อหารูปแบบผลลัพธ์ที่ต้องการ

3. เพื่อหาข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรม

4. เพื่อหาตัวแปรที่จำเป็นต้องใช้ในโปรแกรม

5. เพื่อหาขั้นตอนวิธีการทำงานของโปรแกรม

1.1.1.2 ขั้นตอนวิธีการวิเคราะห์งาน

ในการวิเคราะห์งานแต่ละอย่างมีขั้นตอนวิธีการวิเคราะห์งานที่สำคัญดังนี้

1) การหาวัตถุประสงค์ของการเขียนโปรแกรม

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

2) การหารูปแบบผลลัพธ์ที่ต้องการ

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

3) การหาข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรม

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


ตัวอย่างที่ 1.1 ผลลัพธ์ที่ต้องการ คือ พื้นที่สามเหลี่ยมมุมฉากข้อมูลนำเข้าที่ต้องใส่เข้าไปในโปรแกรมคือ

1) สูตรคำนวณพื้นที่สามเหลี่ยมมุมฉาก

พื้นที่สามเหลี่ยมมุมฉาก = ? x ฐาน x สูง

2) ความยาวของฐานและความสูงของรูปสามเหลี่ยม

4) การหาตัวแปรที่จำเป็นต้องใช้ในโปรแกรม

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

5) การหาขั้นตอนวิธีการทำงานของโปรแกรม


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


ขั้นตอนวิธีการทำงานของโปรแกรมที่แนะนำ

5.1) เริ่มต้นทำงาน

5.2) กำหนดค่าเริ่มต้นให้กับตัวแปร

5.3) พิมพ์หัวรายงาน (ถ้ามีรายงาน)

5.4) รับข้อมูลเข้าทีละเรคอร์ด

5.5) ตรวจสอบข้อมูลว่าเป็นชุดสุดท้ายหรือไม่

5.5.1 ถ้าเป็นข้อมูลชุดสุดท้าย ให้ไปทำงานข้อ 5.11

5.5.2 ถ้าไม่ใช่ข้อมูลชุดสุดท้าย ให้ทำงานข้อต่อมา (ข้อ 5.6)

5.6) คำนวณผลลัพธ์

5.7) เปรียบเทียบผลลัพธ์ (ถ้ามี)

5.8) เพิ่มค่าตัวแปรสะสม (ถ้ามี)

5.9) พิมพ์ค่าผลลัพธ์ทีละเรคอร์ด

5.10) ย้อนกลับไปทำงานข้อ 5.4

5.11) พิมพ์สรุป (ถ้ามี)

5.12) จบการทำงาน



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

การเขียนผังงานโปรแกรม (program flowcharting)

สำหรับหัวข้อการเขียนผังงานโปรแกรมจะประกอบด้วยเนื้อหาที่สำคัญดังนี้คือ ความหมายของผังงาน ประเภทของผังงาน สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม หลักการเขียนผังงานโปรแกรม และขั้นตอนการเขียนผังงานโปรแกรม ดังรายละเอียดต่อไปนี้

1.1.2.1 ความหมายของผังงาน

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

1.1.2.2 ประเภทของผังงาน

ผังงานสามารถจำแนกออกได้ 2 ประเภท คือ

1) ผังงานระบบ (system flowchart) หมายถึง ผังงานที่แสดงถึงขั้นตอนวิธีการทำงานของระบบงานใดระบบหนึ่ง ซึ่งในผังงานระบบจะแสดงให้เห็นถึงสื่อที่ใช้รับข้อมูล บันทึกข้อมูล วิธีการประมวลผล ขั้นตอนการทำงานและความสัมพันธ์ของส่วนต่าง ๆ ในระบบงานอย่างกว้าง ๆ เพื่อให้เห็นภาพรวมของระบบงานใดระบบงานหนึ่ง เช่น











รูปที่ 1.1 ผังงานระบบแสดงการตัดเกรด

ที่มา : กรรณิการ์ กมลรัตน์, 2547.

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








รูปที่ 1.2 ผังงานโปรแกรมแสดงรายละเอียดการทำงานของโปรแกรมสำหรับตัดเกรด

ที่มา : เฉลิมพล ทัพซ้าย, 2530 : 29.




1.2.1.3 สัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

สถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา (American National Standard Institute) และองค์การระหว่างประเทศว่าด้วยการมาตรฐาน (International Organization for Standardization) ได้ร่วมกันกำหนดสัญลักษณ์มาตรฐานที่ใช้เขียนผังงานโปรแกรม

โดยในเอกสารเล่มนี้จะนำเสนอสัญลักษณ์ที่นิยมนำมาใช้เขียนผังงานโปรแกรม ดังต่อไปนี้

1. สัญลักษณ์ Process

Process



ความหมายของ Process คือ การกำหนดค่าหรือการคำนวณค่า


2. สัญลักษณ์ Decision




ความหมายของ Decision คือ การทดสอบเงื่อนไขหรือเปรียบเทียบเงื่อนไข เพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่งตามที่ต้องการ




3. สัญลักษณ์ Start/ Stop program หรือ Terminal Interrupt



ความหมายของสัญลักษณ์ คือ การเริ่มต้นโปรแกรม หรือการสิ้นสุดการทำงานของโปรแกรม หรือหยุดการทำงานชั่วคราว




4. สัญลักษณ์ Input / Output




ความหมายของสัญลักษณ์ คือ การรับข้อมูล (input) หรือการแสดงผลลัพธ์ (output) โดยไม่ได้ระบุสื่อที่ใช้


5. สัญลักษณ์ Display




ความหมายของสัญลักษณ์ คือ การแสดงผลลัพธ์ทางจอภาพ



6. สัญลักษณ์ Document




ความหมายของสัญลักษณ์ คือ การพิมพ์ผลลัพธ์ออกทางกระดาษพิมพ์







7. สัญลักษณ์ Manual Input




ความหมายของสัญลักษณ์ คือ การรับข้อมูลหรือคำสั่งผ่านทางคีย์บอร์ด






8. สัญลักษณ์ Manual Operation




ความหมายของสัญลักษณ์คือการรับข้อมูลหรือแสดงผลลัพธ์โดยไม่ระบุสื่อ






9. สัญลักษณ์ Connector





Connector

ความหมายของสัญลักษณ์ คือ แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน โดยที่จุดเชื่อมต่อนี้อยู่ในหน้าเดียวกัน





10. สัญลักษณ์ Off page Connector



Off page Connector

ความหมายของสัญลักษณ์ คือ แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน โดยที่จุดเชื่อมต่อนี้อยู่ต่างหน้ากัน






11. สัญลักษณ์ flow line and arrowheads




ความหมายของสัญลักษณ์ คือ แสดงทิศทาง การทำงานของผังงาน โดยใช้ลูกศร เป็นตัวกำหนดทิศทาง การทำงานของผังงาน






12. สัญลักษณ์ Punched Card



ความหมายของสัญลักษณ์คือการรับข้อมูลหรือแสดงผลลัพธ์บนบัตรเจาะรู




การเขียนโปรแกรม (programming)

ในหัวข้อเรื่องการเขียนโปรแกรมจะกล่าวถึงเนื้อหา 2 ส่วน คือความหมายของโปรแกรมคอมพิวเตอร์ และภาษาคอมพิวเตอร์ดังมีรายละเอียดต่อไปนี้


1.1.3.1 ความหมายของโปรแกรมคอมพิวเตอร์

โปรแกรมคอมพิวเตอร์ (computer program) หมายถึง ชุดของคำสั่งที่เขียนขึ้นเพื่อสั่งให้คอมพิวเตอร์ทำงานตามที่ต้องการ ส่วนการเขียนโปรแกรม (programming) หมายถึง การเขียนชุดคำสั่งด้วยภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง เพื่อให้คอมพิวเตอร์ทำงานตามโปรแกรมที่เราเขียนขึ้น


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


1.1.3.2 ภาษาคอมพิวเตอร์

ภาษาคอมพิวเตอร์ (computer language) หมายถึง ภาษาที่สามารถนำมาใช้เขียนโปรแกรมคอมพิวเตอร์ได้ ซึ่งแต่ละภาษามีรายละเอียดดังต่อไปนี้


1) ภาษาเครื่อง (machine language)

ภาษาเครื่องจัดเป็นภาษาคอมพิวเตอร์ภาษาเดียวที่สามารถติดต่อกับคอมพิวเตอร์ได้โดยตรง เพราะว่าการเขียนคำสั่งและข้อมูลในภาษาเครื่องใช้ระบบเลขฐานสอง (binary number system) คือใช้ตัวเลข 0 และ 1 เท่านั้น ทำให้เครื่องคอมพิวเตอร์สามารถทำงานได้รวดเร็ว ส่วนข้อเสียของภาษาเครื่อง คือ เครื่องคอมพิวเตอร์ต่างชนิดกันมีลักษณะการเขียนภาษาเครื่องที่แตกต่างกันไป และเกิดความยุ่งยากในการปรับปรุงแก้ไข ทำให้เกิดความไม่สะดวกในการใช้งาน ดังนั้นภาษานี้จึงไม่เหมาะกับผู้เริ่มต้นเขียนโปรแกรม


ตัวอย่างที่ 1.18 แสดงคำสั่งของภาษาเครื่องมีดังนี้

ถ้าเราต้องการสั่งให้เครื่องทำงานตามคำสั่ง 9 + 3 แสดงได้ดังนี้

การบวกแทนด้วยรหัส 10101010

เลข 9 เปลี่ยนเป็นเลขฐานสอง 00001001

เลข 3 เปลี่ยนเป็นเลขฐานสอง 00000011

ดังนั้น คำสั่ง 9 + 3 เขียนเป็นภาษาเครื่องได้ดังนี้

00001001 10101010 00000011






2) ภาษาแอสเซมบลี (assembly language)

ภาษาแอสเซมบลีหรือจะเรียกชื่ออีกอย่างว่าภาษาระดับต่ำ ซึ่งเป็นภาษาคอมพิวเตอร์ที่พัฒนาขึ้นมาเพื่อให้ผู้เขียนโปรแกรมสามารถเขียนโปรแกรมติดต่อกับคอมพิวเตอร์ได้ง่ายกว่าภาษาเครื่อง ส่วนการเขียนคำสั่งในภาษาแอสเซมบลีจะใช้คำย่อของภาษาอังกฤษและอ้างถึงตำแหน่งที่อยู่ภายในคอมพิวเตอร์เป็นส่วนใหญ่ ได้แก่ MOVE, DC, DS, CL10 เป็นต้น ผู้ที่ต้องใช้ภาษาแอสเซมบลีส่วนมากจะเป็นวิศวกรคอมพิวเตอร์ ดังนั้นภาษาแอสเซมบลีจึงไม่เหมาะกับผู้เริ่มต้นเขียนโปรแกรม


ตัวอย่างที่ 1.19 แสดงคำสั่งของภาษาแอสเซมบลีมีดังนี้

ถ้าเราต้องการสั่งให้เครื่องทำงานตามคำสั่ง 9 + 3 แสดงได้ดังนี้

MOV AX, 9

MOV BX, 3

ADD AX, BX


3) ภาษาระดับสูง (high level language)

ภาษาระดับสูงเป็นภาษาที่ผู้เขียนโปรแกรมสามารถเข้าใจได้ง่ายกว่าภาษาแอสเซมบลีและภาษาเครื่อง ทั้งนี้ก็เพราะการเขียนคำสั่งของภาษาระดับสูงมีลักษณะเป็นภาษาอังกฤษ ซึ่งอ่านแล้วเข้าใจได้ง่ายกว่าภาษาแอสเซมบลี เช่น ใช้คำว่า READ, WRITE, PRINT, COMPUTE เป็นต้น ตัวอย่างของภาษาระดับสูงได้แก่ ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL), ภาษาเบสิก (BASIC), ภาษาปาสคาล (PASCAL) และภาษาซี (C) เป็นต้น ซึ่งแต่ละภาษามีประวัติพอสังเขปดังต่อไปนี้
ภาษาฟอร์แทรน (FORTRAN ย่อมาจาก FORmula TRANslator) พัฒนาโดยบริษัท IBM ระหว่างปี ค.ศ.1954 ถึง ค.ศ.1957 ภาษานี้ใช้สำหรับการพัฒนาโปรแกรมประยุกต์ด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ ที่ต้องใช้ในการคำนวณสมการคณิตศาสตร์ที่ซับซ้อน ปัจจุบันภาษาฟอร์แทรนยังเป็นที่นิยมใช้ ในการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์
ภาษาโคบอล (COBOL ย่อมาจาก Common Business Oriented Language) พัฒนาขึ้นในปี ค.ศ.1959 เป็นภาษาที่พัฒนาขึ้นมาเพื่อใช้ในการพัฒนาโปรแกรมประยุกต์ด้านธุรกิจและการค้า ปัจจุบันโปรแกรมที่ใช้ในด้านธุรกิจจำนวนมากยังเป็นโปรแกรมที่พัฒนามาจากภาษาโคบอล
ภาษาเบสิก (BASIC ย่อมาจาก Beginners All-purpose Symbolic Instructional Code) เป็นภาษาที่พัฒนาขึ้นโดยมีจุดประสงค์เพื่อให้ผู้เริ่มต้นพัฒนาโปรแกรมสามารถเรียนรู้และเข้าใจการพัฒนาโปรแกรมอย่างง่าย ภาษาเบสิกเป็นภาษาคอมพิวเตอร์ภาษาแรกที่ใช้เครื่องไมโครคอมพิวเตอร์


ภาษาคอมพิวเตอร์ที่พัฒนาขึ้นในยุคแรก ยังมีข้อจำกัดในการที่จะพัฒนาโปรแกรมขนาดใหญ่ ทั้งนี้เนื่องจากภาษาคอมพิวเตอร์เหล่านั้นขาดโครงสร้างที่ดี ทำให้การพัฒนาโปรแกรมที่มีขนาดใหญ่และมีความซับซ้อนเป็นไปได้ยาก ในช่วงต้นปี ค.ศ.1970 จึงมีภาษาคอมพิวเตอร์ที่เป็นภาษาเชิงกระบวนการ (Procedural หรือ Structural Language) เกิดขึ้น ภาษาคอมพิวเตอร์ประเภทนี้จะมีความยืดหยุ่นในการพัฒนาโปรแกรม ทำให้สามารถแก้ไขและบำรุงรักษาได้ง่าย เนื่องจากโปรแกรมถูกแยกออกเป็นส่วน ๆ ภาษาคอมพิวเตอร์ที่เป็นภาษาเชิงกระบวนการที่สำคัญคือ
ภาษาปาสคาล (Pascal) พัฒนาโดย Niclaus Wirth ในปี ค.ศ.1971 โดยมีจุดประสงค์เพื่อใช้ในการสอนการเขียนโปรแกรมภาษาเชิงกระบวนการ ในมหาวิทยาลัย แต่เนื่องจากภาษาปาสคาลไม่มีคุณลักษณะที่จะสนับสนุนการพัฒนาโปรแกรมด้านธุรกิจและอุตสาหกรรมจึงไม่ได้รับความนิยมมากนัก
ภาษาซี (C) พัฒนาขึ้นในช่วงเดียวกับภาษาปาสคาล โดยนักวิจัยที่ห้องปฏิบัติการ AT&T Bell ซึ่งได้นำเอาจุดเด่นของภาษา BCPL และภาษา B มาใช้และได้เพิ่มคุณลักษณะและชนิดข้อมูลอื่นเข้ามาด้วย เดิมภาษาซีถือว่าเป็นภาษาคอมพิวเตอร์ที่สำคัญในการพัฒนาโปรแกรมบนระบบปฏิบัติการยูนิกส์ (Unix) ซึ่งเป็นภาษาคอมพิวเตอร์ที่สามารถสร้างโปรแกรมประยุกต์ที่ทำงานได้รวดเร็วมาก เมื่อเทียบกับภาษาคอมพิวเตอร์อื่น ๆ


4) ภาษาระดับสูงมาก (very high level language)

ภาษาระดับสูงมาก บางครั้งเรียกว่า Fourth Gerneration Languages (4GLs) เป็นภาษาที่มีลักษณะสำคัญ คือ ผู้เขียนโปรแกรมไม่ต้องบอกวิธีการทำงานโดยละเอียด เพียงแต่ระบุคำสั่งให้ทำงานสั้น ๆ ให้ภาษาระดับสูงมากเข้าใจก็เพียงพอ ส่วนวิธีการคำนวณหรือการทำงานภาษาระดับสูงมากจะเป็นผู้จัดการเองทั้งสิ้น บางครั้งเรียกว่า non-procedure language

ตัวอย่างภาษาระดับสูงมาก ได้แก่ ภาษา SQL (Structured Query Langauge) ซึ่งนิยมใช้กันในซอร์ฟแวร์พัฒนาระบบจัดการฐานข้อมูล เช่น ORACLE เป็นต้น


5) ภาษาระดับธรรมชาติ (natural language)

ภาษาธรรมชาติจะเกี่ยวข้องกับระบบฐานความรู้ (knowledge based system ) และกฎอ้างอิง (inference rules) เพียงแต่ผู้ใช้ภาษาธรรมชาติป้อนคำถามผ่านเข้าไปในคอมพิวเตอร์ที่มีภาษาธรรมชาติก็จะทำการวิเคราะห์คำถามแล้วไปค้นหาคำตอบจากระบบฐานความรู้ที่เก็บไว้

ตัวอย่างของภาษาธรรมชาติ ได้แก่ ภาษา PROLOG และภาษา LISP (List Processing Language)


1.1.4 การทดสอบ และแก้ไขโปรแกรม (testing and editing program)

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

1) ความผิดพลาดทางไวยากรณ์ภาษา (syntax error) เป็นความผิดพลาดที่เกิดจากการเขียนคำสั่งของภาษาคอมพิวเตอร์ผิด ตัวอย่างเช่น คำสั่ง printf( ) ในภาษา C ต้องเขียนด้วยตัวอักษรตัวเล็ก แต่เขียนเป็น PRINTF( ) เป็นต้น โดยส่วนมากความผิดพลาดทางไวยากรณ์ จะถูกตรวจสอบพบเมื่อมีการแปลโปรแกรม (compile) ให้เป็นภาษาเครื่อง ซึ่งเราสามารถแก้ไขโดยการเขียนคำสั่งให้ถูกต้องตามไวยากรณ์ของภาษานั้น ๆ


2) ความผิดพลาดทางตรรกะ (logical error) เป็นความผิดพลาดที่เกิดจากการลำดับการทำงานผิดหรือป้อนสูตรคำนวณผิด ตัวอย่างเช่น ต้องการหาค่า X = X + Y แต่ป้อนสูตรเป็น X = X * Y อย่างนี้ เป็นต้น วิธีการตรวจหาความผิดพลาดแบบนี้ คือ ตรวจสอบการคำนวณผลลัพธ์ของโปรแกรมว่าตรงกับผลลัพธ์ที่คำนวณด้วยมือหรือเครื่องคิดเลขหรือไม่ ถ้าไม่ตรงกันแสดงว่าเกิดความผิดพลาดทางตรรกะขึ้น วิธีการแก้ไขก็คือ การแก้ไขสูตรให้ถูกต้อง หรือแก้ไขลำดับการทำงานให้ถูกต้อง

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











ไม่มีความคิดเห็น:

แสดงความคิดเห็น