Thursday, June 16, 2011

โครงสร้างข้อมูลและขั้นตอนวิธี

วิชา  โครงสร้าง( 3652103 ) ตอนเรียน ( A1 )
อ.ปรมัตถ์ปัญปรัชญ์  ต้องประสงค์
วันที่ 14 มิถุนายน พ.ศ. 2554
1.ความหมายของโครงสร้างข้อมูล
ข้อมูล ( Data ) คือข้อเท็จจริงต่างๆซึ่งซึ่งอาจจะเป็นตัวเลขหรือไม่เป็นก็ได้
โครงสร้าง ( structure ) คือ ความสำพันธ์ของกลุ่มสมาชิก
กระบวนการในการจัดเก็บข้อมูลในโครงสร้าง เช่น การเพิ่ม การแก้ไข การลดลดของกลุ่ม
ประเภทของโครงสร้างข้อมูลแบ่งออกเป็น 2 ประเภท คือ

1.โครงสร้างข้อมูลทางกายภาพ       2.โครงสร้างข้อมูลทางตรรกะ

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

การแทนที่ข้อมูในหน่วยความจำหลักในการเขียนโปรแกรมคอมพิวเตอร์จะมีการแทนที่ข้อมูลในหน่วยความจำหลักอยู่ 2 วิธีคือ1.การแทนที่ข้อมูลแบบสแตติก        2.การแทนที่แบบไดนามิก
ไว้จองเนื้อที่ ขนาดของเนื้อที่ยืดหยุ่น ได้ตามความต้องการของผู้ใช้ หน่วยความจำที่ไม่ได้ใช้สามารถส่งคืนแล้วนำกลับมาใช้ใหม่ได้อีก โครงสร้างข้อมูลที่มีการ 4 ขั้นตอนวิธี เป็นการแก้ปัญหาต่างๆ อย่างมีระบบ และลำดับตั้งแต่ต้นจนกระทั่งได้ผลลัพธ์สามารถเขียนได้หลายรูปแบบ การเลือกใช้ต้องเลือกใช้ขั้นตอนวิธีที่เหมาะสม กระชับ และรัดกุม
มาตรฐานรายวิชา
1.เลือกใช้โครงสร้างข้อมูลและขั้นตอนให้เหมาะสมกับงาน
2.ปฏิบัติการเขียนโปรแกรมตามที่ได้ออกแบบ
3.ทดสอบโปรแกรมโครงสร้างข้อมูล
พื้นฐานโครงสร้างข้อมูล
                คอมพิวเตอร์เป็นอุปกรณ์ที่สร้างขึ้นมาเพื่อใช้จัดการและเปลี่ยนแปลงข้อมูลข่าวสาร (Information) ดังนั้น จึงต้องมีการศึกษาถึงการควบคุมดูแลการทำงานของคอมพิวเตอร์ที่ยุ่งเกี่ยวกับข้อมูลข่าวสาร เมื่อมีการเปลี่ยนแปลงแก้ไขหรือเพื่ออำนวยประโยชน์ที่ต้องการการทำงานเพื่อนแก้ไขปัญหาต่าง ๆ ด้วยระบบคอมพิวเตอร์จะประกอบด้วยส่วนต่าง ๆ ทางด้านฮาร์ดแวร์ (Hardware) เช่น ซีพียู (CPU) หน่วยความจำ (Memory) อุปกรณ์รับส่งข้อมูล(Input/Output Device)และซอฟแวร์(Software)ที่นำมาใช้ควบคุมการทำงานของฮาร์ดแวร์ เพื่อแก้ไขปัญหานั้น ๆ ในการแก้ไขปัญหาจึงต้องมีกระบวนการพัฒนาซอฟต์แวร์ (Software Development) ที่เป็นขั้นตอนมาใช้ดังนี้
ขั้นตอนการพัฒนาซอฟแวร์
การแยกแยะและวิเคราะห์ปัญหา
                ในขั้นตอนแรกเป็นการแก้ไขปัญหาโดยการวิเคราะห์และแยกแยะ สิ่งแรกที่ต้องพิจารณา คือ เอาต์พุต ที่ต้องการและมีข้อมูลข่าวสารอะไรบ้างที่ทำที่ทำให้สามารถแก้ไขปัญหาได้หลังจากพิจารณาเอ้าท์พุตก็คือพิจารณาอินพุต และมีข้อมูลข่าวสารอะไรบ้างที่ทำให้สามารถแกไขปัญหาได้ หลังจากแยกแยะเอ้าท์พุตและอินพุต รวมถึงข้อมูลข่าวสารที่ต้องการเสร็จสิ้นลงก้เป็นการพัฒนาเขียนอัลกอรึทึมและโปรแกรม
การออกแบบระบบ
                เนื่องจากระบบคอมพิวเตอร์ไม่สามารถที่จะเข้าใจและแกไขปัญหาบางอย่างได้ จึงต้องมีวิธีการที่จะแก้ไขปัญหาโดยการออกแบบระบบ ซึ่งเป็นการวางแผนออกแบบที่แยกแยะออกเป็นปัญหาย่อย และพิจารณาสร้างชุดคำสั่งเพื่อแก้ไขปัญหาย่อยนั้น จากนั้นมารวมกันเป็นระบบที่สามารถแก้ไขปัญหาทั้งหมด มีลักษณะการวางแผนออกแบบจากบนลงล่าง (Top-down Design) ซึ่งประกอบด้วย 2 ส่วนหลัก ๆ คือ
                1. โครงสร้างข้อมูล (Data Strutcure) ใช้ควบคุมและจัดการกับข้อมูลของปัญหานั้น ๆ หรือที่เรียกว่าชนิดข้อมูลมีโครงสร้าง เรียกสั้น ๆ ว่าชนิดข้อมูล เช่น ชนิดข้อมูลอาร์เรย์ ชนิดข้อมูลสแตก และชนิดข้อมูลลิ้งค์ ลิสต์ การออกแบบระบบต้องเลือกใช้โครงสร้างข้อมูลอย่างเหมาะสมเพื่อจัดการกับข้อมูลที่ใช้ในระบบ
                2. การออกแบชุดคำสั่ง (Module Design) ในการแก้ไขปัญหาจะต้องมีกระบวนการทำงานเพื่อให้ได้มาซึ่งข้อมูลข่าวสารหรือเอ้าท์พุต ที่ต้องการโดยชุดคำสั่งเป็นส่วนประกอบของระบบ จึงต้องมีการออกแบบการทำงานที่เป็นชุดคำสั่งหรือโมดุลนั้นๆ และเรียกว่า อัลกอรึทึม ได้เป็น
โครงสร้างข้อมูล + อัลกอริทึม = โปรแกรม

คำถาม กระบวนการพัฒนาซอฟแวร์ประกอบด้วยขั้นตอนอะไรบ้าง