welcome

W e l c o m e

อัลกอริทึม(Algorithm)

อัลกอริทึมและการเขียนโปรแกรม (Algorithm and Programming)

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

หลักการเขียนอัลกอริทึม

1. เรียงลำดับความสำคัญของงานที่จะทำ
2. เขียนออกมาในลักษณะภาษาเขียนสามารถเข้าใจง่าย
3. มีความละเอียดของโครงสร้างพอสมควร

ตัวอย่างการเขียนอัลอกริทึม
ในรูปคำสั่งเทียม คือ มีลักษณะเป็นการเขียนคำสั่งต่างๆ ที่ทำให้ผู้เขียนโปรแกรมสามารถเข้าใจ
ง่าย ซึ่งคำสั่งที่ใช้จะเป็นคำพูดธรรมดา ไม่ยึดหลักไวยากรณ์ของภาษาคอมพิวเตอร์
ตัวอย่างที่ 1 การหาผลรวมของตัวเลข N จำนวน
Program : Sum
รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N
กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1 , เก็บผลรวมเริ่มต้น Sum = 0
Repeat
รับค่าข้อมูลเก็บไว้ที่ X

นำค่าข้อมูลที่อ่านได้บวกสะสมไว้ที่ตัวแปรเก็บผลรวม Sum
เพิ่มค่าตัวนับ I ขึ้นอีก 1
Until เป็นเลขตัวสุดท้ายจริง ( I > N )
แสดงตัวแปรที่เก็บผลรวมสะสม Sum
End Program
ตัวอย่างที่ 2 หาค่าสูงสุด และ ต่ำสุดจากตัวเลขทั้งหมด N จำนวน
Program : Max_Min
รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N
กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1
อ่านเลขตัวแรกเก็บไว้ที่ตัวแปร X
กำหนดให้ตัวแปร X เป็นทั้งค่ามากที่สุดและน้อยที่สุด เก็บไว้ที่ตัวแปร Max
และ Min
Repeat
อ่านเลขตัวถัดไป เก็บไว้ที่ X และเพิ่มค่าตัวนับ I อีก 1
If X > Max Then
เปลี่ยนค่าใน Max ให้เก็บค่า X แทน
Else
If X < Min Then
เปลี่ยนค่าใน Min ให้เก็บค่า X แทน
End if
End if
ให้ค่า Max = Max , ค่า Min = Min
Until I > n
แสดง ตัวเลขในตัวแปร Max และ Min
End Program


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

ประเภทของโฟลว์ชาร์ต
โดยทั่วไปแล้วผังงานทางคอมพิวเตอร์สามารถแบ่งออกเป็นประเภทใหญ่ ๆ ได้ 3 ประเภท ได้แก่
1. โฟลว์ชาร์ตระบบ ( System Flow Chart ) เป็นผังงานแสดงขั้นตอนการทำงานทั้งหมด
ในผังงานประเภทนี้จะเห็นระบบงานภายในของระบบหนึ่ง ๆ ที่เกี่ยวข้องกับงานทั้งหมด ทั้งวัสดุ
เครื่องจักร โปรแกรม และ บุคลากร
จุดมุ่งหมายของการใช้ผังงานระบบประเภทนี้เพื่อให้ทราบถึงความสัมพันธ์ของระบบงาน
ทั้งหมดรวมถึงภาพรวมของระบบตั้งแต่เริ่มต้นการทำงานจนถึงสุดท้าย ว่ามีขั้นตอนอะไรบ้างในการ
ทำงานและในการปฏิบัติงานในแต่ละขั้นตอนทำอย่างไร และจะใช้วิธีการอะไรบ้างในการทำงานในแต่
ละขั้นตอน ผังงานระบบประเภทนี้จะเหมาะสำหรับผู้บริหาร ผู้วิเคราะห์ระบบ และผู้เขียนโปรแกรม
ซึ่งจะทำให้ผู้ที่ดูผังงานระบบแบบนี้ได้ทราบถึงความสัมพันธ์คร่าว ๆ ของส่วนต่างๆ ของระบบงาน
ทั้งหมด แต่ผังงานระบบนี้ยังไม่สามารถนำไปใช้ในการเขียนโปรแกรมได้
2. โฟลว์ชาร์ตโปรแกรมโมดูล ( Modular Program Flow chart ) คือ ผังงานที่จัดทำขึ้น
เพื่อแบ่งระบบออกเป็นส่วน ๆ เพื่อให้ง่ายต่อความเข้าใจในแต่ละส่วนของระบบให้มากขึ้นกว่าผังงาน
ระบบ ซึ่งผังงานโปรแกรมโมดูลนี้จะแสดงเพียงส่วนหนึ่ง ๆ หรือ โมดูลนั้นๆ มีขั้นตอนและวิธีการใน
การทำงานอย่างไร แต่จะไม่มีรายละเอียดย่อยในโมดูลนั้น ๆ จึงยังไม่สามารถนำผังงานประเภทนี้ไป
เขียนโปรแกรมได้
3. โฟลว์ชาร์ตการเขียนโปรแกรม ( Programming Flow chart ) หรือที่นิยมเรียกกันสั้น ๆ
ว่า Flow chart ผังงานประเภทนี้เป็นผังงานซึ่งแสดงลำดับขั้นตอนการทำงานอย่างละเอียดในโมดูลนั้น
ๆ โดยจะดึงเอาจุดแต่ละจุดจากผังงานโปรแกรมโมดูลขึ้นมาเขียนเป็นผังงานประเภทนี้ โดยจะแสดง
รายละเอียดของขั้นตอนการทำงานอย่างชัดเจน ไม่ว่าจะเป็นขั้นตอนของการรับข้อมูลเข้า การคำนวณ
การประมวล-ผล และการแสดงผลลัพธ์ เป็นต้น

สัญลักษณ์โฟลว์ชาร์ต

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

หลักในการเขียนโฟลว์ชาร์ต
         ในการเขียนผังงานหรือโฟลว์ชาร์ต ต้องรู้จักเลือกใช้รูปภาพหรือสัญลักษณ์ที่เหมาะสม รวมถึง
อุปกรณ์ที่ช่วยในการเขียนผังงานที่เรียกว่า “ Flow Chart Template “ ซึ่งอุปกรณ์นี้จะช่วยให้การเขียน
ผังงานสะดวกและรวดเร็วยิ่งขึ้น ในการเขียนผังงานนี้จะเขียนตามขั้นตอนและวิธีการประมวลผลที่ได้ ทำการวิเคราะห์งานเอาไว้แล้ว ซึ่งต้องพิจารณาตามลำดับก่อนหลังของการทำงาน เพื่อจัดภาพของผังงานให้เป็นมาตรฐานง่ายต่อการเข้าใจ และช่วยให้การเขียนโปรแกรมจากผังงานมีประสิทธิภาพมากยิ่งขึ้น เพื่อให้การเขียนผังงานเป็นมาตรฐานเดียวกันจะใช้ลำดับในการเขียนผังงานดังนี้
1. การกำหนดค่าเริ่มต้น เป็นการกำหนดค่าเริ่มต้นให้กับตัวแปรต่างๆ ที่จำเป็นบางตัว ได้แก่
ตัวแปรที่ใช้เป็นตัวนับ หรือตัวแปรที่เป็นตัวคำนวณผลรวมต่างๆ
2. การรับข้อมูลเข้า เป็นการรับข้อมูลนำเข้ามาจากแหล่งข้อมูลต่างๆ เพื่อใช้เป็นส่วนหนึ่ง
ของการประมวลผล แล้วนำค่ามาเก็บไว้ในตัวแปรใด ๆ ที่กำหนดเอาไว้
3. การประมวลผล เป็นการประมวลผลตามที่ได้มีการกำหนด หรือเป็นการคำนวณต่างๆ ซึ่ง
จะต้องทำทีละลำดับขั้นตอนและแยกรูปแต่ละรูปออกจากกันให้ชัดเจนด้วย
4. การแสดงผลลัพธ์ เป็นการแสดงข้อมูลที่ได้จากการคำนวณหรือผลลัพธ์ที่ต้องการหรือค่า
จากตัวแปรต่างๆ ซึ่งการแสดงผลลัพธ์นี้มักจะกระทำหลังจากการประมวลผลหรือหลังจาก
การรับข้อมูลเข้ามาแล้ว
ข้อสังเกตในการเขียนโฟลว์ชาร์ต
1. โฟลว์ชาร์ตใด ๆ จะมีจุดเริ่มต้นและจุดสิ้นสุดเพียงอย่างละแห่งเดียวเท่านั้น
2. ทุกสัญลักษณ์ที่ใช้แทนขั้นตอนการทำงาน จะต้องมีทิศทางเข้าเพียง 1 แห่งและทิศทางออก
เพียง 1 แห่งเท่านั้น ยกเว้นสัญลักษณ์ของจุดเริ่มเริ่มต้น จุดสิ้นสุด จุดต่อ และ การ
ตัดสินใจ
3. ทิศทางของลำดับขั้นตอนการทำงานในโฟลว์ชาร์ตนิยมเขียนจากซ้ายไปขวาหรือจากบนลง
ล่าง
4. หลีกเลี่ยงการขีดเส้นโยงไปโยงมาในลักษณะที่ตัดกัน ถ้าจำเป็นต้องโยงเส้นดังกล่าวถึงกัน
ควรใช้เครื่องหมายต่อจุดเพื่อเชื่อมความสัมพันธ์แทน
5. สัญลักษณ์ต่าง ๆ นั้นจะเปลี่ยนรูปเป็นอย่างอื่นไม่ได้ ต้องเป็นไปตามมาตรฐานที่กำหนดไว้
แล้วเท่านั้น

6. ควรมีเครื่องหมายลูกศรกำกับทิศทางทางไหลให้กับแต่ละสัญลักษณ์ ด้วย
7. คำอธิบายการทำงานควรเขียนให้สั้นเข้าใจง่ายและเขียนในสัญลักษณ์ของโฟลว์ชาร์ต
ทั้งหมดหากมีคำอธิบายเพิ่มเติมให้เขียนไว้บนสัญลักษณ์ด้านขวา
8. ในการเขียนโฟลว์ชาร์ตควรเขียนให้เป็นระเบียบ เรียบร้อย และสะอาด


ตัวอย่างในการโฟลว์ชาร์ต


ตัวอย่าง เขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย


ตัวอย่างที่ เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตามอายุของผู้ทานดังนี้
อายุมากกว่า 10 ปี รับประทานครั้งละ ช้อนชา
อายุมากกว่า ปี ถึง 10 ปี รับประทานครั้งละ ช้อนชา
อายุมากกว่า ปี ถึง ปี รับประทานครั้งละ 1/2 ช้อนชา
แรกเกิดถึง ปี ห้ามรับประทาน

หลักการเขียนโปรแกรม
โปรแกรมคำสั่ง ( Programming Language ) โดยทั่วไปหมายถึงชุดของคำสั่งจำนวนหนึ่งที่ถูกจัดเป็นลำดับขั้นตอนของการปฏิบัติงานเพื่อที่จะได้ผลลัพธ์ที่ต้องการอย่างหนึ่ง คำสั่งเหล่านั้นถูกเขียนในรูปแบบตามข้อกำหนดหรือข้อบังคับของภาษาที่ใช้ในการใช้คอมพิวเตอร์ช่วยในการแก้ไขปัญหาต่างๆ โปรแกรมคำสั่งจะถูกเขียนและป้อนให้แก่คอมพิวเตอร์เพื่อบอกลำดับขั้นการทำงานให้คอมพิวเตอร์ปฏิบัติ ขั้นตอนที่เกี่ยวข้องกับการเขียนโปรแกรมได้แก่สิ่งต่อไปนี้
1. ต้องรู้ความต้องการของปัญหา หรือรู้ว่าปัญหาคืออะไร ในขั้นนี้มีส่วนที่เกี่ยวข้องที่สำคัญ
2 ประการคือ
- output ที่ต้องการคืออะไร และ มีรูปแบบอย่างไร
- input เกี่ยวข้องกับข้อมูล และ สิ่งกำหนดให้อะไรบ้าง
2. กำหนดวิธีการที่เหมาะสมเพื่อแก้ปัญหานั้น โดยอาจกำหนดในรูปแบบของ Algorithm
หรือ Flowchart
3. แปลง Algorithm หรือ Flowchart เป็นโปรแกรมภาษาที่เหมาะสมที่สามารถใช้กับ
คอมพิวเตอร์ที่ใช้งานอยู่
4. นำโปรแกรมที่เขียนแล้วไปทดลองกับคอมพิวเตอร์โดยใช้ข้อมูลสมมุติเพื่อตรวจสอบ
เงื่อนไขและความถูกต้อง
5. ใช้ข้อมูลจริงกับโปรแกรมที่ถูกต้องเพื่อผลิตผลลัพธ์ขั้นสุดท้าย
2.12 สรุปขั้นตอนของการวิเคราะห์งาน 5 ขั้นตอน ได้ดังนี้คือ
1. ระบุสิ่งที่โจทย์ต้องการ
2. ออกแบบหน้าจอผลลัพธ์
3. ระบุข้อมูลนำเข้า
4. กำหนดตัวแปรที่ใช้
5. ขั้นตอนการประมวลผล ( อัลกอริทึม ) หรือ โฟลว์ชาร์ต
หลังจากทำการวิเคราะห์งาน 5 ขั้นตอนเรียบร้อยแล้วค่อย ลงมือเขียนโปรแกรม











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

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