วันจันทร์ที่ 9 สิงหาคม พ.ศ. 2553

หน่ยการเรียนที่3 การเขียนแผนผังโครงสร้าง



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

ผังงานเป็นเครื่องมือของผู้เขียนโปรแกรมที่ใช้ในการจำลองการวางแผนเขียนโปรแกรม ใช้แสดงลำดับ การเคลื่อนที่ของการนำข้อมูลเข้าไปประมวลผลออกเป็นผลลัพธ์ตามความต้องการ ซึ่งเป็นขั้นตอนหนึ่งของกระบวนการในการวิเคราะห์งานการเขียนโปรแกรมคอมพิวเตอร์ โดยนำขั้นตอนของวิธีการทำงานที่อยู่ใน รูปแบบข้อความมาแปลงเป็นรูปแบบของสัญลักษณ์ หรืออาจแปลงออกมาเป็นในรูปแบบของรหัสเทียม(pseudocode) เพื่อให้งานในการเขียนโปรแกรมทำได้ง่ายขึ้น อีกทั้งยังแสดงให้ผู้ที่อ่านภาษาที่ยังเขียนอยู่ในขั้นตอนวิธี สามารถเข้าใจในลำดับขั้นตอนของการทำงานของโปรแกรมที่จะทำการพัฒนาได้โดยการดูจากลำดับกระบวนการทำงานในผังงาน
การเขียนผังงานก่อนการเขียนโปรแกรมคอมพิวเตอร์ในปัจจุบันมักถูกมองข้ามความสำคัญว่าไม่ จำเป็น เพราะคิดว่าเดี๋ยวนี้เขาเขียนโปรแกรมแบบภาษา เชิงวัตถุ (object-oriented programming language) กันแล้ว ไม่จำเป็นต้องมาเขียนผังงาน แต่หากท่านมองลึก ลงไปภายในของคำสั่งต่าง ๆ ที่ใช้ จะมีรูปแบบของกระบวนการที่ต้องนำผังงานเข้าไปช่วยในการแก้ไขปัญหา ดังนั้นประโยชน์ในการใช้ผังงานคือช่วยในการแก้ไข หรือ
ช่วยในการเขียนโปรแกรม ผังงานจึงมีความจำเป็นต่ออาชีพนักเขียนโปรแกรมอยู่มาก

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


ขั้นตอนการเขียนโปรแกรม
ในการเขียนโปรแกรมหรือภาษาคอมพิวเตอร์นี้ โดยทั่วไปแล้วแต่ละภาษาจะ
มีหลักเกณฑ์ หรือขั้นตอน และการออกแบบโปรแกรมเหมือนกัน ซึ่งสามารถจะแบ่ง
ขั้นตอนการเขียนโปรแกรมออกได้เป็น 6 ขั้นตอนดังนี้
1. ขั้นตอนการวิเคราะห์ปัญหา
2. ขั้นตอนการออกแบบโปรแกรม
3. ขั้นตอนการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
4. ขั้นตอนการทดสอบโปรแกรม
5. ขั้นตอนการนําโปรแกรมเข้าเครื่องคอมพิวเตอร์พร้อมข้อมูลจริง
6. ขั้นตอนการจัดทําเอกสารประกอบโปรแกรม

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

1. การระบุข้อมูลเข้า(Input Specification) ต้องรู้ว่ามีข้อมูลอะไรที่จะต้องป้อนเข้าสู่คอมพิวเตอร์พร้อมกับโปรแกรม เพื่อให้โปรแกรมทํ าการประมวลผลและออกผลลัพธ์

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

3. กํ าหนดวิธีการประมวลผล (Process Specification) ต้องรู้วิธีการประมวลผล
เพื่อให้ได้ผลลัพธ์ตามต้องการ



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

การออกแบบโปรแกรม
หลังจากขั้นตอนการวิเคราะห์ปัญหาแล้ว ขั้นตอนถัดไปคือการออกแบบโปรแกรมโอยใช้เครื่องมือมาช่วยในการออกแบบ ขั้นตอนนี้ยังไม่ได้เป็นการเขียนโปรแกรมจริง ๆ แต่จะช่วยให้การเขียนโปรแกรมทํ าได้ง่านขึ้น โดยสามารถเขียนตามขั้นตอนที่ได้ออกแบบไว้ในขั้นตอนนี้และยังจะช่วยให้การเขียนโปรแกรมมีข้อผิดพลาด
น้อยลง นอกจากนี้ยังช่วยในการตรวจสอบการทํ างานของโปรแกรม ทํ าให้ทราบขั้นตอนการทํ างานได้อย่างรวดเร็ว โดยไม่ต้องไปไล่ดูจากตัวโปรแกรมจริง ๆ ซึ่งถ้าเปรียบเทียบการเขียนโปรแกรมเหมือนกับการสร้างบ้านแล้ว ในขั้นตอนการออกแบบโปรแกรมนี้ก็จะเปรียบเหมือนกับการสร้างแปลนบ้านลงกระดาษไว้ ซึ่งในการสร้าง
บ้านจริงจะอาศัยแปลนบ้านนี้เป็นต้นแบบในการสร้าง นั่นเองในขั้นตอนการออกแบบโปรแกรมนี้เป็นการออกแบบการทํ างานของโปรแกรม หรือขั้นตอนในการทํ าปัญหา ซึ่งผู้ออกแบบสามารถเลือกใช้เครื่องมือมา
ช่วยในการออกแบบได้ โดยมีอยู่หลายตัวตามความถนัดหรือความชอบสํ าหรับเน้อหาในบทนี้จะแนะนํ าให้รู้จักกับเครื่องมือที่ยังใช้ในการออกแบบโปรแกรมคือ
- อัลการิทึม(Algorithm)
- ผังงาน(Flowchart)
- รหัสจํ าลอง(Pseudo code)
- แผนภูมิโครงสร้าง(Structure chart)

การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
หลังจากที่ผ่านขั้นตอนที่สองคือการออกแบบโปรแกรมแล้ว ขั้นต่อไปคือ
การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ในขั้นตอนนี้จะเป็นการนํ าเครื่องมือที่ถูก
สร้างขึ้นจากขั้นตอนการออกแบบมาแปลให้เป็นโปรแกรมคอมพิวเตอร์นั่นเอง ซึ่งใน
การสร้างโปรแกรมคอมพิวเตอร์นั้น เราสามารถเลือกใช้ภาษาได้หลายภาษา ตั้งแต่ภาษา
ระดับตํ่ า เช่น ภาษาแอสเซมบลี จนถึงภาษาระดับสูง เช่น ภาษาเบสิก(BASIC) ภาษา
โคบอล(COBOL) ภาษาปาสดาล(PASCAL) ภาษาฟอร์แทรน(FORTRAN) ภาษาซี(C)
ฯลฯ แต่ละภาษาก็จะมีรูปแบบ โครงสร้าง หรือไวยากรณ์ของภาษาที่แตกต่างกันออก
ไป
ดังนั้นการเขียนโปรแกรมที่ดีนั้น ควรจะต้องทํ าตามขั้นตอนคือเริ่มตั้งแต่
วิเคราะห์ปัญหาให้ได้ก่อน แล้วทํ าการออกแบบโปรแกรมจึงจะเริ่มเขียนโปรแกรม ซึ่ง
ในการเขียนโปรแกรมนั้นสํ าหรับผู้ที่ยังไม่มีประสบการณ์การเขียนโปรแกรมเพียงพอ ก็
ควรจะทดลองเขียนลงในกระดาษก่อน แล้วตรวจสอบจนแน่ใจว่าสามารถทํ างานได้แล้ว
จึงทํ าการป้อนเข้าสู่เครื่องคอมพิวเตอร์ เพื่อเป็นการประหยัดเวลาและทํ าให้สามารถ
ทํ างานได้เร็วขึ้น
1. แนวคิดการสอนเขียนโปรแกรม
หลายครั้งที่ผมต้องเริ่มสอนเขียนโปรแกรม ให้นักเรียนกลุ่มใหม่ และก็ต้องบอกเล่า ด้วยประโยคเดิมทุกครั้งว่า "การเขียนโปรแกรม ทุกภาษานั้นเหมือนกัน" สิ่งที่แตกต่างกัน ของแต่ละภาษาคือ syntax แต่สิ่งที่เหมือนกันของทุกภาษาคือ การใช้ประสบการณ์จากภาษาหนึ่ง ไปใช้ในอีกภาษาหนึ่งได้ ด้วยการซึมซับ เรื่องของ Structure Programming จนเข้าใจ เพื่อควบคุมในสิ่งที่คล้าย ๆ กันคือ input, process และ output ซึ่งหมายความว่า ถ้าท่านเขียนโปรแกรมอะไร ในภาษาหนึ่งได้แล้ว การเขียนโปรแกรมแบบนั้น ในภาษาอื่นย่อมไม่ใช่เรื่องยากอีกต่อไป เพียงแต่ต้องศึกษาถึง syntax หรือ รูปแบบการเขียนของภาษาใหม่นั้นเพิ่มเติม แล้วนำประสบการณ์ที่เคยเขียน ไปสั่งให้ภาษาใหม่ทำงานตามต้องการ ผมจึงมักสนับสนุนให้นักเรียน ได้ศึกษาภาษาที่ไม่มีตัวช่วยมาก เพื่อให้เข้าใจในหลักการ และขั้นตอนการทำงาน อย่างละเอียดชัดเจน จากการทำงานของตัวแปรภาษาที่มีตัวช่วยน้อย ทำงานบน dos สามารถแปลเป็น exe และ นำไปใช้ได้โดยไม่ยุ่งยาก เช่น c, pascal, basic, fox... หรือ clipper เป็นต้น

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

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