วันอาทิตย์ที่ 23 เมษายน พ.ศ. 2560

บทที่ 1 อัลกอริทึม



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

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



ตัวอย่าง
ผลที่ได้เหมือนกันคือ ไข่ต้ม
ผลลัพธ์อัลกอริธึม 1 สามารถทานได้เลย
ส่วนอัลกอริธึม 2 ต้องปอกก่อนทาน
สรุปคือ เราได้ผลลัพธ์ตามที่โจทย์ต้องการคือ ไข่ต้ม
การวิเคราะห์ปัญหา
กระบวนการทำงานของคอมพิวเตอร์

องค์ประกอบของงาน
Input , Process , Output
การพิจารณา
ขั้นตอนการทำงานเป็นการนำเข้า ป้อนเข้าระบบ ถือเป็น Input
ขั้นตอนเกี่ยวกับการกระทำ(กริยา) ถือเป็น Process
ขั้นตอนการนำข้อมูลออกจากระบบ แสดงผล ถือเป็น Output

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

อัลกอริธึมที่ดีจะประกอบด้วยคุณสมบัติต่างๆดังนี้
อัลกอริธึมที่ดีต้องมีความถูกต้อง (correctness)
อัลกอริธึมที่ดีต้องง่ายต่อการอ่าน(readability)
อัลกอริธึมที่ดีต้องสามารถปรับปรุงได้ง่ายต่ออนาคต(ease of modification)
อัลกอริธึมที่ดีสามารถนำกลับมาใช้ใหม่ได้(Reusability)
อัลกอริธึมที่ดีต้องมีประสิทธิภาพ (efficiency

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

1.ผังงาน (Flowchart) ซึ่งเป็นFlow Diagram ชนิดหนึ่งสำหรับใช้อธิบายขั้นตอนการทำงานของโปรแกรมในลักษณะรูปภาพ 

2.ชุดคำสั่งเทียม (Pseudocode) จะมีสัญลักษณ์คล้ายกับภาษาอังกฤษ ก้ำกึ่งระหว่างภาษาอังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบายลักษณะโครงสร้างข้อมูล และการทำงานของอัลกอริธึมที่เราเขียนขึ้น
ตัวอย่างผังงานและรหัสเทียม

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

  
     

     


   






    








   

















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

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