ขั้นตอนของการเขียนโปรแกรม

Download Report

Transcript ขั้นตอนของการเขียนโปรแกรม

บทที่ 10
การเขียนโปรแกรมคอมพิวเตอร์ เบือ้ งต้ น
ขัน้ ตอนในการเขียนโปรแกรม (PROCEDURE OF PROGRAMMING)
Requirement Phase
Specification Phase
Planning Phase
Design Phase
Implement Phase
Integration Phase
Maintenance Phase
Retirement
ขัน้ ตอนในการเขียนโปรแกรม (1)
(Requirement Phase) เป็ น
ขันตอนสอบถามความต้
้
องการของผู้ใช้ โปรแกรมหรื อลูกค้ า ว่าต้ องการให้
โปรแกรมที่สร้ างขึ ้นสามารถทาอะไรได้ บ้าง
 ขัน
้ ตอนของการวิเคราะห์ (Specification (Analysis) Phase) เป็ น
ขันตอนของกการวิ
้
เคราะห์หรื อกาหนดรายละเอียดต่างๆ หลังจากทราบ
ความต้ องการของผู้ใช้ แล้ วก็มาทาการวิเคราะห์วา่ จะสร้ างโปรแกรมตาม
ความต้ องการของผู้ใช้ ต้ องทาอย่างไร (อย่างกว้ าง ๆ) จะใช้ เครื่ องมือ
อะไรบ้ างในการพัฒนาโปรแกรม
 ขัน
้ ตอนของการวางแผน (Planning Phase) เป็ นขันตอนของการ
้
วางแผนงาน จะกระทาการวางแผน สร้ างตารางเวลาการทางาน กระจาย
งานที่ต้องทา ซึง่ เป็ นงานที่ได้ จากขันตอนของการวิ
้
เคราะห์ในก่อนหน้ านี ้
 ขัน
้ ตอนของการสอบถามความต้ องการ
ขัน้ ตอนในการเขียนโปรแกรม (2)
 ขัน
้ ตอนการออกแบบการทางานของแต่ ละงานย่ อย
(Design Phase)
เป็ นขันตอนของการออกแบบของแต่
้
ละงานย่อย ซึง่ เป็ นงานที่ได้ จากการ
กระจายงานในขันตอนการวางแผน
้
ซึง่ ประกอบด้ วยสองขันตอนที
้
่สาคัญคคือ


การคิดหาวิธีการทางานของโปรแกรมหรือที่เรียกกันว่ าขัน้ ตอนวิธี (Algorithm)
ซึง่ การคิดหาวิธีการทางานของแต่ละคนสาหรับแต่ละปั ญคหาก็จะแตกต่างกัน ตามแต่
ความสามารถในการคิดของขันตอนวิ
้
ธี แต่ผลลัพธ์ที่ได้ จะต้ องสามารถกระทาได้ ตามที่
ต้ องการตามที่ได้ วางแผนไว้
การถ่ ายทอดความคิดนัน้ ไปให้ กับผู้ท่ จี ะทางานในส่ วนการเขียนโปรแกรมเรา
มักจะใช้ สองวิธีการ (อย่างใดอย่างหนึง่ ) นัน่ คือ การเขียนผังงาน (Flowchart) ซึง่ เป็ น
การอธิบายขันตอนการท
้
างานของโปรแกรมในรูปแบบของกราฟิ กและ การเขียนรหัส
เทียม (Pseudo code) ซึง่ เป็ นการอธิบายขันตอนการท
้
างานของโปรแกรมในรูปแบบ
ของตัวหนังสือ
ขัน้ ตอนในการเขียนโปรแกรม (3)
(Implementation Phase) เป็ นขันตอนของ
้
การเขียนโปรแกรมตามที่ออกแบบไว้ ตามขันตอนการวางแผนงาน
้
การเขียน
โปรแกรมโดยมากจะดูจากผังงานหรื อรหัสเทียม
 ขัน
้ ตอนของรวมงาน (Integration Phase) เป็ นขันตอนของการน
้
าโปรแกรม
ที่เขียนเสร็จของแต่ละงานมารวมกัน แล้ วลองนาไปใช้ จริง
 ขัน
้ ตอนของการบารุ งรั กษา (Maintenance Phase) เป็ นขันตอนการ
้
บารุงรักษาโปรแกรม ระหว่างที่ใช้ โปรแกรมนันอาจเกิ
้
ดปั ญคหาบางอย่าง เช่น
โปรแกรมทางานผิดพลาด โปรแกรมทางานไม่ตรงกับความต้ องการตามที่ผ้ ใู ช้
โปรแกรมต้ องการ ซึง่ ผู้พฒ
ั นาโปรแกรมต้ องนาโปรแกรมไปแก้ ไข ปรับปรุง
เพิ่มเติมจนได้ โปรแกรมที่สมบูรณ์ตามที่ผ้ ใู ช้ ต้องการ
 ขัน
้ ตอนของการเลิกใช้ งาน (Retirement) คือการเลิกใช้ โปรแกรม
 ขัน
้ ตอนของการเขียนโปรแกรม
สัญลักษณ์ ผังงาน (FLOWCHART SYMBOL)
สัญคลักษณ์ผงั งานเป็ นเครื่ องมืออีกแบบหนึง่ ที่ใช้ รูปภาพ แสดงถึงขันตอนใน
้
การเขียนโปรแกรม หรื อขันตอนในการแก้
้
ปัญคหาทีละขัน้ และมีเส้ นที่แสดง
ทิศทางการไหลของข้ อมูลตังแต่
้ จุดเริ่มต้ น จนกระทังจุ
้ ดสิ ้นสุดของ
โปรแกรมหรื อผลลัพธ์ของโปรแกรม ใช้ เป็ นโครงร่างก่อนการเขียนโปรแกรม
คอมพิวเตอร์ เพื่อสามารถเห็นภาพของการแก้ ปัญคหาได้ อย่างชัดเจนและ
เข้ าใจง่ายยิ่งขึ ้น
สัญคลักษณ์ผงั งาน
(System flowchart) เป็ นผังงานที่เขียนขึ ้นเพื่อแสดงให้ เห็น
ถึงความสัมพันธ์ระหว่างโปรแกรมต่างๆ ว่าได้ รับข้ อมูลเข้ ามาประมวลผล
จากทางใด ประมวลผลเสร็จแล้ วจะส่งไปที่ไหน และผลลัพธ์ที่เกิดขึ ้นจะ
แสดงออกในรูปใด
 ผังงานโปรแกรม (Program flowchart หรื อ Detail flowchart) เป็ นผัง
งานที่เขียนขึ ้นเพื่อแสดงขันตอนค
้
าสัง่ อย่างละเอียด ซึง่ ตามปกติแล้ ว
ผู้เขียนโปรแกรมจะเขียนผังงานโปรแกรม ขึ ้นมาก่อน ต่อจากนันจะ
้
ตรวจสอบขันตอนค
้
าสัง่ งานแต่ละขันในผั
้ งงานว่าไม่มีผิดพลาดแล้ วจึงลง
มือเขียนโปรแกรมเพื่อนาไปประยุกต์ใช้ งานต่อไป
 ผังงานระบบ
ความหมายของสัญลักษณ์ ผังงาน
รหัสเทียม (PSEUDO CODE)
คือรหัสจาลองที่ใช้ เป็ นตัวแทนของขันตอนวิ
้
ธีที่ใช้ ในภาษาการ
เขียนโปรแกรมทัว่ ไป โดยจะแสดงขันตอนวิ
้
ธีการที่ใช้ ภาษาเขียนที่
เข้ าใจง่าย โดยมีถ้อยคาหรื อประโยคคาสัง่ ที่เขียนอยู่ในรูปแบบ
ของภาษาอังกฤษหรื อภาษาไทยก็ได้ ขึ ้นอยูก่ บั ความสะดวกของ
ผู้เขียนโปรแกรม แต่โดยทัว่ ไปจะใช้ รูปแบบภาษาอังกฤษเพื่อ
อธิบายรายละเอียดของขันตอนวิ
้
ธีตา่ งๆ เนื่องจากเป็ น
ภาษากลางที่สว่ นมากนิยมใช้ กนั
หลักการเขียนรหัสเทียม
 ถ้ อยคาที่ใช้ เขียน ใช้ ภาษาอังกฤษหรื อภาษาไทยที่เข้ าใจง่าย
 ในหนึง่ บรรทัด ควรให้ มีเพียงหนึง่ ประโยคคาสัง่ เท่านัน้
 ใช้ ยอ
่ หน้ าให้ เป็ นประโยชน์ ในการแสดงการควบคุมอย่างเป็ น
สัดส่วน
 แต่ละประโยคคาสัง่ ให้ เขียนจากบนลงล่าง และมีทางออกทางเดียว
 กลุม
่ ของประโยคคาสัง่ อาจรวมเป็ นหมวดหมูแ่ ล้ วเรี ยกใช้ เป็ นหน่วย
โปรแกรมประยุกต์ (Module)
ตัวอย่ างที่ 1 ให้ ทาการเขียนรหัสเทียมของการชงกาแฟ จานวน 5 ถ้ วย
วิธีทา
1. ซื ้อกาแฟผง 5 ซอง
2. ต้ มน ้าร้ อนจนเดือด
3. ทาซ ้า 5 ถ้ วย
3.1 เตรี ยมถ้ วยและช้ อน สาหรับชงกาแฟ
3.2 ฉีกซองกาแฟ แล้ วเทลงถ้ วยเปล่า
3.3 เทน ้าร้ อนลงถ้ วยแล้ วใช้ ช้อนคนให้ เข้ ากัน
4. เรี ยกเพื่อนทัง้ 5 คน
5. เชิญคทุกรับประทานกาแฟ
ตัวอย่ างที่ 2 ให้ ทาการเขียนรหัสเทียมของการหาคานวณพื ้นที่
สามเหลี่ยม
วิธีทา
1. Set Variable
2. X = Input of Base
3. Y = Input of High
4. Z = ½ * X * Y
5. Output = Z
ตัวอย่ างที่ 3 ให้ ทาการเขียนรหัสเทียมของการคานวณของค่า 3 ค่า
วิธีทา
1. Set Variable
2. X = Input Value 1
3. Y = Input Value 2
4. Z = Input Value 3
5. Total = X * Y * Z
6. Output = Total
ตัวอย่ างที่ 4 ให้ ทาการเขียนรหัสเทียมของการคานวณของค่าเกรด
เฉลี่ยของนักศึกษา จานวน 2 เทอม
วิธีทา
1. Set Variable
2. X = Input Grade1
3. Y = Input Grade 2
4. Calculate Average by Using Z = (X+Y)/2
5. Show Result of Z
การวิเคราะห์ ผังงาน (1)
หมายถึงสิ่งที่ต้องการให้ เครื่ องคอมพิวเตอร์ ทาให้ เช่น
ต้ องการให้ คานวณเกรดเฉลี่ยของนักศึกษา คานวณเกรดของนักศึกษา
และอื่นๆ การพิจารณาถึงสิง่ ที่โจทย์ต้องการเป็ นส่วนที่สาคัญคมาก เพราะ
ถ้ าไม่สามารถเข้ าสิง่ ที่โจทย์ต้องการก็ไม่สามารถจะทาขันตอนต่
้
อไปได้ เลย
หรื อถ้ าเข้ าใจส่วนนี ้ผิดก็จะทาให้ งานขันตอนที
้
่เหลือผิดหมด
 ผลลัพธ์ ท่ ีต้องการแสดง (Output Results) หมายถึงผลลัพธ์ ที่ต้องการ
ให้ คอมพิวเตอร์ แสดงผลออกมาว่าควรจะมีลกั ษณะในการแสดงผลอย่างไร
มีรายละเอียดที่ต้องการให้ แสดงผลมากน้ อยเพียงใด
 ข้ อมูลที่ต้องนาเข้ า (Input Data) หมายถึงข้ อมูลอินพุตที่ต้องป้อนเข้ ามา
เพื่อใช้ ในการประมวลผล
 สิ่งที่โจทย์ ต้องการ
การวิเคราะห์ ผังงาน (2)
(Variable) หมายถึงตัวแปรที่ใช้ แทนความหมายของข้ อมูล
เพื่อความสะดวกในการอ้ างถึงข้ อมูล ในการเขียนโปรแกรมควรตังชื
้ ่อตัว
แปรที่มีความหมายที่มีความเกี่ยวข้ องกับข้ อมูล การตังขื
้ ่อตัวแปรนี ้จะ
ขึ ้นอยูก่ บั กฎเกณฑ์ของภาษาคอมพิวเตอร์ ของแต่ละภาษาที่ใช้ ในการเขียน
โปรแกรม เนื่องจากภาษาคอมพิวเตอร์ แต่ละภาษามีข้อกาหนดในการตัง้
ตัวแปรที่แตกต่างกันไป
 วิธีการประมวลผล (Processing) หมายถึงวิธีการประมวลผลโดยจะ
แสดงขันตอนต่
้
างๆ ของการประมวลผลทังหมด
้
ในขันตอนของวิ
้
ธีการนี ้ถ้ า
ทาได้ อย่างมีประสิทธิภาพและเข้ าใจง่ายก็จะช่วยในการเขียนโปรแกรมให้
ง่ายยิ่งขึ ้น เนื่องจากมองเห็นกระบวนการต่างๆ ชัดเจน
 ตัวแปรที่ใช้
หลักการทั่วไปของการเขียนผังงาน
 ควรมีจด
ุ เริ่มต้ นและจุดสิ ้นสุดเพียงจุดเดียวในผังงาน
 มีทางเข้ าของสัญคลักษณ์เพียงทางเดียว
 มีทางออกของสัญคลักษณ์เพียงทางเดียว แต่ยกเว้ นสัญคลักษณ์ของการ
ตัดสินใจที่สามารถออกได้ สองทาง
 ทิศทางของสัญคลักษณ์ควรจะเขียนจากบนลงล่าง
 ข้ อความที่อยูใ่ นสัญคลักษณ์ควรจะสันกะทั
้ ดรัด และสื่อความหมายที่เข้ าใจ
ง่าย
 ขนาดของสัญคลักษณ์ควรมีความพอดี
 เส้ นทางในการเชื่อมต่อควรจะเขียนให้ ชด
ั เจน ว่าจะมีลกู ศรไปในทิศทาง
ใดบ้ าง
ตัวอย่ างที่ 5 จงเขียนผังงานของการบวกเลขจานวน 2 ค่า
วิเคราะห์ แนวคิดที่ 1 ในการเขียนผังงาน
ถ้ าโจทย์ไม่ได้ ระบุวา่ ให้ คา่ ตัวเลขมาจากไหน
อินพุตอะไร ให้ สมมุติวา่ ได้ รับอินพุตของเลขมา
จากคีย์บอร์ ด ดังนันท
้ าการรับข้ อมูลอินพุตคือรับ
ตัวเลขสองตัวเข้ ามา เมื่อรับค่าเข้ ามาแล้ วจะเก็บ
ค่าไว้ ที่ไหน ซึง่ โดยปกติแล้ วจะเก็บไว้ ในตัวแปรที่
สร้ างขึ ้นมา ดังนันในการเขี
้
ยนผังงาน เราจะเอา
ตัวเลขตัวแรกไว้ ที่ตวั แปร A และตัวเลขตัวที่สอง
ไว้ ที่ตวั แปร B แล้ วจากนันก็
้ เอาเลขสองตัวมา
บวกกันแล้ วแสดงผล ซึง่ สามารถเขียนเป็ นผังงาน
ได้ ดงั รูป
Start
Input A,B
A+B
End
ตัวอย่ างที่ 5 จงเขียนผังงานของการบวกเลขจานวน 2 ค่า
วิเคราะห์ แนวคิดที่ 2 ในการเขียนผังงาน
ให้ สมมุติวา่ ได้ รับอินพุตของเลขมาจากคีย์บอร์ ด
ดังนันท
้ าการรับข้ อมูลอินพุตคือรับตัวเลขสองตัว
เข้ ามา เมื่อรับค่าเข้ ามาแล้ วจะเก็บไว้ ในตัวแปร A
และตัวแปร B แล้ วจากนัน้ เอาค่าตัวแปร A และ
B ทาการบวกกันแล้ วเก็บไว้ ที่ตวั แปร C สุดท้ าย
นาเอาตัวแปร C ไปแสดงผล ซึง่ สามารถเขียน
เป็ นผังงานได้ ดงั รูป
Start
Input A,B
C=A+B
C
End
ตัวอย่ างที่ 6 จงเขียนผังงานของโปรแกรมสาหรับหาราคาของสินค้ า โดยให้ ผ้ ใู ช้ ระบุ
ราคาสินค้ า และโปรแกรมจะแสดงราคาก่อนรวมภาษี และราคาหลังรวมภาษีแล้ วให้
ผู้ใช้ สามารถเห็นราคาสินค้ าที่รวมภาษี
อัตราภาษี ในที่นี ้สมมุติให้ อตั ราภาษี เป็ น 7%
จากนันสั
้ งเกตจากโจทย์มีคาว่า “ผู้ใช้ ระบุ
ราคา” แสดงว่าจะต้ องมีการรับค่าอินพุต
จากผู้ใช้ ดังนันให้
้ รับค่าอินพุตจากคีย์บอร์ ด
แล้ วเก็บไว้ ที่ตวั แปร A จากนันให้
้ ตวั แปรที่ชื่อ
ว่า VAT ใช้ เก็บผลลัพธ์จากการคานวณภาษี
โดยสามารถคานวณได้ จาก VAT = 0.07 *
A สุดท้ ายแสดงราคาก่อนรวมภาษี (ค่าของ
ตัวแปร A) และราคาหลังรวมภาษี (A+VAT)
ซึง่ สามารถเขียนเป็ นผังงานได้ ดงั รูป
Start
Input A
VAT = 0.07 x A
A
VAT+A
End
ตัวอย่ างที่ 7 จงเขียนผังงานของโปรแกรมสาหรับหาเกรดเฉลี่ยรวมสอง
เทอม
จะหาเกรดเฉลี่ยรวมสองเทอมได้ จะต้ องรู้
หน่วยกิตที่ลงเทอมหนึง่ เกรดที่ได้ เทอมหนึง่
หน่วยกิตที่ลงเทอมสอง เกรดที่ได้ เทอมสอง
ดังนันต้
้ องรับค่ามาทังหมดสี
้
่ค่าโดยที่ รับค่า
หน่วยกิตที่ลงเทอมหนึง่ เก็บไว้ ที่ตวั แปร U1
รับค่าหน่วยกิตที่ลงเทอมสองเก็บไว้ ที่ตวั
แปร U2 รับค่าเกรดเทอมหนึง่ เก็บไว้ ที่ตวั
แปร G1 และรับค่าเกรดเทอมสองเก็บไว้ ที่
ตัวแปร G2 จากนันท
้ าการคานวณเกรด
เฉลี่ยแล้ วเก็บผลลัพธ์ไว้ ที่ตวั แปรชื่อ G
สุดท้ ายทาการแสดงผลค่าของ G ออกมา
ซึง่ สามารถเขียนเป็ นผังงานได้ ดงั รูป
Start
Input U1,U2
G1, G2
G = (G1xU1 + G2xU2)
/ (U1+U2)
G
End
การตรวจสอบข้ อผิดพลาดของโปรแกรม
(TESTING AND DEBUGGING)
ตรวจสอบด้ วยตนเอง (Self Checking) เป็ นการทดลองเขียนโปรแกรมลงบน
กระดาษ แล้ วใส่ตรวจสอบการทางานของโปรแกรมทีละขันด้
้ วยตนเองว่าโปรแกรมมี
การทางานที่ถกู ต้ องตามผลลัพธ์ที่ต้องการหรื อไม่
 ตรวจสอบด้ วยการแปลโปรแกรม หลังจากเขียนโปรแกรมเสร็ จ ก็จะป้อนโปรแกรม
เข้ าสูเ่ ครื่ องเพื่อทาการแปลโปรแกรม โดยจะมีการเรี ยกใช้ คอมไพเลอร์ (Compiler) และ
แอสแซมเบลอร์ (Assembler) ทาการแปลโปรแกรมให้ เป็ นภาษาเครื่ อง (Machine
Language) ในการแปลจะเป็ นการตรวจสอบความผิดพลาดของโปรแกรมไปในตัว ซึง่
ถ้ ามีข้อผิดพลาดเกิดขึ ้นโปรแกรมที่ใช้ เขียนภาษานันจะแจ้
้
งข้ อผิดพลาดที่เกิดขึ ้น
โดยทัว่ ไปมีข้อผิดพลาดด้ านไวยาการของภาษา ข้ อผิดพลาดในระหว่างการรันของ
โปรแกรม และข้ อผิดพลาดที่เกิดจากการตีความหมายของปั ญคหาผิดไป

แบบฝึ กหัดทบทวน
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
สัญคลักษณ์ผงั งานคืออะไร และมีประโยชน์อะไร จงอธิบาย
รหัสเทียมคืออะไร และมีประโยชน์อะไร จงอธิบาย
ข้ อแตกต่างระหว่างสัญคลักษณ์ผงั งานและรหัสเทียมคืออะไร จงอธิบาย
จงอธิบายขันตอนในการเขี
้
ยนโปรแกรมตามแบบจาลองน ้าตก และจงอธิบายขันตอน
้
ในแต่ละขัน้
จงเขียนรหัสเทียมของโปรแกรมในการบวกเลขจานวน 5 ตัว
จงเขียนรหัสเทียมของโปรแกรมในการหาพื ้นที่ของวงกลม
จงเขียนผังงานของโปรแกรมในการหาเส้ นรอบวงของวงกลม
จงเขียนผังงานของโปรแกรมในการแปลงสกุลเงินบาทเป็ นเงินดอลลาร์ และแปลง
สกุลเงินดอลลาร์ เป็ นเงินบาท
จงเขียนผังงานของโปรแกรมในการแปลง พ.ศ. เป็ น ค.ศ. และแปลง ค.ศ. เป็ น พ.ศ.
จงเขียนผังงานของโปรแกรมในการแปลงนาทีเป็ นชัว่ โมงและให้ แสดงนาทีที่เหลือ
แบบฝึ กหัดทบทวน
http://www.udru.ac.th
เอกสารอ้ างอิง
กิติ ภักดีวฒ
ั นะกุล, คัมภีร์ระบบสารสนเทศ., กรุงเทพฯ, เคทีพี คอมพ์ แอน คอนซัลท์,
2547.
งามนิจ อาจอินทร์ , ความรู้ท่ วั ไปเกี่ยวกับวิทยาการคอมพิวเตอร์ ., กรุงเทพฯ, 2542.
เตชา อัศวสิทธิถาวร, เทคโนโลยีสารสนเทศเบือ้ งต้ น., กรุงเทพฯ, วังอักษร, 2547.
ธีรวัฒน์ ประกอบผล, คู่มือการเขียนโปรแกรมภาษา PASCAL., กรุงเทพฯ, 2550.
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยบูรพา, เอกสารประกอบการสอนวิชา
เทคโนโลยีสารสนเทศและการสื่อสาร., 2552.
วศิน เพิ่มทรัพย์, และวิโรจน์ ชัยมูล, ความรู้ เบือ้ งต้ นเกี่ยวกับคอมพิวเตอร์ และเทคโนโลยี
สารสนเทศ., กรุงเทพฯ, 2548.
วิกิพีเดีย [Online]. Available: http://th.wikipedia.org/wiki [2552].
http://www.udru.ac.th
http://www.udru.ac.th