วันเสาร์ที่ 7 มีนาคม พ.ศ. 2552

Introduction

เนื้อหา

1. ความหมายของโครงสร้างข้อมูลเภทของโครงสร้างข้อมูล
3. การจัดสรรหน่วยความจำหลัก
4. ขั้นตอนวิธี (Algorithm)

วัตถุประสงค์

1. เพื่อให้มีความรู้ความเข้าใจในความหมายของโครงสร้างข้อมูล
2. เพื่อให้มีความรู้ในประเภทของโครงสร้างข้อมูล
3. เพื่อให้มีความรู้ความเข้าใจในการจัดสรรหน่วยความจำหลัก
4. เพื่อให้มีความรู้ความเข้าใจและสามารถเขียนขั้นตอนวิธีได้

1. ความหมายของโครงสร้างข้อมูล

ข้อมูล (Data) คือ ขอเท็จจริงต่างๆ ซึ่ง อาจจะเป็นตัวเลขหรือไม่เป็นตัวเลขก็ได้
โครงสราง (Structure) คือ ความสัมพันธ์ของสมาชิกในกลุ่ม

โครงสร้างข้อมูล (Data Structure)

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

2. ประเภทของโครงสร้างข้อมูล

โครงสร้างข้อมูลในภาษาคอมพิวเตอร์ทที่ใช้กัน
อยู่ในปัจจุบันแบ่งออกเป็น 2 ประเภท คือ

1.โครงสร้างข้อมูลทางกายภาพ (Physical Data Structure)
2.โครงสร้างข้อมูลทางตรรกะ (Logical Data Structure)

2.1 โครงสร้างข้อมูลทางกายภาพ

เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์ แบ่งออกเป็น 2 ประเภทตามลักษณะข้อมูล คือ

1. ข้อมูลเบื้องตน (Primitive Data Types) ได้แก่ จำนวนเต็ม (Integer) จำนวนจริง (Real) และตัวอักขระ (Character)
2. ข้อมูลโครงสร้าง (Structured Data Types) ได้แก่ แถวลำดับ(Array) ระเบียนข้อมูล(Record) และ
แฟ้มข้อมูล (File) เป็นต้น

2.2 โครงสร้างข้อมูลทางตรรกะ

เป็นโครงสร้างข้อมูลที่เกิดจากการจินตนาการของผู้ใช้ เพิ่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้นแบ่งเป็น 2 ประเภท คือ

1. โครงสร้างข้อมูลแบบเชิงเส้น (Linear Data Structures) ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน เช่น ลิสต์ (List) สแตก (Stack) คิว (Queue) สตริง (String) เป็นต้น
2. โครงสร้างข้อมูลแบบไม่เชิงเส้น (Non-Linear Data Structures)ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์
กับข้อมูลอันได้หลายตัว ไดแก่ ทรี (Tree) และกราฟ (Graph)

ในการเลือกใช้โครงสร้างข้อมูลแบบใดนั้นจะต้องคำนึงถึง

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

3. การแทนที่ข้อมูลในหน่วยความจำหลัก

ในการเขียนโปรแกรมคอมพิวเตอร์ จะมีการแทนที่ข้อมูลในหน่วยความจำหลักอยู่ 2วิธี คือ
1. การแทนที่ข้อมูลแบบ สแตก (Static Memory Representation)
2. การแทนที่ข้อมูลแบบไดนามิก(Dynamic Memory Representation)

3.1 การแทนทขอมลแบบสแตก

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

3.2 การแทนที่ข้อมูลแบบไดนามิก

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

4. ขั้นตอนวิธี (Algorithm)

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

ขั้นตอนวิธีที่ดีควรมีคุณสมบติดั้งนี้

1. มีความถูกต้อง
2. ใช้เวลาในการปฏิบัตงานน้อยที่สุด
3. สั้น กระชับ มีเฉพาะขั้นตอนทั้จำเป็นเท่านั้น
4. ใช้หน่วยความจำน้อยที่สุด
5. มีความยืดหยุ่นในการใช้งาน
6. ใช้เวลาในการพัฒนาน้อยที่สุด
7. ง่ายต่อการทำความเข้าใจ

ภาษาขั้นตอนวิธี (Algorithm Language) เป็นภาษา สำหรับเขียนขั้นตอนวิธีมีรูปแบบที่ สั้น กระชับและรัดกุม และมีข้อกำหนด ดั้งต่อไปนี้
1. ตัวแปรจะต้องเขียนแทนด้วยตัวอักษรหรือตัวอักษรผสมตัวเลข
2. การกำหนดค่าให้ตัวแปร ใช้เครื่องหมาย
3. นิพจน์ที่เป็นการคำนวณจะมีลำดับขั้นของการคำนวณ
ตามลำดับ คือวงเล็บ, ยกกำลัง , คูณหรือหาร, บวกหรือลบเครื่องหมายระดับความสำคัญเท่ากัน คำนวณจากซ้ายไปขวา

นิพจน์ที่เป็นตรรกศาสตร์จะใช้เครื่องหมายในการเปรียบเทียบ คือ

= เท่ากบ = ไม่เท่ากับ
< น้อยกว่า > มากกว่า ≤ น้อยกว่าหรือเท่ากับ ≥ มากกว่าหรือเท่ากับ

4. ข้อความไปยังขั้นตอนใช้รูปแบบ คือ goto เลขที่ขั้นตอน
5. การเลือกทำตามเงื่อนไข จะต้องตรวจสอบเงื่อนไขก่อน ทำงาน มีรูปแบบดั้งนี้

- แบบทางเลือกเดียว ใช้รูปแบบ คือ
if (condition) then statement 1

- แบบสองทางเลือก ใช้รูปแบบ คือ
if (condition) then statement 1 else statement 2

6. การทำงานแบบซ้ำ
- แบบทดสอบเงื่อนไขที่ต้นวงรอบ มีรูปแบบ ดั้งนี้
while (condition) do statement

- แบบทำซ้ำด้วยจำนวนครั้งของการทำซ้ำคงที่มี รูปแบบ
for a=b to n by c do statement

7. คำอธิบายเป็นข้อความที่อธิบายรายละเอียดของขั้นตอนการทำงานจะอยู่ในเครื่องหมาย / และ /

ภาษาธรรมชาติเป็นการเขียนขั้นตอนวิธีโดยใช้ภาษาเขียนจะบอกลำดับขั้นตอนการทำงานตั้งแต่ขั้นแรกจนถึงขั้นตอนสุดท้าย

EX. ภาษาขั้นตอนวิธี การหาผลบวกตัวเลขตั้งแต่ 1 -100

1. Sum 0
2. Num 1
3. Sum Sum+ Num
4. Num Num+1
5. If Num > 100 then print Sum else goto 3
6. Stop

ภาษาเขียน การหาผลบวกตัวเลขตั้งแต่ 1 -100

ขั้นตอนที่ 1 ให้ค่า Sum มีค่าเริ่มต้นเป็น 0
ขั้นตอนที่ 2 ให้ค่า Num มีค่าเริ่มต้นเป็น 1
ขั้นตอนที่ 3 คำนวณค่า Sum บวกค่า Num ผลลัพธ์ที่ได้เก็บใน Sum
ขั้นตอนที่ 4 คำนวณค่า Num บวก 1 ผลลัพธ์ที่ได้ เก็บใน Num
ขั้นตอนที่ 5 ตรวจสอบค่า Num ว่ามีค่าเกิน 100 หรอไม่ ถ้าไม่เกินกลับไปทำในขั้นตอนที่ 3 ถ้าเกินให้แสดงค่า Sum
ขั้นตอนที่ 6 หยุดทำงาน



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

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