PuyZi

วันจันทร์ที่ 27 มิถุนายน พ.ศ. 2554

บทที่1 การเขียนอัลกอริทึมเเละผังงาน(Flowchart)

Chapter 1
Software Development and
Analysis of the Problem
Contents
· การพัฒนาระบบงานทางคอมพิวเตอร์
· ขั้นตอนการพัฒนาโปรแกรม
· ปัญหาและวิธีการแก้ปัญหา
· หลักการวิเคราะห์การแก้ปัญหา
· การเขียนอัลกอริทึมและเทคนิคการนำเสนอ
การพัฒนาระบบงานทางคอมพิวเตอร์
·เป็นกระบวนการพัฒนาระบบงานเดิมให้เป็นระบบการทำงานแบบใหม่
·จุดประสงค์ให้ระบบการทำงานีประสิทธิภาพมากขึ้น
·สำหรับการพัฒนาระบบงานคอมพิวเตอร์นอกจากจัดหาอุปกรณ์ เช่น เครื่องคอมพิวเตอร์ เพื่อนำมาใช้งานแล้วยังต้องจัดหาโปรแกรมประยุกต์งานมาใช้ในการดำเนินงานอีกด้วย
ขั้นตอนการพัฒนาโปรแกรม(STEPS IN PROGRAM DEVELOPMENT)
1. กำหนดปัญหา(Define the Problem)
2. ร่างรายละเอียดแนวทางแก้ปัญหา(Outline the Solution)
3. พัฒนาอัลกอริทึม(Develop and Algorithm)
4. ตรวจสอบความถูกต้องของอัลกอริทึม(Test the Algorithm for Correctness)
5. เขียนโปรแกรม(Programming)
6. ทดสอบโปรแกรม(Testing)
7. จัดทำเอกสารและบำรุงรักษาโปรแกรม(Document andMaintain the Program)

1.กำหนดปัญหา(Define the Problem)
·       Inputs
·       Outputs
·       Processing
2.ร่างรายละเอียดแนวทางการแก้ปัญหา
(Outline the Solution)
· แตกงานให้เป็นชิ้นงานย่อยๆหรือเป็นขั้นตอนวิธี(หลังจากกำหนดปัญหา)
· การร่างรายละเอียดแนวทางการแก้ปัญหาต่างๆประกอบด้วย
o   ขั้นตอการประมวลผลส่วนหลักๆ
o   ส่วนลักของงานที่ได้มีการแตกย่อย(Subtask)
o   ส่วนความสัมพันธ์กับผู้ใช้งาน
o   โครงสร้างที่ควบคุม เช่น การวนซ้ำ หรือการกำหนดทางเลือก
o   ตัวแปรและโครงสร้างของเรคอร์ด
o   ตรรกะโปรแกรม(Logic)
3.พัฒนาอัลกอริทึม(Develop and Algorithm)
· ขั้นตอนที่ใช้อธิบายลำดับการทำงาน และหากปฎิบัติตามขั้นตอนของอัลกอริทึมที่ออกมา
· ซูโด้โค้ด (Pseudo Code)เป็นตัวแทนอัลกอริทึมเพื่อใช้แก้ไขปัญหาทางคอมพิวเตอร์
4.ตรวจสอบความถูกต้องของอัลกอริทึม(Test the Algorithm for Correctness)
· เป็นขั้นตอนที่สำคัญที่สุด
· ตรวจสอบทั้งตรรกะของอัลอริทึม ตัวแปรหลัก และการนำข้อมูลทดสอบเข้าไปประมวลผลในแต่ละขั้นตอน
5.เขียนโปรแกรม(Programming)
· นำอัลกอริทึมที่ได้รับการออกแบบอย่างสมบูรณ์มาพัฒนาด้วยการเขียนโปรแกรม(ชุดคำสั่ง)
· เลือกใช้ภาษาระดับสูง (High Language)เพื่อเขียนโปรแกรม เช่น C, PASCAL เป็น


5.ทดสอบโปรแกรม(Testing)
· นำข้อมูลป้อนเข้าไปเพื่อทดสอบบนเครื่องกับโปรแกรมที่ได้เขียนขึ้นมาว่าถูกต้องหรือไม่
· การตรวจสอบ
o   รูปแบบชุดคำสั่ง (Syntax Errors)
o   โปรแกรม (Logic Errors)
· ข้อมูลทดสอบต้องมีความแตกต่างกันออกไปตามแต่ละสถานการณ์และสภาพแวดล้อม
7.จัดทำเอกสารและบำรุงรักษาโปรแกรม(Document andMaintain the Program)
· การจัดทำเอกสารประกอบโปรแกรมจะต้องจัดทำตั้งแต่ขั้นตอนการกำหนดปัญหาจนถึงขั้นตอนคือ การทดสอบผลลัพธ์
· เอกสารประกอบโปรแกรมจะประกอบด้วย
o   เอกสารภายนอก (External Document)
o   อัลกอริทึมที่ใช้แกไขปัญหา และผลการทดสอบข้อมูล (Internal Document)คือชุดคำสั่งในโปรแกรม
· การบำรุงรักษาโปรแกรมจะเกี่ยวข้องกับงานดูแลและปรับปรุงโปรแกรม
ปัญหาและวิธีการแก้ปัญหา
ปัญหาที่พบในชีวิตประจำวันมีอยู่ 2 ประเภท คือ
· ปัญหาที่มีขั้นตอนที่แน่นอนในการแก้ปัญหา เช่น ปัญหาทางวิทยาศาสตร์ ซึ่งมีสูตรและกฎเกณฑ์เงื่อนไขที่แน่นอนที่จะแก้ปัญหา
· ปัญหาที่ไม่มีขั้นตอนแน่นอนมากนักนารแก้ปัญหา เช่น ปัญหาที่ต้องใช้ความรู้สึกนึกคิด ต้องใช้ดุลยพิในการตัดสินใจแก้ไข
หลักการวิเคราะห์การแก้ไขปัญหา
1. ขั้นวิเคราะห์ผลลัทธ์
2. ขั้นวิเคราะห์ข้อมูล
3. ขั้นวิเคราะห์กระบวนการแก้ไขปัญหาขั้นการประมวลผลข้อมูล
1.ขั้นวิเคราะห์ผลลัทธ์
·       พิจารณาว่าโจทย์ต้องการคำตอบอะไร มีกี่คำตอบ และคำตอบอยู่ในรูปแบบข้อมูลใด เป็นตัวเลข หรือตัวอักษรหรือรูปแบบอื่นๆและต้องการนำไปทำอะไรต่อไป(ผลลัพธ์ที่ได้ต้องไปคำนวณต่อหรือไม่ เป็นต้น)

·       พิจารณาว่ามีข้อมูลอะไรบ้างที่เกี่ยวข้อง การจะคำนวณหาผลลัพธ์ โดยลักษณะของข้อมูลมีอยู่3ลักษณะ ดังนี้

o   ข้อมูลที่โจทย์กำหนดมาโดยตรง
o   ข้อมูลที่โจทย์ไม่ได้บอกโดยตรง
o   ข้อมูลที่เป็นพื้นฐานกิจกรรมการประมวลผลนั้นๆ
ข้อมูลที่โจทย์กำหนดมาโดยตรง
ตัวอย่างเช่น
กำหนดให้ a = 20 b = 15 c = 5
จำนวนนักเรียน 10 คน
ราบชื่อลูกค้า คือ กานดา จินตนา และอาภรณ์
ข้อมูลที่โจทย์ไม่ได้บอกโดยตรง
· บอกมาโดยอ้อม โดยบ่งบอกลักษณ์แหล่งที่มา ความเกี่ยวพันธ์หรือพรรณนาถึงข้อมูลเปิดแบบกว้าง
ตัวอย่างเช่น
· จำนวนนักศึกษาทั้งชั้นเรียนนั่นคือ จำนวนนักเรียน n คน
· ตัวเลขตามที่ข้อมุลผู้ใช้เตรียมมา นั่นคือ ข้อมูลเป็นตัวเลขค่าตามที่ผู้ใช้เตรียมมา
· เลขจำนวนเต็ม 2 จำนวนให้ใส่ในแป้นพิมพ์ นั่นคือข้อมูลเป็นเลขจำนวนเต็มตามที่ผู้ใช้เตรียมมา2ตัว

ข้อมูลที่เป็นพื้นฐานกิจกรรมการประมวลผลเท่านั้นๆโดยให้ผู้ใช้ใส่ข้อมูลที่เกี่ยวข้องทางแป้นพิมพ์ นั่นคือข้อมูลที่ต้องใช้ในการคำนวณพื้นที่ดังกล่าวนี้ ได้แก่
ตัวเลจบอกขนาด ฐาน (Base)
ตัวเลจบอกขนาด สูง (Height)ซึ่งวัดจากมุมมาตั้งฉากกับฐาน
ตัวเลข½ หรือ 0.5 ซึ่งเป็นเลขค่าคงที่ (Constant)จะต้อมาใช้คูณร่วมกับฐาน และสูง เป็นไปตามหลักการคำนวณพื้นที่สมเหลี่ยมที่ว่า= ½ x base x height
3.ขั้นวิเคราะกระบวนการแก้ปัญหา
·  ขั้นตอนนี้เป็นขั้นตอนที่สำคัญที่สุดในการเขียนโปรแกรมเพื่อแก้ไขปัญหาโดยใช้คอมพิวเตอร์เพราะต้องเสดงความสัมพันธ์ระหว่างข้อมูลที่ได้รับจากขั้นตอนวิเคราะผลลัพธ์และขั้นวิเคราะห์ข้อมูล ให้อยู่ในรูปแบบการคำนวณทางคณิตศาสตร์ หรือเงื่อนไขที่คอมพิวเตอร์รู้จักเท่านั้น

ให้นักศึกษาเขียนโปรแกรมหาคะแนนรวมจากการเก็บคะแนนกลางภาคและปลายภาคของนักศึกษา
· วิเคราะห์ผลลัพธ์-ผลรวมของคะแนน
· วิเคราะห์ข้อมูล-โจทย์บอกชัดเจนว่าคะแนนรวมของคะแนนกลางภาคและปลายภาคเพราะฉะนั้นจึงีที่มาของข้อมูลอยู่ 2 จำนวน คือ คะแนนภาคกลางและคะแนนปลายภาค
· วิเคราะห์กระบวนการแก้ปัญหา-โจทย์บอกชัดเจนว่าต้องเอาคะแนนกลางภาคกับปลายภาคมาบวกกัน จึงได้คะแนนรวมดังนี้
คะแนน=คะแนนกลางภาค+คะแนนปลายภาค
ตัวอย่าง หลักการวิเคราะห์การแก้ปัญหา
ให้นักศึกษาเขียนโปรแกรมคำนวณาพื้นที่ของสามเหลี่ยม
1.วิเคราะห์ผลลัพธ์-พื้นที่ของสามเหลี่ยม
2.วิเคราะห์ข้อมูล-โจทย์บอกชัดเจนว่าทำอย่างไร แต่ข้อนี้เป็นสูตรคณิศาสตร์พื้นฐานในการหาพื้นที่สามเหลี่ยมคือต้องรู้สูตรเสียก่อนคือ
area = ½ x base x height
3.วิเคราะห์กระบวนการแก้ไขปัญหา-ข้อนี้ใช้สูตรชัดเจนแน่นอน ดังนั้นจึงต้องคำนวณตามสูตร
การเขียนอัลกอริทึมและเทคนิคการนำเสนอ
Algorithm
· คือ กลุ่มขั้นตอนหรือกฎเกณฑ์ที่จะนำไปสู่การแก้ไขปัญหาได้
· คือ ขั้นตอนวิธี ซึ่งจะใช้อธิบายว่างานๆนั้นทำอย่างไร โดยจะประกอบด้วยชุดลำดับเป็นขั้นเป็นตอนที่ชัดเจน และรับประกันว่าเมื่อได้ปฎิบัติถูกต้องตามขั้นตนจนครบ ก็ได้ผลลัพธ์ที่ถูกต้องตามต้องการ
คุณสมบัติที่ดีของอัลกอริทึมที่ดีในการแก้ไขปัญหาทางคอมพิวเตอร์
1. อัลกอริทึมจะต้องไม่กำกวม อ่านแล้วเข้าใจง่าย
2. อัลกอริทึมต้องมีความถูกต้องในผลลัพธ์ที่แก้ไขปัญหาในกรณีต่างๆ
3. กระบวนการหรือขั้นตอนที่ระบุไว้ในอัลกอริทึมต้องมีความเรียบง่าย เพียงพอต่อการดำเนินงานเพื่อประมวลผลในคอมพิวเตอร์ได้
4. อัลกอริทึมต้องมีจุดสิ้นสุด
รูปแบบการเขียนAlgorithm
Algorithm<ชื่อของอัลกอริทึม>
1.             ………………………..
2.             ………………………..
3.             ………………………..
4.             END
Example Algorithm
อัลกอริทึมการต้มบะหมี่สำเร็จรูป
1. จัดเตรียมปะหมี่สำเร็จรูป
2. ต้มน้ำสะอาดให้ดื่ม
3. นำบะหมี่สำเร็รูปใส่ลงชาม
4. ฉีกซองเทเครื่องปรุงลงในชาม
5. นำน้ำที่เดือดเทลงชาม
6. ปิดผา
7.รอประมาณ 3 นาที
Example Algorithm (Cont.)
Algorithmล้างรถ
1. ฉีดน้ำล้างรถให้ทั่วเพื่อขจัดฝุ่นและเศษดินทรายออก
2. ผสมแชมพูล้างรถ 1 ฝาต่อน้ำครึ่งถัง
3. นำสบุ่ชุบน้ำแชมพูเช็ดทำความสะอาดให้ทั่ว
4. ฉีดน้ำล้างให้สะอาด
5. ใช้ผ้านุ่มๆหรือผ้าชามัวรืที่สะอาดเช้ดให้แห้ง
6. จบ
การเขียนอัลกอริทึมและเทคนิคการนำเสนอ(Cont.)
วิธีการนำเสนออัลกอริทึมที่นิยมมี2วิธี คือ
· รหัสจำลอง(Pseudo Code)
· ผังงาน(Flowchart)
(Pseudo Code)
· นำมาใช้แทนอัลกอริทึม
· โปรแกรมเมอสามารถนัลกอรทึมที่นำเสนอในรูปเบบซูโดโค้ดไปเขียนในชุดคำสั่งภาษาโรแกรมได้ทันที
วิธีการเขียนซูโดโค้ด
1. ถ้อยคำหรื่อประโยคคำสั่ง(Statement)ให้เขียนในรูปแบบอังกฤษอย่างง่าย
2. ในหนึ่งบรรทัด ให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
3. ควรใช้ย่อหน้าเป็นประโยชน์เพื่อแยกคำเฉพาะ(Keywords)ได้อย่างชัดเจนร่วมถึงโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งการกระทำดังกล่าวจะทำให้อ่านง่าย
4. แต่ละประโยคคำสั่งให้เขียนจากบนลงล่าง โดยมีทางเข้าเพียงทางเดียวเท่านั้น
5.  กลุ่มของประโยคคำสั่งต่างๆอาจจัดกลุ่มเข้าด้วยกันในรูปแบบโมดูล แต่ต้องกำหนดเบบโมดูลเท่านั้นด้วย เพื่อสามารถเรียกใช้งานโมดูลนั้นได้
ปฎิบัติพื้นฐาน 6 ประการของคอมพิวเตอร์
(Six Basic Computer Operations)
1.  คอมพิวเตอร์สามารถรับข้อมูลได้
2. คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้
3. คอมพิวเตอร์สามารถคำนวณได้
4. คอมพิวเตอร์สามารถรับกำหนดค่าตัวแปรได้
5. คอมพิวเตอร์สามารถเปรียบเทียบและเลือกทำงานได้
6.คอมพิวเตอร์สามารถทำงานซ้ำๆกันได้
คอมพิวเตอร์สามารถรับขอมูลได้
· อุปกรณ์รับข้อมูล(อินพุต)  เช่น เทอร์มินัล คีบอร์ด หรือรับข้อมูลจากการอ่านไฟล์ข้อมูลบนสื่อจัดเก็บข้อมูลได้ เช่น การอ่านข้อมูลจากดิสก์ การอ่านข้อมูลจากเทป หรือการรับข้อมูลจากแป้นคีบอ
· ในการอ่านข้อมูลจากคำกริยา read และ get เพื่อใช้ในเขียนโซโด้โค้ด
o   Read ใช้เมื่อมีการรับหรืออ่านเรคอร์ดจากไฟล์ข้อมูล
o   Get ใช้สำหรับรับข้อมูลจากแป้นคีบอร์ด
ตัวอย่าง คอมพิวเตอร์ที่สามารถรับข้อมูลได้
read studentName
get systemDate
read number1, number2
get taxCode

คอมพิวเตอร์ที่สามารถรับข้อมูลได้
·  การแสดงผลลัพธ์จะใช้คำกริยา print, write, put output หรือ display
o   Printใช้สำหรับการส่งผลลัพธ์ออกทางเครื่องพิมพ์
o   Writeใช้สำหรับการส่งเอ้าพุตเพื่อเก็บบันทึกลงในไฟล์
o   put, outputหรือ displayจะใช้สำหรับการส่งเอ้าพุตออกไปแสดงผลทางหน้าจอ
ตัวอย่าง คอมพิวเตอร์ที่สามารถรับข้อมูลได้
print “Program Completed”
write customer record to master file
put name, address and postcode
output totalTax
display “End of data”

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

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

สัญลักษณ์ของผังงาน








หลักการเขียนผังงาน
  1. ใช้สัญลักษณ์ที่ถูกต้องตามความหมายที่เรากำหนดไว้
  2. มีการใช้ลุกศรเเสดงทิศทางการไหลจากข้อมุลจากบนลงล่าง จากซ้ายไปขวา
  3. คำอธิบายในFlowchartควรสั้น เข้าใจง่าย เเละได้ใจความ
  4. ทุกFlowchartจะต้องมีลูกศรเเสดงทิศทางการเข้าออก
  5. สำหรับสัญลักษณ์ที่อยู่ห่างๆมากๆไม่ควรโยงเส้นเชื่อมถึงกันเเต่ควรใช้สัญลักษณ์จุดเชื่อมต่อเเทน
  6. ควรมีการทดสอบความถูกต้องของการทำงานจากFlowchartก่อนจะไปเขียนโปรเเกรม
รูปเเบบผังงาน
  • เเบบเรียงลำดับ(Sequence)
  • เเบบเลือกการทำงาน(Selection)
  • เเบบทำซ้ำ(Repetition)
การเขียนเเบบเรียงลำดับ
  • เป็นผังงานที่เเสดงคำสั่งตามลำดับการทำงานจากบนลงล่าง เรียงลำดับก่อนหลัง ในการประมวลผลจะประมวลผลในทิศทางศรโดยไมมีการย้อนกลับหรือการตัดสินใจ
ตัวอย่างการเขียนผังงานเเบบมีระดับ
เขียนผังงานคำนวณหาพื้นที่ของสามเหลี่ยม
Algorithm คำนวณหาพื้นที่สามเหลี่ยม
  1. รับค่าตัวพิมพ์เก็บไว้ที่ตัวเเปรbase เเละheight
  2. คำนวณหาพื้นที่สามเหลี่ยม(area) จากสูตร area = 0.5 * base * height
  3. เเสดงผลของพื้นที่สามเหลี่ยม(area)
ตัวอย่างผังงานเเบบเรียงลำดับ
เขียนผังงานคำนวณหาพื้นที่สามเหลี่ยมAlgorithmคำนวณหาพื้นที่สามเหลี่ยม
get  base,   height
compute  area  =  0.5  *  base  *  height
display  area

ป้ายกำกับ:

1 ความคิดเห็น:

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

สมัครสมาชิก ส่งความคิดเห็น [Atom]

<< หน้าแรก