วันจันทร์ที่ 24 ตุลาคม พ.ศ. 2554

ระดับของแบบชนิดข้อมูล (hierarchy of data types) ที่นำมาใช้กับคอมพิวเตอร์

ระดับของแบบชนิดข้อมูล
     ระดับของแบบชนิดข้อมูล (hierarchy of data types) หมายถึง  ระดับของ    ข้อมูลที่จำแนกตามแบบชนิดข้อมูลที่นำมาใช้กับเครื่องคอมพิวเตอร์    ซึ่งนักคอมพิวเตอร์จำแนกข้อมูลออกเป็น 3 ระดับ   ดังแสดงในตารางที่  2.1

            ตารางที่ 2.1  ระดับของแบบชนิดข้อมูล


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


               2.2.1  ข้อมูลในระดับเครื่อง
                ข้อมูลในระดับเครื่อง (hardware data types) เป็นระดับของแบบชนิดข้อมูลที่บันทึกในหน่วยความจำ    ซึ่งข้อมูลจะถูกบันทึกด้วยรหัสแทนข้อมูลในภาษาเครื่อง   เช่น
                                 (1)  จำนวนเต็ม (integer)
                                 (2)  จำนวนจริง (real)
                                 (3)  อักขระ (character)
                   2.2.2  ข้อมูลในระดับโปรแกรม
                          ข้อมูลในระดับโปรแกรม (virtual data types)   เป็นระดับของแบบชนิดข้อมูลที่ดูเสมือนว่ามีจริง    แต่ความจริงเป็นการสร้างข้อมูลเทียมขึ้นมาใช้    โดยใช้ภาษาคอมพิวเตอร์ สร้าง (built - in) ขึ้นมาเพื่อให้ความสะดวกแก่ผู้ใช้    ทำให้สามารถใช้งานได้คล่องตัวขึ้น    ตัวอย่างข้อมูลเทียมในภาษาปาสคาลที่ใช้ตัวแปลเทอร์โบปาสคาลแบ่งออกเป็นชนิดต่าง ๆ ดังต่อไปนี้
   (1)  ข้อมูลแบบสเกลาร์ (scalar data types)  เป็นข้อมูลพื้นฐานในภาษาปาสคาล แบ่งออกเป็น 2 ประเภทดังนี้
 ข้อมูลแบบมาตรฐาน (standard data types)
-  จำนวนเต็ม (integer)
-  จำนวนจริง (real)
อักขระ (character)
สตริง (string)
บูลีน (boolean)
ข้อมูลแบบผู้ใช้กำหนด (user–defined data types)  เป็นแบบข้อมูลที่ผู้ใช้สามารถกำหนดเพิ่มขึ้นมาใช้เองได้   ซึ่งการกำหนดจะขึ้นอยู่กับภาษาที่ใช้   ตัวอย่างข้อมูลที่ผู้ใช้กำหนดในภาษาปาสคาลดังนี้
                                             Type       week_day  =  (mon, tue, wed, thu, fri);
                                                            traffic_light =  (red, yellow, green);
                                                            vowel         =  (‘A’, ‘E’, ‘I’, ‘O’, ‘U’)
                                                            score         =  0 . . 100;
                                                            up_letter    =  ‘A’ . . ‘Z’;           
(2)  ข้อมูลแบบโครงสร้าง (structure data types)  เป็นข้อมูลที่สร้างขึ้นจากข้อมูลแบบสเกลาร์   หรืออาจจะสร้างขึ้นมาจากข้อมูลแบบโครงสร้างด้วยกันเองก็ได้ (ยกเว้นไฟล์)   ดังนี้
                                           -  แถวลำดับ (array)   
                                           -  เซต (set)
                                           -  ระเบียนข้อมูล (record)
                                           -  แฟ้มข้อมูล (file)
(3)  ข้อมูลแบบพอยน์เตอร์ (pointer data types) 
2.2.3  ข้อมูลในระดับความคิด
    ข้อมูลในระดับความคิด (abstract  data  types)  เป็นระดับของแบบชนิดข้อมูลประเภทนามธรรมที่สร้างขึ้นจากจินตนาการของผู้ใช้   เป็นแบบชนิดข้อมูลที่ไม่มีรูปร่างหรือลักษณะให้เห็น    การอธิบายลักษณะของข้อมูลจะใช้สัญลักษณ์     ถ้าต้องการทำให้แบบชนิดข้อมูลที่เป็นนามธรรมเป็นข้อมูลที่เป็นรูปธรรม    ก็ต้องนำไปใช้จริงกับเครื่องคอมพิวเตอร์จริง (implement)    ข้อมูลในระดับความคิดแบ่งออกเป็น  2  ประเภท  คือ
 (1)  โครงสร้างข้อมูลแบบเชิงเส้น (linear  data structures)  เช่น
                                        -  ลิสต์ (list)
                                        -  สแตก (stack)
                                        -  คิว (queue)
                                        -  ดีคิว (deque)
 (2) โครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น (non-linear data structures)     เช่น
                                        -  ทรี (tree)
                                        -  กราฟ (graph)
           จากข้อมูลในแต่ละระดับที่กล่าวมา   ข้อมูลในระดับที่ 2 (ข้อมูลในระดับความคิด)   นักเขียนโปรแกรม (programmer) เป็นผู้เขียนโปรแกรมสร้างข้อมูลขึ้นมาเพื่อใช้เป็นตัวเชื่อมความสัมพันธ์ไปสู่ข้อมูลในระดับที่ 1 (ข้อมูลในระดับโปรแกรม)   ส่วนโปรแกรมแปลภาษาทำหน้าที่เป็นตัวเชื่อมความสัมพันธ์จากข้อมูลในระดับที่ 1 ไปสู่ข้อมูลในระดับที่ 0 (ข้อมูลในระดับเครื่อง)   ซึ่งเป็นระดับที่เครื่องบันทึกข้อมูลโดยใช้รหัสแทนข้อมูลจริง

โครงสร้างข้อมูล มีความหมายว่า

 โครงสร้างข้อมูล (File Structure) หมายถึง ลักษณะการจัดแบ่งพิกัดต่าง ๆ ของข้อมูลสำหรับแต่ละระเบียน (Record) ในแฟ้มข้อมูลเพื่อให้คอมพิวเตอร์สามารถรับไปประมวลผลได้ ประกอบด้วยส่วนต่าง ๆ ดังนี้
1. หน่วยข้อมูล (Data Item) หมายถึงส่วนที่เล็กที่สุดของข้อมูล เช่น ตัวเลข ตัวอักษร หรือ สัญลักษณ์พิเศษ จะยังไม่มีความหมายในตัวเอง เล่น เลข 9 อักษร ก เป็นต้น
2. ฟิลด์ข้อมูล (Data Field) หมายถึง การนำเอาหน่วยข้อมูลที่สำคัญและต้องการศึกษามาไว้ด้วยกัน เพื่อเปรียบเทียบกัน เช่น ชื่อ - สกุล คะแนนการสอบครั้งที่ 1 เงินเดือน ซึ่ง ชื่อ สกุล และเงินเดือน คือ 1 ฟิลด์
3. เรคอร์ดข้อมูล (Data Record) หมายถึง การนำฟิลด์หลายฟิลด์มารวมกลุ่มกัน เช่น นักศึกษาแต่ละคน จะมีข้อมูล ชื่อ สกุล วันเดือนปีเกิด อายุ เพศ ข้อมูลของนักศึกษาแต่ละคนคือ 1 เรคอร์ด
4. แฟ้มข้อมูล (Data File) เกิดจากการนำระเบียนหรือเรคอร์ด หลาย ๆ เรคอร์ดที่เกี่ยวข้องกันในด้านใดด้านหนึ่งมารวมกัน เช่น แฟ้มข้อมูลของนักเรียนห้องหนึ่งจำนวน 20 คน ทุกคนต่างก็มีข้อมูล คือ ชื่อ สกุล วันเดือนปีเกิด อายุ เพศ ศาสนา ข้อมูลของนักเรียนทั้งหมดคือ แฟ้มข้อมูล
5. ฐานข้อมูล (Data base) เกิดจากการนำแฟ้มหลาย ๆ แฟ้มข้อมูลเข้าด้วยกันโดยที่แฟ้มข้อมูลแต่ละแฟ้มจะมีความสัมพันธ์กันหรือไม่ก็ตาม ทำให้ข้อมูลไม่ซ้ำซ้อนกัน และสะดวกรวดเร็วในการใช้งาน

วันพฤหัสบดีที่ 20 ตุลาคม พ.ศ. 2554

เครื่องมีที่ใช้ในการออกเเบบ อัลกอริทึม

1 ภาษาซี
2 ภาษา จาวา
3 ภาษา VB

ความสำคัญของโครงสร้างข้อมูล

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

โครงสร้างข้อมูลที่ใช้ในปัจจุบัน

โครงสร้างข้อมูลทางกายภาพ โครงสร้างข้อมูลทางกายภาพ (physical data structures) เป็นโครงสร้างข้อมูลทั่วไปที่มีใช้ในภาษาคอมพิวเตอร์ ซึ่งแบ่งออกเป็นข้อมูล 2 ประเภทตามลักษณะข้อมูล
ข้อมูลโครงสร้าง (structured data types) เป็นข้อมูลที่มีโครงสร้างสลับซับซ้อน เกิดจากการนำโครงสร้างข้อมูลเบื้องต้นมาประกอบกันเป็นโครงสร้างข้อมูลที่หลากหลายขึ้น ข้อมูลที่ใช้ในเครื่องคอมพิวเตอร์ยุคแรกเป็นข้อมูลเบื้องต้นเท่านั้น แต่ในปัจจุบันภาษาคอมพิวเตอร์เกือบทุกภาษามีข้อมูลโครงสร้างด้วยแทบทั้งสิ้น ตัวอย่างข้อมูลโครงสร้าง เช่น
- แถวลำดับ (array)
- เซต (set)
- ระเบียนข้อมูล (record)
- แฟ้มข้อมูล (file)
โครงสร้างข้อมูลทางตรรกะ โครงสร้างข้อมูลทางตรรกะ (logical data structures) เป็น โครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้แก้ปัญหาในโปรแกรมที่สร้างขึ้น

โครงสร้างข้อมูลมีกี่เเบบ

1. โครงสร้างข้อมูลเบื้องต้น (Primitive Data Structure) เป็นชนิดข้อมูลที่ไม่มีโครงสร้างข้อมูลอื่นมาเป็นส่วนประกอย เมื่อต้องการเก็บค่าสามารถเรียกใช้งานได้ทันที บางครั้งเรียกว่าชนิดข้อมูลพื้นฐาน (Base Type) หรือสร้างมาให้ใช้ด้วยภาษานั้น ๆ
ส่วนโครงสร้างข้อมูลแบบอื่น ๆ จะมีโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ เมื่อต้องการใช้จะต้องกำหนดรูปแบบรายละเอียดโครงสร้างขึ้นมาก่อนเรียกว่าข้อมูลชนิดผู้ใช้กำหนด
(Uses-defined Type) ดังนี้
2. โครงสร้างข้อมูลแบบเรียบง่าย (Simple Data Structure) จะมีสมาชิกที่เป็นโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ มีรูปแบบง่าย ๆ ไม่ซับซ้อน สามารถทำความเข้าใจและสร้างขึ้นมาใช้งานได้ง่าย
3. โครงสร้างข้อมูลเชิงเส้น (Linear Data Structure) เป็นโครงสร้างที่ความซับซ้อนมากขึ้น ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงต่อกันเป็นแนวเส้น
4. โครงสร้างข้อมูลไม่เป็นเชิงเส้น (Nonlinear Data Structure) เป็นโครงสร้างที่มีความซับซ้อนเช่นกัน ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงกันในรูปแบบไบนารี่ ที่จัดเรียงสมาชิกมีการแยกออกเป็นสองทาง และแบบ N- อาร์เรย์ ที่จัดเรียงสมาชิกมีการแยกออกได้หลายทางหลายรูปแบบไม่แน่นอ
5. โครงสร้างการจัดการแฟ้มข้อมูล (File Organization) เป็นโครงสร้างสำหรับนำข้อมูลเก็บไว้ในหน่วยความจำสำรอง โดยข้อมูลจะอยู่ในรูปแบบโครงสร้างข้อมูลอื่น และมีวิธีการจัดการโดยการนำโครงสร้างข้อมูลอื่น ๆ มาช่วย
โครงสร้างข้อมูลต่าง ๆที่กล่าวมาอาจต้องมีการควบคุมการทำงานที่เกี่ยวข้องกับข้อมูลและส่วนที่มาเกี่ยวข้องให้เป็นไปตามที่ต้องการเรียกว่า โครงสร้างข้อมูลนามธรรม ลักษณะโครงสร้างจะแบ่งออกเป็น 2 ส่วน คือ ส่วนข้อมูลและส่วนปฏิบัติการ

อัลกอริทึม คือ อะไร

 คือ กระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบสามัญสำนึก หรือฮิวริสติก (heuristic)
          โดยทั่วไป ขั้นตอนวิธี จะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซ้ำ (iterate) หรือ เวียนเกิด (recursive) โดยใช้ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) ในขั้นตอนต่างๆ จนกระทั่งเสร็จสิ้นการทำงาน
          ในการทำงานอย่างเดียวกัน เราอาจจะเลือกขั้นตอนวิธีที่ต่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ที่ได้ในขั้นสุดท้ายจะออกมาเหมือนกันหรือไม่ก็ได้ และจะมีความแตกต่าง ที่จำนวนและชุดคำสั่งที่ใช้ต่างกันซึ่งส่งผลให้ เวลา (time) , และขนาดหน่วยความจำ (space) ที่ต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน
          การนำขั้นตอนวิธีไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทำงานเครื่องจักรกล, หรือแม้กระทั่งปัญหาในธรรมชาติ เช่น วิธีของสมองมนุษย์ในการคิดเลข หรือวิธีการขนอาหารของแมลง