ความรู้พื้นฐานการเขียนโปรแกรม
เนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์ (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) เพื่อใช้ในการอ้างอิงการเก็บข้อมูลและเรียกใช้ข้อมูลภายในตัวแปร ดังนั้นผู้เขียนโปรแกรมจะต้องตั้งชื่อตัวแปรที่ใช้ในการเก็บข้อมูลทั้งหมดภายในโปรแกรม รวมถึงตัวแปรบางตัวที่ใช้ในการนับจำนวนรอบของการทำงานในโปรแกรมอีกด้วย
จากตัวอย่างที่ 1.1 สามารถแสดงการวิเคราะห์งานตั้งแต่ขั้นตอนที่ 1 ถึง 4 ได้ดังนี้
1) วัตถุประสงค์ของการเขียนโปรแกรม
เพื่อคำนวณหาค่าพื้นที่สามเหลี่ยมมุมฉาก
2) รูปแบบผลลัพธ์ที่ต้องการ
พิมพ์ผลลัพธ์ที่ต้องการออกทางภาพดังนี้
* ** output ***
Base = 5
High = 4
Area = 10
3) ข้อมูลนำเข้า คือ ความยาวฐานและความสูง
4) ตัวแปรที่ใช้
B = ตัวแปรที่เก็บความยาวของสามเหลี่ยมมุมฉาก
H = ตัวแปรที่เก็บความสูงของสามเหลี่ยมมุมฉาก
Area = ตัวแปรที่เก็บผลลัพธ์ที่ได้จากการคำนวณตามสูตร
Area = 1/2*B*H หรือ Area = 0.5*B*H
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) จบการทำงาน
ทั้งนี้การวิเคราะห์งานเพื่อแก้ปัญหาแต่ละอย่างอาจมีบางขั้นตอนแตกต่างกันไป ดังนั้นคำแนะนำข้างต้นจึงเป็นเพียงแนวทางของการหาขั้นตอนวิธีการทำงานของโปรแกรมเท่านั้น ซึ่งเวลาใช้งานจริงผู้วิเคราะห์งานต้องประยุกต์ให้เข้ากับปัญหาที่ต้องการแก้ไขต่อไป
เพื่อความเข้าใจเกี่ยวกับขั้นตอนวิธีการวิเคราะห์งานมากยิ่งขึ้น ให้ศึกษาจากตัวอย่างการวิเคราะห์งานดังต่อไปนี้
ตัวอย่างที่ 1.2 จงเขียนวิเคราะห์งาน เพื่อเขียนโปรแกรมคำนวณ พื้นที่สี่เหลี่ยมผืนผ้า จำนวน 1 รูป โดยที่ผู้ใช้โปรแกรม จะต้องป้อนความกว้าง และความยาวของสี่เหลี่ยมผืนผ้า เข้าไปในโปรแกรม
วิธีทำ
ขั้นตอนการวิเคราะห์งานทั้ง 5 ขั้นตอน สามารถแสดงได้ดังนี้
1) วัตถุประสงค์ของการเขียนโปรแกรม
เพื่อคำนวณพื้นที่สี่เหลี่ยมผืนผ้าจำนวน 1 รูป
2) รูปแบบผลลัพธ์ที่ต้องการ
พิมพ์ผลลัพธ์ออกทางจอภาพ ดังนี้
3) ข้อมูลนำเข้า
3.1) สูตรคำนวณพื้นที่สี่เหลี่ยมผืนผ้า
Area = Width*Length
3.2) รับค่าความกว้างและความยาวของสี่เหลี่ยมผืนผ้าผ่านทางคีย์บอร์ด
4) ตัวแปรที่ตั้งขึ้นเพื่อใช้ในโปรแกรม
Width = ตัวแปรที่ใช้เก็บความกว้างของสี่เหลี่ยมผืนผ้า
Length = ตัวแปรที่ใช้เก็บความยาวของสี่เหลี่ยมผืนผ้า
Area = ตัวแปรที่ใช้เก็บพื้นที่ของสี่เหลี่ยมผืนผ้า
โดยคำนวณได้จากสูตร Area = Width*Length
5) ขั้นตอนวิธีการทำงานของโปรแกรมมีดังนี้
5.1) เริ่มต้นทำงาน
5.2) รับข้อมูลค่าความยาวและความกว้างของสี่เหลี่ยมผืนผ้าผ่านทางคีย์บอร์ด
5.3) คำนวณพื้นที่สี่เหลี่ยมผืนผ้าตามสูตร
Area = Width*Length
5.4) พิมพ์ค่าความยาว ความกว้าง และพื้นที่สี่เหลี่ยมผืนผ้าออกทางจอภาพ
5.5) จบการทำงาน
1.1.2 การเขียนผังงานโปรแกรม (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 คือ การกำหนดค่าหรือการคำนวณค่า
ตัวอย่างที่ 1.3 แสดงการกำหนดค่าให้ตัวแปร Total
ตัวอย่างที่ 1.4 แสดงการคำนวณค่าผลรวมของตัวแปร Total
2. สัญลักษณ์ Decision
ข้าวหลามตัด: Decision
ความหมายของ Decision คือ การทดสอบเงื่อนไขหรือเปรียบเทียบเงื่อนไข เพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่งตามที่ต้องการ
ตัวอย่างที่ 1.5 แสดงการเปรียบเทียบเงื่อนไข 1 ทางเลือก
ตัวอย่างที่ 1.6 แสดงการเปรียบเทียบเงื่อนไข 2 ทางเลือก
3. สัญลักษณ์ Start/ Stop program หรือ Terminal Interrupt
แผนผังลำดับงาน: สิ้นสุด: Start / Stop program
ความหมายของสัญลักษณ์ คือ การเริ่มต้นโปรแกรม หรือการสิ้นสุดการทำงานของโปรแกรม หรือหยุดการทำงานชั่วคราว
ตัวอย่างที่ 1.7 แสดงการใช้งานสัญลักษณ์ Start/ Stop program หรือ Terminal Interrupt
4. สัญลักษณ์ Input / Output
สี่เหลี่ยมด้านขนาน: Input / Output
ความหมายของสัญลักษณ์ คือ การรับข้อมูล (input) หรือการแสดงผลลัพธ์ (output) โดยไม่ได้ระบุสื่อที่ใช้
ตัวอย่างที่ 1.8 แสดงการใช้งานสัญลักษณ์ Input/ Output
5. สัญลักษณ์ Display
แผนผังลำดับงาน: จอภาพ: Display
ความหมายของสัญลักษณ์ คือ การแสดงผลลัพธ์ทางจอภาพ
ตัวอย่างที่ 1.9 แสดงการใช้งานสัญลักษณ์ display
6. สัญลักษณ์ Document
แผนผังลำดับงาน: เอกสาร: Document
ความหมายของสัญลักษณ์ คือ การพิมพ์ผลลัพธ์ออกทางกระดาษพิมพ์
ตัวอย่างที่ 1.10 แสดงการใช้งานสัญลักษณ์ Document
7. สัญลักษณ์ Manual Input
แผนผังลำดับงาน: ป้อนข้อมูลด้วยตนเอง: Manual Input
ความหมายของสัญลักษณ์ คือ การรับข้อมูลหรือคำสั่งผ่านทางคีย์บอร์ด
ตัวอย่างที่ 1.11 แสดงการใช้งานสัญลักษณ์ Manual Input
8. สัญลักษณ์ Manual Operation
แผนผังลำดับงาน: ขั้นตอนที่ทำด้วยตนเอง: Manual Operation
ความหมายของสัญลักษณ์คือการรับข้อมูลหรือแสดงผลลัพธ์โดยไม่ระบุสื่อ
ตัวอย่างที่ 1.12 แสดงการใช้งานสัญลักษณ์ Manual Operation
9. สัญลักษณ์ Connector
Connector
ความหมายของสัญลักษณ์ คือ แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน โดยที่จุดเชื่อมต่อนี้อยู่ในหน้าเดียวกัน
ตัวอย่างที่ 1.13 แสดงการใช้งานสัญลักษณ์ Connector
10. สัญลักษณ์ Off page Connector
Off page Connector
ความหมายของสัญลักษณ์ คือ แสดงจุดเชื่อมต่อจากที่หนึ่งไปยังอีกที่หนึ่งของผังงาน โดยที่จุดเชื่อมต่อนี้อยู่ต่างหน้ากัน
ตัวอย่างที่ 1.14 แสดงการใช้งานสัญลักษณ์ Off page Connector
คำนวณค่า Avg = Total + N เสร็จแล้ว ไปทำงานต่อไปที่จุด B โดยที่จุด B อยู่ต่างหน้ากัน
11. สัญลักษณ์ flow line and arrowheads
ความหมายของสัญลักษณ์ คือ แสดงทิศทาง การทำงานของผังงาน โดยใช้ลูกศร เป็นตัวกำหนดทิศทาง การทำงานของผังงาน
ตัวอย่างที่ 1.15 แสดงการใช้งานสัญลักษณ์ flow line and arrowheads
12. สัญลักษณ์ Punched Card
แผนผังลำดับงาน: บัตร: Punched Card
ความหมายของสัญลักษณ์คือการรับข้อมูลหรือแสดงผลลัพธ์บนบัตรเจาะรู
ตัวอย่างที่ 1.16 แสดงการใช้งานสัญลักษณ์ Punched Card
ไม่มีความคิดเห็น:
แสดงความคิดเห็น