More Related Content Similar to ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม Similar to ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม (20) More from mr.somsak phoolpherm More from mr.somsak phoolpherm (20) ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม1. 9
ใบงานที่ 1
หลักการเขียนโปรแกรมเบื้องต้น
ขั้นตอนการเขียนโปรแกรม
1. การวิเคราะห์ปัญหา
ขั้นตอนการวิเคราะห์ปัญหา จาเป็นต้องอ่านโจทย์อย่างระมัดระวัง โดยวิเคราะห์และตี
โจทย์ให้แตกเพื่อให้เข้าใจถึงแก่นแท้ของปัญหาให้จงได้ เพื่อให้ได้มาซึ่งความต้องการที่แท้จริง ถ้าหากไม่
สามารถตอบโจทย์ได้หรือตีความผิดพลาดไปก็ย่อมส่งผลต่อเนื่องกันเป็นทอดๆ ทาให้โปรแกรมที่เขียนขึ้นไม่
ตรงกับความต้องการในที่สุด สาหรับขั้นตอนการวิเคราะห์ปัญหานั้นจะมีการแบ่งส่วนประกอบออกเป็น 3
ส่วนหลัก ๆ ดังนี้
- ส่วนข้อมูลนาเข้า (Input)
- ส่วนการประมวลผล (Processing)
- ส่วนผลลัพธ์ (Output)
2. การออกแบบโปรแกรม
เมื่อปัญหาได้รับการวิเคราะห์เป็นที่เรียบร้อยแล้วต่อไปคือการออกแบบโปรแกรมโดย
อัลกอริทึมก็เป็นเครื่องมือหนึ่งที่สา มารถนามาใช้เพื่อการออกแบบโปรแกรมได้ ซึ่งอัลกอริทึมเป็นขั้นตอนที่
ใช้อธิบายลาดับขั้นตอนการทางานของโปรแกรม และหากได้ปฏิบัติตามขั้นตอนในอัลกอริทึมแล้ว ก็จะ
ได้มาซึ่งผลลัพธ์ที่ถูกต้องตรงกับความต้องการ สาหรับขั้นตอนการออกแบบโปรแกรมนั้นจะประกอบไปด้วย
กิจกรรมต่าง ๆ ดังนี้
- อัลการิทึม(Algorithm)
- ผังงาน(Flowchart)
- รหัสจาลอง(Pseudo code)
- แผนภูมิโครงสร้าง(Structure chart)
2. 10
2.1 อัลการิทึม(Algorithm)
เป็นเครื่องมือที่ช่วยในการออกแบบโปรแกรม โอยใช้ข้อความที่เป็นภาษาพูดในการอธิบาย
ทางานของโปรแกรมที่เป็นลาดับขั้นตอน จะข้ามมาไม่ได้นอกจากจะต้องเขียนสั่งได้ต่างหาก เพื่อให้เห็น
ภาพของอัลกอริทึมจากตัวอย่างของอัลกอริทึมง่าย ๆ ที่พบเห็นในชีวิตประจาวันได้แก่ อัลกอริทึมการสระ
ผม จะต้องเริ่มจากการทาผมให้เปียกเมื่อเปียกแล้วจึงใส่แชมพูสระผมลงบนศีรษะ แล้วขยี้ให้มีฟองเกิดขึ้น
หลังจากนั้นก็ล้างออกด้วยน้า แล้วเริ่มทาใหม่อีกครั้ง เป็นต้น
ในการเขียนอัลกอริทึมนี้แม้จะมีความชัดเจนอยู่แล้ว แต่มีจุดอ่อนอยู่ที่ข้อความอธิบายจะค่อนข้าง
เยิ่นเย้อและถ้าผู้เขียนใช้สานวนที่อ่านยากก็อาจทาให้ผู้อ่านไม่เข้าใจตอนการทางานของโปรแกรมได้ ดังนั้น
จึงมีการคิดค้นเครื่องมืออื่น ที่ช่วยในการออกแบบโปรแกรมแทนอัลกอริทึม อันได้แก่ ผังงาน รหัสจาลอง
แผนภูมิโครงสร้าง ฯลฯ
การเขียนขั้นตอนวิธี เป็นการเขียนเพื่ออธิบายการทางาน มีลักษณะเป็นขั้นเป็นตอน มีลาดับการ
ทางานที่ชัดเจน เป็นคาอธิบายเชิงบรรยาย
ตัวอย่าง การเขียนขั้นตอนวิธี
1) การลงทะเบียนล่วงหน้า
1. รับใบลงทะเบียนล่วงหน้าจาก อาจารย์ที่ปรึกษา และรับคาชี้ แจง
2. กรอกรายละเอียดต่าง ๆ
3. อาจารย์ที่ปรึกษาลงลายมือชื่อ
4. ยื่นเอกสารลงทะเบียนที่ธนาคาร เพื่อชาระเงิน
5. ยื่นเอกสารและใบเสร็จ ที่สานักทะเบียน
2) การคานวณหาพื้นที่วงกลม
1. รับค่ารัศมีของวงกลม
2. คานวณหา พื้นที่วงกลมจากสูตร
3. พื้นที่วงกลม = 3.1415 x รัศมี x รัศมี
4. แสดงค่า พื้นที่วงกลม
3) นับจานวนชื่อที่ตรงกับชื่อที่มีอยู่ในรายการ
1. กาหนดให้ตัวนับมีค่าเป็นศูนย์
2. รับชื่อที่ต้องการนับ
3. 11
3. ทาซ้างานต่อไปนี้ จนหมดรายการ
4. อ่านชื่อจากรายการถ้าชื่อที่รับมาตรงกับชื่อในรายการ ให้เพิ่มตัวนับอีก 1
5. แสดงจานวน ตัวนับจะเห็นว่าการเขียนขั้นตอนวิธี เป็นการเขียนเชิงบรรยาย ที่ไม่มีกฎเกณฑ์ที่
แน่นอน หากผู้เขียนใช้คาอธิบายที่ไม่ชัดเจน คลุมเครือ อาจก่อให้เกิดความเข้าใจผิด ทาให้ได้ผลลัพธ์ที่ไม่
ถูกต้อง ไม่ตรงกับวัตถุประสงค์ก็ได้
คุณสมบัติของอัลกอริทึม
1. เป็นกระบวนการที่สร้างขึ้นจากกฎเกณฑ์
2. กฎเกณฑ์ที่สร้างอัลกอรึทึมต้องไม่คลุมเครือ
3. การประมวลผลต้องเป็นลาดับขั้นตอน
4. กระบวนการต้องให้ผลตามที่กาหนดในปัญหา
5. อัลกอริทึมต้องมีจุดสิ้นสุด
ประสิทธิภาพของอัลกอริทึม
1. ต้องใช้เวลาในการดาเนินการน้อยที่สุด
2. ต้องใช้หน่วยความจาน้อยที่สุด
3. ต้องมีความยืดหยุ่น
4. ใช้เวลาในการพัฒนาน้อยที่สุด
5. ง่ายต่อความเข้าใจ
2.2 ผังงาน (Flowchart)
ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้นตอนการทางาน
ของโปรแกรมหรือระบบทีละขั้นตอน รวมไปถึงทิศทางการไหลของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตามที่
ต้องการหรือการแสดงขั้นตอนหรือรายละเอียดของการทางานในรูปของสัญลักษณ์ การเขียนผังงานจะช่วย
ให้การวิเคราะห์ระบบทาได้ง่ายขึ้น ผังงานจะเริ่มจากการนาเข้าข้อมูล การระบุอุปกรณ์ที่ใช้ การอธิบาย
ขั้นตอนการประมวลผลโดยใช้สัญลักษณ์แต่ละข้อความเพื่อแสดงขั้นตอนการทางานของโปรแกรม
สามารถแบ่งการทางานของผังงานได้เป็น 2 แบบ คือ
1. ผังงานระบบ (System flowchart)
2. ผังงานของโปรแกรม (Program flowchart)
4. 12
ประโยชน์ของผังงาน
- ช่วยลาดับขั้นตอนการทางานของโปรแกรม และสามารถนาไปเขียนโปรแกรมได้โดยไม่สับสน
- ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด
- ช่วยให้การดัดแปลง แก้ไข ทาได้อย่างสะดวกและรวดเร็ว
- ช่วยให้ผู้อื่นสามารถศึกษาการทางานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น
2.3 รหัสจาลอง(Pseudo code)
จะมีการใช้ข้อความที่เป็นภาษาอังกฤษหรือภาษาไทยก็ได้ ในการแสดงขั้นตอนการ
แก้ปัญหา แต่จะมีการใช้คาเฉพาะ(reserve words) ที่มีอยู่ในภาษาโปรแกรมมาช่วยในการเขียน โครงของ
รหัสจาลองจึงมีส่วนที่คล้ายกับการเขียนโปรแกรมมาก ดังนั้นรหัสจาลองจึงเป็นเครื่องมืออีกแบบที่นิยมใช้
กันมากในการออกแบบโปรแกรม
หลักการเขียนซูโดโค้ด
1. ถ้อยคาหรือคาสั่งอยู่ในรูปของภาษาอังกฤษอย่างง่าย
2. ในหนึ่งบรรทัดให้เขียนคาสั่งเพียงคาสั่งเดียว
3. ควรใช้การย่อหน้าเพื่อแยกคาเฉพาะรวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งจะ
ทาให้อ่านได้ง่าย
4. ซึ่งแต่ละประโยคคาสั่งเขียนจากบนลงล่าง โดยมีทางเข้าทางเดียวและทางออกทางเดียว
5. กลุ่มประโยคคาสั่งต่าง ๆ อาจจัดเข้าไว้ในรูปของโมดูล
2.4 แผนภูมิโครงสร้าง(Structure chart)
จะเป็นการแบ่งงานใหญ่ออกเป็นโมดูย่อยๆ ซึ่งเรียกว่า การออกแบบจากบนลงล่าง (Top-
Down Design) และแต่ละโมดูย่อยก็ยังสามารถแตกออกได้อีกจนถึงระดับที่ล่างสุด ที่สามารถเขียน
โปรแกรมได้อย่างง่าย
3. การเขียนโปรแกรม
หลังจากที่ผ่านขั้นตอนที่สองคือการออกแบบโปรแกรมแล้ว ขั้นต่อไปคือการเขียนโปรแกรมด้วย
ภาษาคอมพิวเตอร์ ในขั้นตอนนี้จะเป็นการนาเครื่องมือที่ถูกสร้างขึ้นจากขั้นตอนการออกแบบมาแปลให้
5. 13
เป็นโปรแกรมคอมพิวเตอร์นั่นเอง ซึ่งในการสร้างโปรแกรมคอมพิวเตอร์นั้น เราสามารถเลือกใช้ภาษาได้
หลายภาษา ตั้งแต่ภาษาระดับต่า เช่น ภาษาแอสเซมบลี จนถึงภาษาระดับสูง เช่น ภาษาเบสิก(BASIC)
ภาษาโคบอล(COBOL) ภาษาปาสดาล(PASCAL) ภาษาฟอร์แทรน(FORTRAN) ภาษาซี(C) ฯลฯ แต่ละ
ภาษาก็จะมีรูปแบบ โครงสร้าง หรือไวยากรณ์ของภาษาที่แตกต่างกันออกไป
ดังนั้นการเขียนโปรแกรมที่ดีนั้น ควรจะต้องทาตามขั้นตอนคือเริ่มตั้งแต่วิเคราะห์ปัญหาให้ได้ก่อน
แล้วทาการออกแบบโปรแกรมจึงจะเริ่มเขียนโปรแกรม ซึ่งในการเขียนโปรแกรมนั้นสาหรับผู้ที่ยังไม่มี
ประสบการณ์การเขียนโปรแกรมเพียงพอ ก็ควรจะทดลองเขียนลงในกระดาษก่อน แล้วตรวจสอบจนแน่ใจ
ว่าสามารถทางานได้แล้วจึงทาการป้อนเข้าสู่เครื่องคอมพิวเตอร์ เพื่อเป็นการประหยัดเวลาและทาให้
สามารถทางานได้เร็วขึ้น
4. การทดสอบโปรแกรม
หลังจากเขียนโปรแกรมเรียบร้อยแล้ว ขั้นต่อไปคือการนาโปรแกรมมาแปล เพื่อทดสอบความ
ถูกต้องตัวแปลภาษาคอมพิวเตอร์มี 2 ชนิดคือ
1) คอมไพเลอร์ (compiler) เช่น ภาษาซี ภาษาปาสคาล จะแปลทั้งโปรแกรม ซึ่งหากมี
ข้อผิดพลาด ก็จะต้องแก้ไขให้ถูกต้อง และแปลใหม่จนกระทั่งไม่พบข้อผิดพลาด โปรแกรมจึงจะสามารถ
ทางานได้
2) อินเตอร์พรีเตอร์ (Interpreter) จะแปลทีละคาสั่งในแต่ละบรรทัดโดยโปรแกรมยังสามารถ
ทางานต่อไปได้ถึงแม้ว่าจะมีข้อผิดพลาดในโปรแกรมก็ตาม ตราบใดที่ตัวแปลยังไม่ผ่านบรรทัดคาสั่งที่เขียน
ผิดขั้นตอนการทดสอบโปรแกรมเรียกอีกอย่างหนึ่งว่า “การดีบั๊กโปรแกรม (Debugging)”
การทดสอบด้วยการแปลชุดคาสั่ง เป็นการตรวจสอบข้อผิดพลาดของชุดคาสั่ง (Syntax Error) เป็น
สาคัญ เช่น กรณีพิมพ์คาสั่งผิด เช่น Print แทนที่จะเป็น printf ซึ่งตัวแปลจะไม่รู้จักคาสั่งดังกล่าว ก็จะ
แสดงข้อผิดพลาดออกมา แต่ถ้าผลลัพธ์ของโปรแกรมผิดพลาดจากการใช้สูตรคานวณที่ผิด (Logic Error)
เช่น ตั้งสูตรคานวณภาษีผิด
บางครั้งโปรแกรมอาจผ่านการแปล โดยไม่มีข้อผิดพลาดใดๆ แจ้งออกมา แต่เมื่อนาโปรแกรมนั้นไป
ใช้งานปรากฏว่าได้ผลลัพธ์ที่ไม่เป็นจริง เนื่องจากอาจเกิดข้อผิดพลาดแบบ Logical Error ขึ้นได้ ดังนั้นจึง
ควรจะต้องมีขั้นตอนการทดสอบความถูกต้องของโปรแกรมอีกทีด้วย
6. 14
ในการทดสอบความถูกต้องของข้อมูลจะมีอยู่หลายวิธีดังต่อไปนี้
4.1 การใส่ข้อมูลที่ถูกต้อง(valid case)
เป็นการทดสอบโดยเมื่อมีการรันโปรแกรม ให้ทาการใส่ข้อมูลที่ถูกต้องลงไปในโปรแกรม
และดูว่าผลลัพธ์ที่ได้จากโปรแกรมถูกต้องตามความเป็นจริงหรือตรงกับที่ต้องการหรือไม่
4.2 การใช้ของเขตและความถูกต้องของข้อมูล(Range check and Completeness check)
เป็นการทดสอบโดยตรวจสอบขอบเขตของข้อมูลที่ป้อนเข้าสู่โปรแกรม เช่น ถ้าโปรแกรม
ให้มีการป้อนวันที่ ก็จะต้องตรวจสอบว่าวันที่ที่ป้อนจะไม่เกินวันที่ 31 ถ้าผู้ใช้ป้อนวันที่ที่เป็นเลข 32
โปรแกรมจะต้องไม่ยอมให้ป้อนวันที่นี้ได้ หรือ การตรวจสอบความสมบูรณ์ของข้อมูล เช่น การรับข้อมูลที่
เป็นวัน/เดือน/ปี ก็จะต้องใส่เป็นตัวเลข 6 ตัวในลักษณะ dd/mm/yy ถ้าใส่น้อยกว่า 6 ตัวจะไม่รับเป็นต้น
4.3 การใช้ความสมเหตุสมผล (Consistency Check)
ตัวอย่างเช่น ถ้าโปรแกรมมีการออกแบบให้ผู้ใช้ป้อนข้อมูลลงไปในฟอร์ม (Form) ที่มีฟิลด์
ข้อมูลที่เป็นเพศ (หญิง หรือ ชาย) และรายละเอียดส่วนตัวของคน ๆ นั้น
เพศ วันลาคลอด
ชาย ต้องไม่มี(ห้ามใส่)
หญิง อาจมีหรือไม่มีก็ได้
4.4 ข้อมูลที่เป็นตัวเลขและตัวอักษร (Correct No. and Type character check)
เป็นการตรวจสอบว่าถ้าโปรแกรมให้ผู้ป้อนข้อมูลในฟิลด์ที่ต้องรับข้อมูลที่เป็นตัวเลข
อย่างเช่น ฟิลด์ที่เป็นจานวนเงิน ก็ควรจะยอมให้ผู้ใช้ป้อนข้อมูลได้เฉพาะตัวเลขเท่านั้น ไม่อนุญาตให้ใส่
ตัวอักษรในฟิลด์นั้นได้ หรือถ้าเป็นฟิลด์ที่รับข้อมูลที่เป็นตัวอักษรเช่น ฟิลด์ชื่อ-นามสกุล ก็จะป้อนได้
เฉพาะตัวอักษรเท่านั้น จะป้อนตัวเลขไม่ได้เป็นต้น
5.5 ข้อมูลเป็นไปตามข้อกาหนด (Existence Check)
ข้อมูลที่ป้อนในฟิลด์ต้องเป็นไปตามที่กาหนดไว้แน่นอนแล้วเท่านั้น เช่นกาหนดให้ฟิลด์นี้
ป้อนขอมูลได้เฉพาะตัวเลขที่อยู่ในกลุ่ม 1,2,5,7 ได้เท่านั้น จะป้อนเป็นตัวเลขอื่นที่ไม่อยู่ในกลุ่มนี้ไม่ได้
การนาโปรแกรมเข้าเครื่องคอมพิวเตอร์พร้อมข้อมูลจริง
ขั้นตอนต่อมาหลังจากที่ได้ทาการทดสอบโปรแกรมจนมีความมั่นใจว่าโปรแกรมสามารถทางานได้
จริงและตรงกับความต้องการของผู้ใช้โปรแกรม จากนั้นเราจึงทาการนาโปรแกรมเข้าเครื่องคอมพิวเตอร์
พร้อมข้อมูลจริง ในขั้นตอนนี้จะเป็นการนาข้อมูลที่แท้จริง มาป้อนให้กับโปรแกรมเพื่อทางานและนาผลลัพธ์
ไปใช้ประโยชน์ต่อไป
7. 15
5. การจัดทาเอกสารประกอบโปรแกรม
5.1 เอกสารประกอบโปรแกรมสาหรับผู้ใช้ (User Documentation)
เหมาะสาหรับผู้ใช้ที่ไม่ต้องเกี่ยวข้องกับการพัฒนาโปรแกรม แต่เป็นผู้ที่ใช้งานโปรแกรม
อย่างเดียว จะเน้นการอธิบายเกี่ยวกับการใช้งานโปรแกรมเป็นหลัก ตัวอย่างเช่น
- โปรแกรมนี้ทาอะไร ใช้งานในด้านไหน
- ข้อมูลเข้ามีลักษณะอย่างไร
- ข้อมูลออกหรือผลลัพธ์มีลักษณะอย่างไร
- การเรียกใช้โปรแกรมทาอย่างไร
- คาสั่ง หรือข้อมูล ที่จาเป็นให้โปรแกรมเริ่มงานมีอะไรบ้าง
- อธิบายเกี่ยวกับประสิทธิภาพ และความสามารถของโปรแกรม
5.2 เอกสารประกอบโปรแกรมสาหรับผู้เขียนโปรแกรม (Technical Documentation)
จะแบ่งได้เป็น 2 ส่วน
- ส่วนที่เป็นคาอธิบายหรือหมายเหตุในโปรแกรมหรือเรียกอีกอย่างหนึ่งว่าคอมเมนท์
(Comment) ซึ่งส่วนใหญ่มักจะเขียนแทรกอยู่ในโปรแกรมอธิบายการทางานของโปรแกรมเป็นส่วน ๆ
- ส่วนอธิบายด้านเทคนิค ซึ่งส่วนนี้มักจะทาเป็นเอกสารแยกต่างหากจากโปรแกรม จะอธิบาย
ในรายละเอียดที่มากขึ้น เช่น ชื่อโปรแกรมย่อยต่าง ๆ มีอะไรบ้าง แต่ละโปรแกรมย่อยทาหน้าที่อะไร และ
คาอธิบายย่อ ๆ เกี่ยวกับวัตถุประสงค์ของโปรแกรม เป็นต้น
8. 16
รูปแบบการเขียนโปรแกรม
การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
โปรแกรมที่มีคุณภาพ คือโปรแกรมที่ง่ายต่อการอ่านและง่ายต่อการปรับปรุงแก้ไขในอนาคต โดย
รูปแบบการเขียนโปรแกรมเชิงโครงสร้างนั้น เป็นรูปแบบที่ง่ายต่อการอ่านและการปรับปรุงประกอบด้วย
- ชุดคาสั่งภายในโปรแกรม จะเป็นลาดับขั้นตอน (Sequence)
- มีทางเลือกในการตัดสินใจทางใดทางหนึ่ง (Decision)
- มีชุดคาสั่งการทาซ้า (Repetition)
N N
Y Y
ก. ลาดับขั้นตอน ข. ตัดสินใจ ค.ลูปทาซ้า
รูปที่ 1 ผังงานแสดงรูปแบบการเขียนโปรแกรมเชิงโครงสร้าง
การเขียนโปรแกรมแบบบนลงล่าง (Top-Down Programming) ซึ่งจะเป็นการนาโปรแกรมมา
แบ่งเป็นส่วนย่อย ๆ เพื่อลดความซ้าซ้อนโดยมีโปรแกรมหลักอยู่ระดับบน จะเรียกใช้โมดูลย่อยต่าง ๆซึ่งแต่
ละโมดูลจะทาหน้าที่ของตนเองที่แตกต่างออกไป เช่น
โมดูลที่ 1 : อ่านข้อมูลคะแนนนักเรียน
โมดูลที่ 2 : คานวณเกรด
โมดูลที่ 3 : จาแนกนักเรียนที่สอบผ่านและสอบไม่ผ่าน
โมดูลที่ 4 : พิมพ์รายงาน
ดังนั้นภายในโปรแกรมจึงประกอบไปด้วยหลาย ๆ โมดูลที่ทางานร่วมกันเพื่อแก้ไขปัญหา ซึ่งจะ
ช่วยให้ง่ายต่อการอ่านและง่ายต่อการแก้ไขโปรแกรม ตัวอย่าง หากต้องการเปลี่ยนแปลงช่วงคะแนนการคิด
ยืนขึ้น
หันขวา
เดินไปข้างหน้า
มองไปนอกบ้าน
นาร่มไปด้วย
ใส่แว่นกันแดด
ฝนตก?
ทางาน
ออกไปทานข้าว
พักเที่ยง?
9. 17
เกรด เช่นจากเดิม 80 คะแนนขึ้นไปจะได้เกรด 4 แก้ไขมาเป็น 85 คะแนนขึ้นไปถึงจะได้เกรด 4 ก็จะแก้ไข
เฉพาะโมดูลที่ 2 เท่านั้น ส่วนโมดูลอื่น ๆ ก็ไม่มีผลกระทบใด ๆ
รูปที่ 2 รูปแบบการเขียนโปรแกรมแบบบนลงล่าง หรือแบบโมดูล
ข้อดีของการเขียนโปรแกรมแบบโครงสร้าง
1. เพื่อสร้างโปรแกรมให้มีคุณภาพ และสามารถทานายได้ว่าจะเกิดอะไรขึ้นในโปรแกรม
2. เพื่อสร้างโปรแกรมที่ง่ายต่อการปรับปรุงแก้ไข
3. เพื่อให้การพัฒนาโปรแกรมมีระบบระเบียบยิ่งขึ้น
4. เพื่อให้การพัฒนาระบบเป็นไปอย่างรวดเร็วประหยัดต้นทุน
โปรแกรมคิดเกรดนักเรียน
(โปรแกรมหลัก)
อ่านข้อมูล
คะแนนนักเรียน
คานวณเกรด
จานวนนักเรียนที่
สอบผ่าน/ไม่ผ่าน
พิมพ์รายงาน
10. 18
การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming )
การเขียนโปรแกรมเชิงวัตถุ ตั้งอยู่บนพื้นฐานของการแจกแจงรายละเอียดของปัญหาด้วยการ
มุ่งเน้นเกี่ยวกับวัตถุในโลกความเป็นจริง โปรแกรมเชิงวัตถุนั้นจะมองวัตถุต่าง ๆ เป็นแหล่งรวมข้อมูลและ
กระบวนการเข้าด้วยกันโดยจะมีคลาส ( Class)เป็นตัวกาหนดคุณสมบัติของวัตถุ และคลาสจะสืบทอด
คุณสมบัติ(Inheritance) ไปยังคลาสย่อยต่าง ๆ ที่เรียกว่า SubClass คุณสมบัติดังกล่าวทาให้เกิดการนา
มาใช้ใหม่ (Reusable) ที่ทาให้ลดขั้นตอนการพัฒนาโปรแกรมลงได้ โดยเฉพาะขนาดที่ใหญ่และซับซ้อนสูง
รูปแบบการเขียนซูโดโค้ด(Pseudo Code)
รูปแบบการเขียนซูโดโค๊ด เพื่อใช้ในการเขียนโปรแกรม
1. การกาหนดค่า และการคานวณ
รูปแบบ
Name = expression
Name คือ ชื่อตัวแปรที่ใช้สาหรับเก็บค่า
Expression คือ ค่าข้อมูลหรือนิพจน์
ตัวอย่างเช่น
Salary = 10000
Overtime = 2500
Tax = 125
Income = salary + overtime – tax
หมายความว่า ได้มีการกาหนดค่าเริ่มต้นให้กับตัวแปร salary, overtime และ tax จากนั้น
ก็กาหนดให้ income = salary + overtime - tax
2. การอ่าน/รับข้อมูล
รูปแบบ
READ variable_1, variable_2,variable_n
INPUT variable_1, variable_2,variable_n
GET variable_1, variable_2,variable_n
การอ่านข้อมูลสามารถใช้คาสั่ง READ , INPUT หรือ GET ก็ได้ทั้ง 3 คาสั่งจะถูกนาไปใช้
ในกรณีดังต่อไปนี้
11. 19
READ นาไปใช้สาหรับการอ่านค่าที่มีอยู่แล้วมาเก็บไว้ในตัวแปร เช่น อ่านข้อมูลจากไฟล์
ในสื่อบันทึกต่าง ๆ
INPUT และ GET นาไปใช้สาหรับการรับข้อมูลจากแป้นพิมพ์
สาหรับ variable คือตัวแปรที่ใช้ในการเก็บข้อมูลที่อ่านหรือรับเข้ามา ซึ่งสามารถกาหนด
ได้หลายตัวตามจานวนตัวแปรที่ต้องการโดยใช้เครื่องหมาย “ , ” คั่นระหว่างชื่อตัวแปร
ตัวอย่างเช่น
INPUT a, b, c
Answer = a + b + c
หมายความว่า ให้รับค่าตัวแปร a ,b ,c ผ่านทางแป้นพิมพ์และกาหนดให้ตัวแปร answer เก็บค่า
ผลรวมของตัวแปรทั้ง 3
GET current_date
Expire_date = current_date + 120
หมายความว่า ให้รับค่าวันที่ปัจจุบัน แล้วเก็บไว้ในตัวแปรชื่อ current date จากนั้นกาหนดให้ตัว
แปรวันหมดอายุชื่อ expire_date มีค่าเท่ากับวันที่ปัจจุบันบวกเพิ่มไปอีก 120 วัน
OPEN student_file
READ id, name, address, sex
หมายความว่า ให้เปิดไฟล์ชื่อ student_file ไว้ แล้วอ่านค่าเรคอร์ด จากไฟล์ดังกล่าวซึ่ง
ประกอบด้วย ฟิลด์ id, name, address, sex
3. การแสดงผลของข้อมูล
รูปแบบ
PRINT variable_1, variable_2,variable_n
PROMPT variable_1, variable_2,variable_n
WRITE variable_1, variable_2,variable_n
สาหรับการแสดงผลข้อมูลสามารถใช้คาสั่ง PRINT, PROMPT, WRITE ใช้ในกรณีต่าง ๆ ต่อไปนี้
- PRINT และ PROMPT นาไปใช้สาหรับการพิมพ์ค่าข้อมูล หรือข้อความ
12. 20
- WRITE นาไปใช้สาหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล
ตัวอย่างเช่น
PROMPT “Enter 3 Value ==> ”
INPUT value1,value2,value3
Sum = value1 + value2 + value3
PRINT sum
หมายความว่าแสดงข้อความให้พิมพ์ค่าจานวนตัวเลขจานวน 3 ค่า จากนั้นให้รับค่าตัวเลขทั้ง
สามโดยจัดเก็บไว้ที่ตัวแปรที่ชื่อ value1 ,value2 , value3 และกาหนดให้ sum มีค่าเท่ากับผลรวมของตัว
แปรทั้งสาม แล้วพิมพ์ค่า sum
OPEN student_file
INPUT id, name, address, sex
WRITE id, name ,address , sex
หมายความว่า ให้เปิดไฟล์ที่ชื่อ Student_file ขึ้นมา จากนั้นรับค่า id ,name ,address และ
sex แล้วบันทึกค่าดังกล่าวลงในแฟ้มข้อมูล
4. การกาหนดเงื่อนไข
รูปแบบ
IF <condition> THEN
Activity 1
ELSE
Activity2
ENDIF
โดยที่ <condition> คือเงื่อนไขที่กาหนด ซึ่งหากเงื่อนไขเป็นจริง ก็จะทากิจกรรมหลัง THEN แต่ถ้า
เงื่อนไขนั้นเป็นเท็จ ก็จะทากิจกรรมหลัง ELSE
13. 21
ตัวอย่างเช่น
IF score >= 80 THEN
Grade = “4”
ELSE
Grade = “3”
ENDIF
นอกจากการใช้เงื่อนไข IF … THEN แล้ว ก็ยังมีคาสั่ง CASE …. OF ซึ่งสามารถตรวจสอบ
เงื่อนไขหลายเงื่อนไขได้ด้วย เช่น
CASE score OF
Score>= 80 : grade = “4”
Score>= 70 : grade = “3”
Score>= 60 : grade = “2”
Score>= 50 : grade = “1”
END CASE
5. การทางานเป็นรอบ(Loop)
5.1 การทางานเป็นรอบด้วย WHILE
รูปแบบ
WHILE <condition>
Activity1
Activity2
Activity3
END WHILE
การทางานของลูป WHILE จะมีการตรวจสอบเงื่อนไขก่อนหากเงื่อนไขเป็นจริงก็จะทา
กิจกรรมที่อยู่ภายในไปเรื่อย ๆ จนกระทั่งเงื่อนไขนั้นเป็นเท็จและก็จะออกจากลูปนั้นไป
14. 22
ตัวอย่าง
WHILE num <=20
PRINT num
Num = num + 1
END WHILE
PROMPT “STOP”
จากตัวอย่าง num จะมีค่าเริ่มต้นเป็น 1 และจะวนภายในลูปจานวน 20 รอบ พร้อมกับพิมพ์ค่า
ของ num โดยเพิ่มทีละ 1 ไปเรื่อย ๆ จนกระทั่ง ค่า num มากกว่า 20 แล้วก็ออกจากลูป พร้อมกับพิมพ์
ข้อความว่า STOP ออกมา
5.2 การทางานเป็นรอบด้วยลูป DO…UNTIL
รูปแบบ
DO
Activity1
Activity2
Activity3
UNTIL <condition>
การทาลูป DO…UNTIL จะเป็นการตรวจสอบเงื่อนไขภายหลังซึ่งจะวนรอบไปเรื่อย ๆ และทา
กิจกรรมภายในลูป
ตัวอย่างเช่น
DO
PRINT “Hello World”
Num = num +1
UNTIL num > 20
จากตัวอย่างโปรแกรมก็จะพิมพ์ข้อความ “Hello World” ไปเรื่อย ๆ โดยจะมีการนับค่า
num เพิ่มขึ้นทีละ 1 และจะตรวจสอบว่า num มีค่ามากกว่า 20 เมื่อไรก็จะหลุดออกจากลูปทันที
15. 23
5.3 การทาเป็นรอบแบบ FOR…NEXT
รูปแบบ
FOR n = 1 to 10
Activity 1
Activity 2
Activity 3
NEXT
การทางานของลูป FOR…NEXT จะมีการวนซ้าเพื่อทางานภายในลูปที่กาหนดว้าอย่างแน่นอน
เช่น กาหนดไว้ 10 รอบ ก็จาทากิจกรรมภายในลูป 10 รอบ ตัวอย่างเช่น ให้พิมพ์คาว่า
GOOD Bye จานวน 10 ข้อความ
FOR n=1 to 10
PRINT “GOOD Bye”
NEXT
6. โปรแกรมย่อย (Procedure)
ในกรณีที่โปรแกรมมีความซับซ้อน และมีขั้นตอนมากมายอาจจะมีความจาเป็นต้องแบ่งโปรแกรม
ออกเป็นโปรแกรมย่อย ๆ หรือเรียกว่าโพรซีเยอร์( PROCEDURE) โดยแต่และโพรซีเยอร์จะต้องมี ชื่อกากับ
พร้อมชุดคาสั่งภายในโปรแกรมย่อย นั้นๆ ส่วนการเรียกใช้จะใช้คาสั่ง CALL แล้วตามด้วยชื่อ โพรซีเยอร์
รูปแบบ
PROCEDURE name
17. 25
แบบทดสอบ
ตอนที่ 1 จงทาเครื่องหมาย บนตัวเลือกที่ถูกที่สุดเพียงข้อเดียว
1. ข้อใดไม่ใช่ขั้นตอนการเขียนโปรแกรม
ก. การสร้างปัญหา ข. การเขียนอัลกอริทึม
ค. การเขียนโปรแกรม ง. การทดสอบโปรแกรม
2. ตัวแปรภาษาชนิดใดที่จะทาการแปลทั้งโปรแกรม หากมีข้อผิดพลาด จะต้องแก้ไขให้ถูกต้องก่อน
โปรแกรมจึงจะทางานได้
ก. อินเตอร์พรีเตอร์ ข.คอมไพเลอร์
ค. ดีบีกเกอร์ ง. ถูกทุกข้อ
3. ข้อใดต่อเป็นนี้เป็นข้อผิดพลาดชนิด Logic Error
ก. ผลการตัดสินเกรดนักเรียนผิดพลาด ข. พิมพ์คาสั่งบางคาสั่งผิด
ค. โปรแกรมไม่มีข้อมูล ง. ถูกทุกข้อ
4. ข้อใดต่อไปนี้เป็นการเขียนโปรแกรมเชิงโครงสร้าง
ก. ชุดคาสั่งเป็นลาดับขั้นตอน ข. มีทางเลือกในการตัดสินใจทางใดทางหนึ่ง
ค. มีกระบวนการทาซ้า ง. ถูกทุกข้อ
5. ข้อใดต่อไปนี้ถือว่าเป็นกระบวนการทาซ้า
ก. ตื่นนอน ล้างหน้า แปรงฟัน ไปโรงเรียน
ข. เรียนหนังสือ ง่วงนอน แบบหลับ
ค. เรียนหนังสือ จนถึงเวลา 11.30 น แล้วไปทานข้าว
ง. ถ้าหิว ไปทานข้าวก่อน แล้วมาเรียน
6. ข้อใดต่อไปนี้เกี่ยวข้องกับการเขียนโปรแกรมแบบโมดูล
ก. การสร้างโปรแกรมแบบโครงสร้าง ข. การแบ่งโปรแกรมออกเป็นส่วนย่อย ๆ
ค. การแตกปัญหาออกเป็นส่วน ๆ ง. ถูกทุกข้อ
7. ข้อใดต่อไปนี้ ไม่ใช่ เกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุ
ก. การสร้างคลาส ข. การสืบทอดคุณสมบัติ
ค. การสร้างโพรซีเยอร์ ง. การนากลับมาใช้ใหม่
18. 26
8. ข้อใดไม่ใช่วัตถุประสงค์ของการเขียนโปรแกรมเชิงโครงสร้าง
ก. สร้างกาลังใจให้กับทีมงาน ข. สร้างโปรแกรมที่ปรับปรุงได้ง่าย
ค. ทานายได้ว่าจะเกิดเหตุการณ์ใดในโปรแกรม ง. ประหยัดต้นทุนในการเขียนโปรแกรม
9: ข้อใดต่อไปนี้เป็น อัลกอริทึม
ก. หลักการคานวณสูตรคูณแม่ 12 ข. จงหาผลรวมของเลขคู่
ค. คานวณค่าลวงเวลาของพนักงานทั้งหมด ง. ถูกทุกข้อ
10. ประสิทธิภาพของอัลกอริทึมสามารถดูได้จากข้อใดต่อไปนี้
ก. ต้องการหน่วยความจามาก ข. ใช้เวลาในการพัฒนานานมาก
ค. ง่ายต่อการทาความเข้าใจ ง. ถูกทุกข้อ
11. ข้อใดต่อไปนี้ไม่เกี่ยวข้องกับ “ซูโดโค้ด”
ก. เป็นชุดคาสั่งภาษาคอมพิวเตอร์
ข. เป็นคาสั่งจาลองที่ไม่ขึ้นกับภาษาคอมพิวเตอร์
ค. เป็นรูปแบบโครงสร้างภาษาอังกฤษคล้ายกับภาษาระดับสูง
ง. ถูกทุกข้อ
12. ประโยคคาสั่งของซูโดโค้ดที่มาใช้ในการอ่านข้อมูลจากดิสก์ ควรใช้ประโยคคาสั่งใด
ก. READ ข. INPUT DISKET
ค. GET FROM DISKET ง. PROMPT
13. การรับข้อมูลจากคีย์บอร์ดควรใช้ประโยคคาสั่งใด
ก. READ ข. GET, INPUT
ค. WRITE ,PROPT ง. KEYBOARD
14. กรณีต้องการตรวจสอบเงื่อนไขควรใช้คาสั่งใด
ก. IF…THEN…ELSE ข. CASE
ค. DO…UNTIL ง. ข้อ ก. และ ข. ถูก
15. ลูปในข้อใดต่อไปนี้จะไม่สามารถประมวลผลคาสั่งภายในได้
ก. LOOP….ENDLOOP ข. WHILE…ENDWHILE
ค. DO…UNTIL ง. FOR…NEXT