22 พ.ย. 53
-ศึกษาโปรแกรม oracle
-test printer และลง Driver
ปัญหา
-ไม่มี Driver Printer
แก้ไข
-Download จาก Internet
23 พ.ย. 53
-ปฏิบัติงาน one stop service
-Share printer จำนวน 1 เครื่อง ชั้น 10
-ลง font ชั้น 10
-แก้ไขปัญหา เปิด folder ไมได้
-Scan Virus ชั้น 2 จำนวน 1 เครื่อง
ปัญหา
-เปิด Folder ไม่ได้ เนื่องจากติดโปรแกรมตรวจสอบ Virus
แก้ไข
-ลงโปรแกรมตรวจสอบ Virus
24 พ.ย. 53
-Check internet ชั้น 14
-User เข้า Internet ใช้งานไม่ได้ของพนักงาน ชั้น 4
-นำเอกสาร ขอ Username & Password ชั้น 17
ปัญหา
-Internet มีปัญหาเนื่องจากทาง network
-User เข้าไม่ได้เนื่องจากมีการ Log in เครื่องอื่นอยู่
แก้ไข
-แจ้งทาง network เพื่อแก้ไข
-แจ้ง network เพื่อหยุดการเข้ารหัสของ User นั้น
25 พ.ย. 53
-Print เอกสารเข้า ออก พนักงาน appsnet
-Check internet เข้า Web ไม่ได้
-นำ Mouse ไปเปลี่ยนชั้น 6 จำนวน 1 ตัว
-ลง Windows ใหม่ จำนวน 3 เครื่อง ของ ACER Notebook
ปัญหา
-CD Rom เสีย ทำให้ไม่สามารถลงได้
แก้ไข
-ถอด Haddisk จาก Notebook แล้วไปใส่อีกเครื่องที่ Cd Rom ใช้ได้
26 พ.ย. 53
-Scan Virus ติดตั้ง McAfee ใหม่ จำนวน 5 เครื่อง
-กู้ข้อมูล Flash Drive ที่ติด Virus
-ขนย้าย Computer จำนวน 2 เครื่อง ทำความสะอาด
ปัญหา
-การกู้ข้อมูลทำได้บางส่วนเพราะไฟล์ส่วนใหญ่เสียหาย
แก้ไข
-แจ้ง User ถึงปัญหาพร้อมกับให้ไฟล์ที่กู้มาได้
วันเสาร์ที่ 27 พฤศจิกายน พ.ศ. 2553
การฝึกงานการท่าเรือแห่งประเทศไทย(สัปดาห์ที่ 3)
15 พ.ย. 53
-set โปรแกรม Smart comm, Pc 3270 V.5.6
ลอง set oracle, Informix
-ลง font ชั้น8 จำนวน 3 เครื่อง
ปัญหา
-set โปรแกรม oracle กับ Informix ไม่ได้
แก้ไข
-สอบถามพี่ที่แผนก
16 พ.ย. 53
-ทดสอบ printer จำนวน 2 เครื่อง
-ติดตั้งโปรแกรม MS Visio
ปัญหา
-ลง MS Visio ไม่ได้ เนื่องจากไฟล์ไม่ครบ
แก้ไข
-ติดตั้งแผ่นใหม่
17 พ.ย. 53
-ทำการ set config printer OKI 391
-เก็บของทำความสะอาดโต๊ะในแผนก
-หา Driver EPSON CX5500 พร้อมทดลองเครื่อง
ปัญหา
-หา Driver EPSON CX5500 ไม่ได้เนื่องจาก
Internet มีปัญหา
-หมึกของ printer ไม่มี
แก้ไข
- เปลี่ยนหัวหมึกใหม่
- ให้ฝ่าย network ช่วย Download ให้
18 พ.ย. 53
-ทำการลง fonts ที่ห้องแผนกบัญชี จำนวน 5 เครื่อง
-พิมพ์งาน พร้อม print จำนวน 1 แผ่น
-Check printer ที่แผนกจำนวน 2 เครื่อง Epson EPL 6200
-เรียนรู้การประกอบเครื่องปริ้น และการตั้งค่าให้กับเครื่อง จำนวน 2 เครื่อง
ปัญหา
-printer ไม่ดูดกระดาษ
แก้ไข
-ทำการ check ว่า เครื่องมีกระดาษติดอยู่หรือไม่
19 พ.ย. 53
-Share printer จำนวน 1 เครื่อง
-ทำการลง font ชั้น 7 จำนวน 2 เครื่อง
-set โปรแกรม Smart comm, Pc 3270 V.5.6
ลอง set oracle, Informix
-ลง font ชั้น8 จำนวน 3 เครื่อง
ปัญหา
-set โปรแกรม oracle กับ Informix ไม่ได้
แก้ไข
-สอบถามพี่ที่แผนก
16 พ.ย. 53
-ทดสอบ printer จำนวน 2 เครื่อง
-ติดตั้งโปรแกรม MS Visio
ปัญหา
-ลง MS Visio ไม่ได้ เนื่องจากไฟล์ไม่ครบ
แก้ไข
-ติดตั้งแผ่นใหม่
17 พ.ย. 53
-ทำการ set config printer OKI 391
-เก็บของทำความสะอาดโต๊ะในแผนก
-หา Driver EPSON CX5500 พร้อมทดลองเครื่อง
ปัญหา
-หา Driver EPSON CX5500 ไม่ได้เนื่องจาก
Internet มีปัญหา
-หมึกของ printer ไม่มี
แก้ไข
- เปลี่ยนหัวหมึกใหม่
- ให้ฝ่าย network ช่วย Download ให้
18 พ.ย. 53
-ทำการลง fonts ที่ห้องแผนกบัญชี จำนวน 5 เครื่อง
-พิมพ์งาน พร้อม print จำนวน 1 แผ่น
-Check printer ที่แผนกจำนวน 2 เครื่อง Epson EPL 6200
-เรียนรู้การประกอบเครื่องปริ้น และการตั้งค่าให้กับเครื่อง จำนวน 2 เครื่อง
ปัญหา
-printer ไม่ดูดกระดาษ
แก้ไข
-ทำการ check ว่า เครื่องมีกระดาษติดอยู่หรือไม่
19 พ.ย. 53
-Share printer จำนวน 1 เครื่อง
-ทำการลง font ชั้น 7 จำนวน 2 เครื่อง
วันพุธที่ 17 พฤศจิกายน พ.ศ. 2553
การฝึกงานการท่าเรือแห่งประเทศไทย(สัปดาห์ที่ 2)
8 พ.ย. 53
- ติดตั้งโปรแกรม SAP , OA ในแผนก จำนวน 2 เครื่อง
- โทรตามงานที่ได้บริการไว้ว่ามีความเรียบร้อยหรือไม่ ทำการโทรติดตาม 15 คน
9 พ.ย. 53
- ทำการลง emeeting ที่ชั้น 18 จำนวน 2 เครื่อง
- ตรวจเช็ค Internet และ Wiless
- ทำการลง Font ที่ชั้น 18 จำนวน 5 เครื่อง
10 พ.ย. 53
- ลงโปรแกรม Nero 8.11 และทำการติดตั้ง Password ใหม่ จำนวน 1 เครื่อง ชั้น 14
- ทำการเช็ค Printer ว่าใช้งานได้ปกติหรือไม่จำนวน 3 เครื่อง
- ลง Font ชั้น 16 จำนวน 2 เครื่อง
ปัญหา
- ต้องทำการลงแผ่น Driver ก่อนจึงจะทำการเช็คได้
แก้ปัญหา
- โหลดเอาจากทางเว๊ปทางท่าเรือ
11 พ.ย. 2553
- ทำการลง OA ที่ชั้น 12 จำนวน 2 เครื่อง
- ลง Font ที่ชั้น 16 จำนวน5 เครื่อง
- ติดตามพี่ไปแชร์ Printer
ปัญหา
- ได้พบปัญหาจากคอมพิวเตอร์ว่ามีปัญหาเกี่ยวกับ windows
แก้ปัญหา
- ดำเนินการส่งเครื่องคอมลงมาที่แผนก แล้วทำการลง windows ใหม่
12 พ.ย. 53
- ทดสอบเครื่องปริ้น EPSON LQ 2180i
- เช็คเครื่อคอมพิวเตอร์ของผู้บริหาร ว่ามีโปรแกรม Adobe และโปรแกรมทั่วไปครบหรือไม่
- ทำการทำความสะอาดเครื่องปริ้น
- ติดตั้งโปรแกรม SAP , OA ในแผนก จำนวน 2 เครื่อง
- โทรตามงานที่ได้บริการไว้ว่ามีความเรียบร้อยหรือไม่ ทำการโทรติดตาม 15 คน
9 พ.ย. 53
- ทำการลง emeeting ที่ชั้น 18 จำนวน 2 เครื่อง
- ตรวจเช็ค Internet และ Wiless
- ทำการลง Font ที่ชั้น 18 จำนวน 5 เครื่อง
10 พ.ย. 53
- ลงโปรแกรม Nero 8.11 และทำการติดตั้ง Password ใหม่ จำนวน 1 เครื่อง ชั้น 14
- ทำการเช็ค Printer ว่าใช้งานได้ปกติหรือไม่จำนวน 3 เครื่อง
- ลง Font ชั้น 16 จำนวน 2 เครื่อง
ปัญหา
- ต้องทำการลงแผ่น Driver ก่อนจึงจะทำการเช็คได้
แก้ปัญหา
- โหลดเอาจากทางเว๊ปทางท่าเรือ
11 พ.ย. 2553
- ทำการลง OA ที่ชั้น 12 จำนวน 2 เครื่อง
- ลง Font ที่ชั้น 16 จำนวน5 เครื่อง
- ติดตามพี่ไปแชร์ Printer
ปัญหา
- ได้พบปัญหาจากคอมพิวเตอร์ว่ามีปัญหาเกี่ยวกับ windows
แก้ปัญหา
- ดำเนินการส่งเครื่องคอมลงมาที่แผนก แล้วทำการลง windows ใหม่
12 พ.ย. 53
- ทดสอบเครื่องปริ้น EPSON LQ 2180i
- เช็คเครื่อคอมพิวเตอร์ของผู้บริหาร ว่ามีโปรแกรม Adobe และโปรแกรมทั่วไปครบหรือไม่
- ทำการทำความสะอาดเครื่องปริ้น
วันอาทิตย์ที่ 7 พฤศจิกายน พ.ศ. 2553
การฝึกงานการท่าเรือแห่งประเทศไทย(สัปดาห์ที่1)
1 พ.ย.53
ปฐมนิเทศ - ชี้แจงเกี่ยวกับประวัติของการท่าเรือแห่งประเทศไทย
- ผู้ใหญ่ท่าการท่าเรือมาให้โอวาท
พี่มาส่งตัวที่แผนก สนับสนุนและการบริการผู้ใช้
- ออกดูงานที่ชั้น 4 เกี่ยวกับเรื่องการลงFont
- ไปลงFont ที่ชั้น 14 แผนกจำนวน 2 แผนก ได้บริการจำนวน 40 เครื่อง
ปัญหา
- เนื่องจากการลงFont ต้องทำการดาวโหลดจากเว๊ปไซต์ของการท่าเรือจึงจำเป็นต้องใช้อินเตอร์
เน็ทในการเชื่อมต่อ
แก้ไขปัญหา
- ทำการ Copy ลงเฟรชไดร์แล้วทำการลงตามปกติ
2 พ.ย. 53
- ลง Font ที่ชั้น 4 แผนกบัญชี จำนวน 10 เครื่อง
- ทำการลงDriver Printer CANON Pro9000
- จัดส่งเอกสาร
- ทำความสะอาดโต๊ะ จัดระเบียบห้อง
ปัญหา
- หาแผนกยาก และผู้ที่จะรับเอกสาร
แก้ไขปัญหา
- สอบถามพนักงาน
3 พ.ย. 53
- โทรศัพท์ตามงานที่พี่ช่างของแผนกได้ไปบริการไว้ว่าเรียบร้อยหรือไม่ ประมาณ 15 คน
- ได้รับการสอนเกี่ยวกับ Intranet และระบบ OA จากพี่ที่แผนก
ปัญหา
- การติดต่อไปแต่ละครั้งบางครั้งผู้ที่ใช้บริการของเราไม่อยู่ทำให้ไม่ทราบว่าเรียบร้อยหรือยัง
แก้ไขปัญหา
- ติดต่อกลับภายหลัง
4 พ.ย. 53
- ได้รับการสอนเกี่ยวกับการประกอบเครื่องคอมพิวเตอร์
- ได้รับการสอนเกี่ยวกับโปรแกรม SAP , Nod32 , การแก้ไขไฟล์ Hidden
ปัญหา
- การเลือกสายภายในของการประกอบคอมว่าสายไหนควรอยู่ส่วนไหน
- ต้องทำการลงNod32 ก่อน แม้ว่าเครื่องของผู้ใช้บริการจะมีโปรแกรมกำจัดไวรัสอื่่นๆแล้ว
การไขแก้ปัญหา
- พยายามจำให้แม่นและหากผิดพลาดก็ลองทดลองเปลี่ยนไปเรื่อยๆ
- ลงและลบออกในภายหลัง เพราะการท่าเรือไม่ได้ทำการซื้อลิขสิทธื์ของโปรแกรมนี้ไว้
5 พ.ย. 53
- จัดทำความสะอาดแผนก จำนวน 4 โต๊ะ
- เรียนรู้การลงโปรแกรม Windows XP และ Ghost
- วิธีการลง Mcafee
- โทรติดตามงานที่พี่ช่างได้ไปบริการไว้ ประมาณ 15 คน
ปัญหา
- การจัดโต๊ะบางครั้งไม่ทราบว่าเอกสารชิ้นใด จะใช้หรือไม่ใช้
แก้ไขปัญหา
- คัดแยกไว้แล้ว สอบถามพี่ ๆ ในภายหลัง
ปฐมนิเทศ - ชี้แจงเกี่ยวกับประวัติของการท่าเรือแห่งประเทศไทย
- ผู้ใหญ่ท่าการท่าเรือมาให้โอวาท
พี่มาส่งตัวที่แผนก สนับสนุนและการบริการผู้ใช้
- ออกดูงานที่ชั้น 4 เกี่ยวกับเรื่องการลงFont
- ไปลงFont ที่ชั้น 14 แผนกจำนวน 2 แผนก ได้บริการจำนวน 40 เครื่อง
ปัญหา
- เนื่องจากการลงFont ต้องทำการดาวโหลดจากเว๊ปไซต์ของการท่าเรือจึงจำเป็นต้องใช้อินเตอร์
เน็ทในการเชื่อมต่อ
แก้ไขปัญหา
- ทำการ Copy ลงเฟรชไดร์แล้วทำการลงตามปกติ
2 พ.ย. 53
- ลง Font ที่ชั้น 4 แผนกบัญชี จำนวน 10 เครื่อง
- ทำการลงDriver Printer CANON Pro9000
- จัดส่งเอกสาร
- ทำความสะอาดโต๊ะ จัดระเบียบห้อง
ปัญหา
- หาแผนกยาก และผู้ที่จะรับเอกสาร
แก้ไขปัญหา
- สอบถามพนักงาน
3 พ.ย. 53
- โทรศัพท์ตามงานที่พี่ช่างของแผนกได้ไปบริการไว้ว่าเรียบร้อยหรือไม่ ประมาณ 15 คน
- ได้รับการสอนเกี่ยวกับ Intranet และระบบ OA จากพี่ที่แผนก
ปัญหา
- การติดต่อไปแต่ละครั้งบางครั้งผู้ที่ใช้บริการของเราไม่อยู่ทำให้ไม่ทราบว่าเรียบร้อยหรือยัง
แก้ไขปัญหา
- ติดต่อกลับภายหลัง
4 พ.ย. 53
- ได้รับการสอนเกี่ยวกับการประกอบเครื่องคอมพิวเตอร์
- ได้รับการสอนเกี่ยวกับโปรแกรม SAP , Nod32 , การแก้ไขไฟล์ Hidden
ปัญหา
- การเลือกสายภายในของการประกอบคอมว่าสายไหนควรอยู่ส่วนไหน
- ต้องทำการลงNod32 ก่อน แม้ว่าเครื่องของผู้ใช้บริการจะมีโปรแกรมกำจัดไวรัสอื่่นๆแล้ว
การไขแก้ปัญหา
- พยายามจำให้แม่นและหากผิดพลาดก็ลองทดลองเปลี่ยนไปเรื่อยๆ
- ลงและลบออกในภายหลัง เพราะการท่าเรือไม่ได้ทำการซื้อลิขสิทธื์ของโปรแกรมนี้ไว้
5 พ.ย. 53
- จัดทำความสะอาดแผนก จำนวน 4 โต๊ะ
- เรียนรู้การลงโปรแกรม Windows XP และ Ghost
- วิธีการลง Mcafee
- โทรติดตามงานที่พี่ช่างได้ไปบริการไว้ ประมาณ 15 คน
ปัญหา
- การจัดโต๊ะบางครั้งไม่ทราบว่าเอกสารชิ้นใด จะใช้หรือไม่ใช้
แก้ไขปัญหา
- คัดแยกไว้แล้ว สอบถามพี่ ๆ ในภายหลัง
วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2552
ลูกแรดเตรียมพร้อมล่าเหยื่อ
สรุปสิ่งที่ได้จากการเรียน การเตรียมฝึกประสบกาณ์วิชาชีพบริหารธุรกิจ
จากทีได้เรียนเตรียมฝึกประสบการณ์วิชาชีพบริหารธุรกิจเเล้ว ดิฉันคิดว่าวิชานี้ได้ให้คุณค่าในหลายๆทางอย่างมากมาย ทั้งด้านคุณธรรมจริยธรรม
และวิชาการที่ว่าด้วยวิชาที่จะต้องนำไปใช้ประโยชน์เมื่อจบการศึกษาไป
ได้เรียนรู้ถึงเทคโนโลยีว่าในปัจจุบันล้ำหน้ามากเพียงใดเพื่อทำให้เราได้เป็นคนเตรียมพร้อมตลอดเวลาในด้านIT
ได้รู้ถึงหลักการตลาดและตลาดในปัจจุบันเพื่อเป็นแนวทางในอนาคตหากจะต้องบริหารงาน ทราบถึงประวิตความเป็นมาของภาษาไทยซึ่งเป็นภาษาแม่ของเราว่าเป็นมาอย่างไรและมีลักษณะอย่างไร
ได้ทำรายรับรายจ่าย เพื่อให้ทราบถึงจำนวนและปริมาณในการใช้เงินของเราพร้อมยังช่วยบริหารเงินไปในตัวและยังทำให้เราทราบถึงรายการจ่ายไปในแต่ละวัน
ได้ทราบถึงการคุมคนในเรื่องของการเป็นผู้คุมสอบว่าควรเตรียมพร้อมตลอดเวลาและเตรียมพร้อมสำหรับเหตุกาณ์ภายหน้าว่าถ้าเกิดปัญหาจะแก้ไขอย่างไร
ได้ฝึกตนเองถึงความเป็นระเบียบและตรงต่อเวลา
จากทีได้เรียนเตรียมฝึกประสบการณ์วิชาชีพบริหารธุรกิจเเล้ว ดิฉันคิดว่าวิชานี้ได้ให้คุณค่าในหลายๆทางอย่างมากมาย ทั้งด้านคุณธรรมจริยธรรม
และวิชาการที่ว่าด้วยวิชาที่จะต้องนำไปใช้ประโยชน์เมื่อจบการศึกษาไป
ได้เรียนรู้ถึงเทคโนโลยีว่าในปัจจุบันล้ำหน้ามากเพียงใดเพื่อทำให้เราได้เป็นคนเตรียมพร้อมตลอดเวลาในด้านIT
ได้รู้ถึงหลักการตลาดและตลาดในปัจจุบันเพื่อเป็นแนวทางในอนาคตหากจะต้องบริหารงาน ทราบถึงประวิตความเป็นมาของภาษาไทยซึ่งเป็นภาษาแม่ของเราว่าเป็นมาอย่างไรและมีลักษณะอย่างไร
ได้ทำรายรับรายจ่าย เพื่อให้ทราบถึงจำนวนและปริมาณในการใช้เงินของเราพร้อมยังช่วยบริหารเงินไปในตัวและยังทำให้เราทราบถึงรายการจ่ายไปในแต่ละวัน
ได้ทราบถึงการคุมคนในเรื่องของการเป็นผู้คุมสอบว่าควรเตรียมพร้อมตลอดเวลาและเตรียมพร้อมสำหรับเหตุกาณ์ภายหน้าว่าถ้าเกิดปัญหาจะแก้ไขอย่างไร
ได้ฝึกตนเองถึงความเป็นระเบียบและตรงต่อเวลา
DTS10-15-09-2552
สรุป Sorting
การเรียงลำดับ (sorting) เป็นการจัดให้เป็นระเบียบ มีแบบแผน ช่วยให้การค้นหาสิ่งของหรือข้อมูล สามารถทำได้รวดเร็วและมีประสิทธิภาพการเรียงลำดับอย่างมีประสิทธิภาพ
หลักเกณฑ์ในการพิจารณาเพื่อเลือกวิธีการเรียงลำดับที่ดีและเหมาะสมกับระบบงาน
1.เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
2.เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
3.จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่
วิธีการเรียงลำดับแบ่งออกเป็น 2 ประเภท
1.การเรียงลำดับภายใน (internal sorting) เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก
2.การเรียงลำดับแบบภายนอก (external sorting) เป็นการเรียนลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง เป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file)
การเรียงลำดับแบบเลือก (selection sort)
ข้อมูลจะอยู่ทีละตัว โดยทำการค้นหาข้อมูลในแต่ละรอบแบบเรียงลำดับ ถ้าเป็นการเรียงลำดับจากน้อยไปมาก
1.ในรอบแรกจะทำการค้นหาข้อมูลตัวที่มีค่าน้อยที่สุดมาเก็บไว้ที่ตำแหน่งที่ 1
2.ในรอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่ตำแหน่งที่สอง
3.ทำแบบนี้ไปเรื่อยๆ จนครบทุกค่า ในที่สุดจะได้ข้อมูลเรียงลำดับจากน้อยไปมากตามที่ต้องการ
การเรียงลำดับแบบฟอง (Bubble Sort)
เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่อยู่ติดกัน
1.ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับตำแหน่งที่อยู่กัน
2.ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้นำข้อมูลตัวที่มีค่าน้อยกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก ถ้าเป็นการเรียงลำดับจากมากไปน้อยให้นำข้อมูล ตัวที่มีค่ามากกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่าน้อยการจัดเรียงลำดับแบบฟองเป็นวิธีที่ไม่ซับซ้อนมาก เป็นวิธีการเรียงลำดับที่นิยมใช้กันมากเพราะมีรูปแบบที่เข้าใจง่าย
การเรียงลำดับ (sorting) เป็นการจัดให้เป็นระเบียบ มีแบบแผน ช่วยให้การค้นหาสิ่งของหรือข้อมูล สามารถทำได้รวดเร็วและมีประสิทธิภาพการเรียงลำดับอย่างมีประสิทธิภาพ
หลักเกณฑ์ในการพิจารณาเพื่อเลือกวิธีการเรียงลำดับที่ดีและเหมาะสมกับระบบงาน
1.เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
2.เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
3.จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่
วิธีการเรียงลำดับแบ่งออกเป็น 2 ประเภท
1.การเรียงลำดับภายใน (internal sorting) เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก
2.การเรียงลำดับแบบภายนอก (external sorting) เป็นการเรียนลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง เป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file)
การเรียงลำดับแบบเลือก (selection sort)
ข้อมูลจะอยู่ทีละตัว โดยทำการค้นหาข้อมูลในแต่ละรอบแบบเรียงลำดับ ถ้าเป็นการเรียงลำดับจากน้อยไปมาก
1.ในรอบแรกจะทำการค้นหาข้อมูลตัวที่มีค่าน้อยที่สุดมาเก็บไว้ที่ตำแหน่งที่ 1
2.ในรอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่ตำแหน่งที่สอง
3.ทำแบบนี้ไปเรื่อยๆ จนครบทุกค่า ในที่สุดจะได้ข้อมูลเรียงลำดับจากน้อยไปมากตามที่ต้องการ
การเรียงลำดับแบบฟอง (Bubble Sort)
เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่อยู่ติดกัน
1.ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับตำแหน่งที่อยู่กัน
2.ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้นำข้อมูลตัวที่มีค่าน้อยกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก ถ้าเป็นการเรียงลำดับจากมากไปน้อยให้นำข้อมูล ตัวที่มีค่ามากกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่าน้อยการจัดเรียงลำดับแบบฟองเป็นวิธีที่ไม่ซับซ้อนมาก เป็นวิธีการเรียงลำดับที่นิยมใช้กันมากเพราะมีรูปแบบที่เข้าใจง่าย
DTS09-08-09-2552
กราฟ Graph
เป็นโครงสร้างข้อมุลแบบไม่เชิงเส้น อีกชนิดหนี่ง กราฟเป็นดครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ไขปัญหาที่ค่อนข้างซับซ้อน เช่น การวางข่าย งานคอมพิวเตอร์ การวิเคราะห์เส้นทางวิกฤต และปัญหาเส้นทางที่สั้นที่สุด เป็นต้น
นิยามของกราฟกราฟ เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
1. โหนด (Nodes) หรือ เวอร์เทกซ์ (Vertexes)
2. เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edger)
การเชื่อมต่อ กราฟที่มีเอ็จเชื่อมต่อระหว่างโหนดสองโหนดถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่ากราฟแบบไม่มีทิศทาง (Undirected Garphs) และถ้ากราฟนั้นมีเอ็จที่มีลำดับความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า การฟแบบมีทิศทาง(Directed Deaphs) หรือมีลูกศร เป็นกราฟที่แสดงการเชื่อม ระหว่าง Vertex โดยแสดงทิศทางการเชื่อมต่อด้วย บางครั้งเรียกว่า ไดกราฟ (Digraph) ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถเขียนชื่อเอ็จกำกับไว้ก็ได้การเขียนกราฟแสดงโหนดและเส้นเชื่อมความสัมพันธ์ ระหว่างโหนดไม่มีรูปแบบที่ตายตัวการสากเส้นความสัมพันธ์เป็นเส้นลักษณะไหนก็ได้ที่สามารถแสดงความสัมพันธ์ระหว่างโหนดได้ถูกต้อง
การท่องไปในกราฟ (Graph traversal)
คือ การเข้าไปเยือนโหนดในกราฟ หลักการทำงาน คือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียวเทคนิคการท่องไปในกราฟมี 2 แบบ
1.การท่องแบบกว้าง (Breadth First Traversal) โดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นที่ละระดับ จนเยือนหมดทุกโหนดในกราฟ (แบบคิว)
2.การท่องแบบลึก (Depth First Traversal) คล้ายกับการท่องทีละระดับของทรี กำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตามแนววิถีจนไปสู่ปลายวิถี จากนั้นย้อนกลับ (backtrack) ตามแนววิถีเดิม จนสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่นๆ เพื่อเยือนโหนดอื่นๆ ต่อไปจนครบทุกโหนด (แบบสแตก)
เป็นโครงสร้างข้อมุลแบบไม่เชิงเส้น อีกชนิดหนี่ง กราฟเป็นดครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ไขปัญหาที่ค่อนข้างซับซ้อน เช่น การวางข่าย งานคอมพิวเตอร์ การวิเคราะห์เส้นทางวิกฤต และปัญหาเส้นทางที่สั้นที่สุด เป็นต้น
นิยามของกราฟกราฟ เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
1. โหนด (Nodes) หรือ เวอร์เทกซ์ (Vertexes)
2. เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edger)
การเชื่อมต่อ กราฟที่มีเอ็จเชื่อมต่อระหว่างโหนดสองโหนดถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่ากราฟแบบไม่มีทิศทาง (Undirected Garphs) และถ้ากราฟนั้นมีเอ็จที่มีลำดับความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า การฟแบบมีทิศทาง(Directed Deaphs) หรือมีลูกศร เป็นกราฟที่แสดงการเชื่อม ระหว่าง Vertex โดยแสดงทิศทางการเชื่อมต่อด้วย บางครั้งเรียกว่า ไดกราฟ (Digraph) ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถเขียนชื่อเอ็จกำกับไว้ก็ได้การเขียนกราฟแสดงโหนดและเส้นเชื่อมความสัมพันธ์ ระหว่างโหนดไม่มีรูปแบบที่ตายตัวการสากเส้นความสัมพันธ์เป็นเส้นลักษณะไหนก็ได้ที่สามารถแสดงความสัมพันธ์ระหว่างโหนดได้ถูกต้อง
การท่องไปในกราฟ (Graph traversal)
คือ การเข้าไปเยือนโหนดในกราฟ หลักการทำงาน คือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียวเทคนิคการท่องไปในกราฟมี 2 แบบ
1.การท่องแบบกว้าง (Breadth First Traversal) โดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นที่ละระดับ จนเยือนหมดทุกโหนดในกราฟ (แบบคิว)
2.การท่องแบบลึก (Depth First Traversal) คล้ายกับการท่องทีละระดับของทรี กำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตามแนววิถีจนไปสู่ปลายวิถี จากนั้นย้อนกลับ (backtrack) ตามแนววิถีเดิม จนสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่นๆ เพื่อเยือนโหนดอื่นๆ ต่อไปจนครบทุกโหนด (แบบสแตก)
DTS08-25-08-2552
Tree (ทรี)
ทรี หรือโครงสร้างข้อมูลแบบต้นไม้ ประกอบด้วยโหนด (node) ซึ่งเป็นส่วนที่เก็บข้อมูล ในทรีหนึ่งทรีจะประกอบไปด้วยรูทโหนด (root node) เพียงหนึ่งโหนด แล้วรูทโหนดสามารถแตกโหนดออกเป็นโหนดย่อยๆ ได้อีกหลายโหนดเรียกว่าโหนดลูก (Child node) เมื่อมีโหนดลูกแล้ว โหนดลูกก็ยังสามารถแสดงเป็นโหนดพ่อแม่ (Parent Node) โดยการแตกโหนดออกเป็นโหนดย่อยๆได้อีก โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings) โหนดที่ไม่มีโหนดลูกเรียกว่า โหนดใบ (Leave Node) เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดเรียกว่า กิ่ง (Beanch) คือ โหนดที่ไม่ใช่ Leaf Node
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสองโหนดใดๆ ในทรีต้องมีทางติดต่อกัน ทางเดียวกันนั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N -1เส้น การเขียนรูปแบบทรี อาจเขียนได้ 4 แบบ คือ1. แบบที่มีรากอยู่ด้านบน
2. แบบที่มีรากอยู่ด้านล่าง
3. แบบที่มีรากอยู่ด้านซ้าย4. แบบที่มีรากอยู่ด้านขวา
การท่องไปในไบนารีทรี (Traversing Binary Tree)
คือ การเข้าไปเยือนทุก ๆ โหนดในทรี วิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้ง วิธีการท่องไปนั้นมีด้วยกันหลายแบบ โหนดที่ถูกเยือนอาจเป็นโหนดแม่ (แทนด้วย N)ทรีย่อยทางซ้าย (แทนด้วย L) หรือทรีย่อยทางขวา (แทนด้วย R)
วิธีการท่องเข้าไปในทรีมี 6 วิธี
คือ NLR LNR LRN NRL RNL และ RLN แต่วิธีการท่องเข้าไปในทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรก คือ NLRLNR LRN ซึ่งลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ (Recursive)
ขั้นตอนวิธีดึงโหนดออกอาจแยกพิจารณาได้ 3 กรณีดังต่อไปนี้
1. กรณีโหนดที่จะดึงออกเป็นโหนดใบ
2. กรณีโหนดที่ดึงออกมีเฉพาะทรีย่อยทางซ้ายหรือทรีย่อยทางขวาเพียงด้านใดด้านหนึ่ง
3. กรณีโหนดที่ดึงออกมีทั้งทรีย่อยทางซ้ายและทรีย่อยทางขวา - ถ้าโหนดที่มาแทนที่เป็นโหนดที่เลือกจากทรีย่อยทางซ้าย ต้องเลือกโหนดที่มีค่ามากที่สุดในทรีย่อยทางซ้ายนั้น - ถ้าโหนดที่จะมาแทนที่เป็นโหนดที่เลือกมาจากทรีย่อยทางขวา ต้องเลือกโหนดที่มีค่าน้อยที่สุดในทรีย่อยทางขวานั้น
ทรี หรือโครงสร้างข้อมูลแบบต้นไม้ ประกอบด้วยโหนด (node) ซึ่งเป็นส่วนที่เก็บข้อมูล ในทรีหนึ่งทรีจะประกอบไปด้วยรูทโหนด (root node) เพียงหนึ่งโหนด แล้วรูทโหนดสามารถแตกโหนดออกเป็นโหนดย่อยๆ ได้อีกหลายโหนดเรียกว่าโหนดลูก (Child node) เมื่อมีโหนดลูกแล้ว โหนดลูกก็ยังสามารถแสดงเป็นโหนดพ่อแม่ (Parent Node) โดยการแตกโหนดออกเป็นโหนดย่อยๆได้อีก โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings) โหนดที่ไม่มีโหนดลูกเรียกว่า โหนดใบ (Leave Node) เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดเรียกว่า กิ่ง (Beanch) คือ โหนดที่ไม่ใช่ Leaf Node
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสองโหนดใดๆ ในทรีต้องมีทางติดต่อกัน ทางเดียวกันนั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N -1เส้น การเขียนรูปแบบทรี อาจเขียนได้ 4 แบบ คือ1. แบบที่มีรากอยู่ด้านบน
2. แบบที่มีรากอยู่ด้านล่าง
3. แบบที่มีรากอยู่ด้านซ้าย4. แบบที่มีรากอยู่ด้านขวา
การท่องไปในไบนารีทรี (Traversing Binary Tree)
คือ การเข้าไปเยือนทุก ๆ โหนดในทรี วิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้ง วิธีการท่องไปนั้นมีด้วยกันหลายแบบ โหนดที่ถูกเยือนอาจเป็นโหนดแม่ (แทนด้วย N)ทรีย่อยทางซ้าย (แทนด้วย L) หรือทรีย่อยทางขวา (แทนด้วย R)
วิธีการท่องเข้าไปในทรีมี 6 วิธี
คือ NLR LNR LRN NRL RNL และ RLN แต่วิธีการท่องเข้าไปในทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรก คือ NLRLNR LRN ซึ่งลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ (Recursive)
ขั้นตอนวิธีดึงโหนดออกอาจแยกพิจารณาได้ 3 กรณีดังต่อไปนี้
1. กรณีโหนดที่จะดึงออกเป็นโหนดใบ
2. กรณีโหนดที่ดึงออกมีเฉพาะทรีย่อยทางซ้ายหรือทรีย่อยทางขวาเพียงด้านใดด้านหนึ่ง
3. กรณีโหนดที่ดึงออกมีทั้งทรีย่อยทางซ้ายและทรีย่อยทางขวา - ถ้าโหนดที่มาแทนที่เป็นโหนดที่เลือกจากทรีย่อยทางซ้าย ต้องเลือกโหนดที่มีค่ามากที่สุดในทรีย่อยทางซ้ายนั้น - ถ้าโหนดที่จะมาแทนที่เป็นโหนดที่เลือกมาจากทรีย่อยทางขวา ต้องเลือกโหนดที่มีค่าน้อยที่สุดในทรีย่อยทางขวานั้น
DTS07-11-08-2552
เรื่อง Queue
คิว Queue เป็นโครงสร้างข้อมูลแบบเชิงเส้นซึ่งการเพิ่มข้อมุลจะกระทำที่ปลายข้างหนึ่งซึ่งเรียกว่าส่วนท้ายหรือเรียร์ (rear)และการนำข้อมูลออกจะกระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้าลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO (First In First Out)
การทำงานของคิวการใส่สมาชิกใหม่ลงในคิวเรียกว่า Enqueue ซึ่งมีรูปแบบคือenqueue หมายถึง การใส่ข้อมูล newElementลงไปที่ส่วนเรียร์ของคิวการนำสมาชิกออกจากคิว เรียกว่า Dequeue หมายถึง การนำข้อมูลออกจากส่วนหน้าของคิวและให้ ข้อมุลนั้นกับ elementการนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะเรียกว่า Queue Rear แต่จะไม่ทำการเพิ่มข้อมูลเข้าไปในคิวการแทนที่ข้อมูลของคิวการแทนที่ข้อมูลของคิวสามารถทำได้ 2 วิธี
คือ
1.การแทนที่ข้อมุลของสแตกแบบลิงค์ลิสต์จะประกอบไปด้วย 2ส่วน
คือ1.Head Nodeจะประกอบไปด้วย 3 ส่วนคือพอยเตอร์จำนวน 2 ตัว คือ Front และ rear กับจำนวนสมาชิกในคิว
2.Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไปการดำเนินการเกี่ยวกับคิวการดำเนินการเกี่ยวกับคิว ได้แก่1.Create Queue คือ จัดสรรหน่อยความจำให้แก่ Head Node และให้ค่า ponter ทั้ง 2 ตัวมีค่าเป็น nullและจำนวนสมาชิกเป็0
2.Enqueue คือ การเพื่มข้อมูลเข้าไปในคิว
3.Dequeue คือ การนำข้อมุลออกจากคิว
4.Queue Front คือ เป็นการนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง
5.Queue Rear คือ เป็นการนำข้อมุลที่อยุ่ส่วนท้ายของคิวมาแสดง
6.Empty Queue คือ เป็นการตรวจสอบว่าคิวว่างหรือไม่
7.Full Queue คือ เป็นการตรวจสอบว่าคิวเต็มหรือไม่
8.Queue Count คือ เป็นการนับจำนวนสมาชิกที่อยู่ในคิว
9.Destroy Queue คือ เป็นการลบข้อมุลทั้งหมดที่อยู่ในคิวการนำข้อมูลเข้าสู่คิว จะไม่สามารถนำเข้าในขณะที่คิวเต็ม หรือไม่มีที่ว่าง ถ้าพยายามนำเข้าจะให้เกิดความผิดพลาดที่เรียกว่า Overflowการนำข้อมุลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างเปล่าได้ ถ้าพยายามจะทำให้เกิดความผิดพลาดที่เรียกว่า underflow
คิว Queue เป็นโครงสร้างข้อมูลแบบเชิงเส้นซึ่งการเพิ่มข้อมุลจะกระทำที่ปลายข้างหนึ่งซึ่งเรียกว่าส่วนท้ายหรือเรียร์ (rear)และการนำข้อมูลออกจะกระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้าลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO (First In First Out)
การทำงานของคิวการใส่สมาชิกใหม่ลงในคิวเรียกว่า Enqueue ซึ่งมีรูปแบบคือenqueue หมายถึง การใส่ข้อมูล newElementลงไปที่ส่วนเรียร์ของคิวการนำสมาชิกออกจากคิว เรียกว่า Dequeue หมายถึง การนำข้อมูลออกจากส่วนหน้าของคิวและให้ ข้อมุลนั้นกับ elementการนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะเรียกว่า Queue Rear แต่จะไม่ทำการเพิ่มข้อมูลเข้าไปในคิวการแทนที่ข้อมูลของคิวการแทนที่ข้อมูลของคิวสามารถทำได้ 2 วิธี
คือ
1.การแทนที่ข้อมุลของสแตกแบบลิงค์ลิสต์จะประกอบไปด้วย 2ส่วน
คือ1.Head Nodeจะประกอบไปด้วย 3 ส่วนคือพอยเตอร์จำนวน 2 ตัว คือ Front และ rear กับจำนวนสมาชิกในคิว
2.Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไปการดำเนินการเกี่ยวกับคิวการดำเนินการเกี่ยวกับคิว ได้แก่1.Create Queue คือ จัดสรรหน่อยความจำให้แก่ Head Node และให้ค่า ponter ทั้ง 2 ตัวมีค่าเป็น nullและจำนวนสมาชิกเป็0
2.Enqueue คือ การเพื่มข้อมูลเข้าไปในคิว
3.Dequeue คือ การนำข้อมุลออกจากคิว
4.Queue Front คือ เป็นการนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง
5.Queue Rear คือ เป็นการนำข้อมุลที่อยุ่ส่วนท้ายของคิวมาแสดง
6.Empty Queue คือ เป็นการตรวจสอบว่าคิวว่างหรือไม่
7.Full Queue คือ เป็นการตรวจสอบว่าคิวเต็มหรือไม่
8.Queue Count คือ เป็นการนับจำนวนสมาชิกที่อยู่ในคิว
9.Destroy Queue คือ เป็นการลบข้อมุลทั้งหมดที่อยู่ในคิวการนำข้อมูลเข้าสู่คิว จะไม่สามารถนำเข้าในขณะที่คิวเต็ม หรือไม่มีที่ว่าง ถ้าพยายามนำเข้าจะให้เกิดความผิดพลาดที่เรียกว่า Overflowการนำข้อมุลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างเปล่าได้ ถ้าพยายามจะทำให้เกิดความผิดพลาดที่เรียกว่า underflow
DTS06-04-08-2552
(Stack)
โครงสร้างสแตก (stack structure)สแตก เป็นโครงสร้างข้อมูลอีกรูปแบบหนึ่งที่มีลักษณะของการจัดเก็บข้อมูลที่สามารถจัดเก็บได้แบบทั้งเรคอร์ด อาร์เรย์ หรือการจัดเก็บในลักษณะลิงค์ลิสต์ แต่โดยรูปแบบของการทำงานนั้นจะเป็นเหมือนการจัดเก็บหรือบันทึกสมาชิกในลักษณะของการพักไว้ สแตก เป็นโครงสร้างที่ถูกออกแบบมาให้มีลักษณะเป็นเชิงเส้น (linear list) สามารถที่จะทำการลบหรือเพิ่มจำนวนสมาชิกเข้ามาในโครงสร้างได้Last In First Out : LIFO หมายถึงข้อมูลที่เข้ามาในลิสต์เป็นลำดับสุดท้าย จะถูกนำออกจากลิสต์เป็นอันดับแรก ตัวอย่างได้แก่การนำชั้นของปิ่นโตเข้าและออกจากเถาปิ่นโต
พื้นฐานการดำเนินการกับสแตก
1.Push หรือการนำเข้าข้อมูล เป็นการดำเนินการในลักษณะของการเพิ่มข้อมูลในสแตกกรณีที่ไม่มีข้อมูลใดอยู่ก็จะ push เข้าไปตำแหน่งแรก ซึ่งถือว่าเป็นตำแหน่ง top แต่ถ้าหากนำข้อมูล push เข้ามาอีกก็จะดำเนินการจัดลงในตำแหน่งต่อจาก top และปรับค่า top มาอยู่ที่ตำแหน่งข้อมูลที่ push เข้ามาใหม่ จะต้องระวังปัญหา stack over flow คือไม่มีพื้นที่ว่างสำหรับการเพิ่มข้อมูลเข้าไปใน สแตก หรือ สแตก เต็ม
2.Pop หรือการดึงข้อมูลออก การดึงออกข้อมูล คือการนำเอาข้อมูลออกจากสแตก ซึ่งการดำเนินการก็จะต้องดำเนินการในตำแหน่ง top กรณีของการ pop ก็จะต้องตวรจสอบด้วยว่า หากไม่มีข้อมูลภายในสแตกแล้วยังมีการเรียก pop ข้อมูลอีกจะทำให้เกิดข้อผิพลาดที่เรียกว่า stack under flow
3. Top หรือตำแหน่งบนสุด ตำแหน่งบนสุดนั้นใช้ top เป็นตัวกำกับ ซึ่งบอกให้ทราบว่าหากต้องการ pop หรือ push ข้อมูลก็สามารถทำได้ ณ ตำแหน่งนี้ โดยลักษณะการดำเนินการของ top เป็นเพียงสิ่งที่บอกตำแหน่งของข้อมูลท่อยู่บนสุดเท่านั้น หากมีการ push ข้อมูลตำแหน่งของ top ก็จะชี้ไปค่าตำแหน่งสูงสุดใหม่ หรือ หากมีการ pop ข้อมูลออกไป top ก็ไม่ใช่ตัวลบค่า แต่จะเป็นการคืนค่าและลดตำแหน่งลงมา ซึ่งtop จะเกิดความผิดพลาดกรณีเดียวกันกับ pop คือ Underflow เมื่อ สแตกนั้นเกิดการว่าง
เครื่องหมายดำเนินการ (operand) ได้แก่เครื่องหมาย + - * ^
ตัวถูกดำเนินการ ได้แก่ สัญลักษณ์แทนค่าตัวเลข เช่น A B C D ….. หรือตัวแปรอื่นรูปแบบนิพจน์ของ infix จะเป็นลักษณะของนิพจน์ที่ใช้งานกันทั่วไป เช่น a + b, A*B ซึ่งมีการนำเครื่องหมายการดำเนินการไว้ตรงกลาง นิพจน์ posfix เป็นนิพจน์ที่มีการจัดรูปแบบของการคำนวณโดยเอาเครื่องหมายดำเนินการไว้หลังตัวถูกดำเนินการเพื่อให้ระบบอ่านตัวถูกดำเนินการก่อนแล้วจึงทราบวิธีการคำนวณ เช่น AB + และนิพจน์ prefix เป็นนิพจน์ที่นำเครื่องหมายสำหรับการดำเนินการ วางไว้ด้านหน้าก่อนตัวถูกดำเนินการ เช่น + ABPrefix : +ABInfix : A+BPosfix : AB+
วิธีการเปลี่ยน Infix เป็น Postfix•Algorithm
การเปลี่ยน Infix เป็น Postfix• ให้ EXP เป็นสมการคณิตศาสตร์ที่เป็น Infix และ Stack เป็น stack ใด ๆ NEXP เป็นสมการที่เป็น Postfix•
1. ใส่ “(“ เข้าไปใน Stack•
2. อ่าน EXP จากซ้ายไปขวา
2.1 ถ้าพบตัวถูกดำเนินการ(ตัวเลข) ให้ใส่เข้าไปใน NEXP2.2 ถ้าพบ “(“ ให้ push ใส่ stack2.3 ถ้าพบตัวดำเนินการ(เครื่องหมาย) ให้ทำดังนี้ - ให้ pop ตัวดำเนินการ ทุกตัวที่มีลำดับความสำคัญกว่าตัวดำเนินการที่พบใน 2.3 ออกมาใส่ใน NEXP ให้หมด - นำตัวดำเนินการที่พบใน2.3 push เข้าใน stack แทนที่2.4 ถ้าพบ “)” ให้ทำดังนี้ • - ให้ push ตัวดำเนินการ ทุกตัวมาใส่ไว้ใน NEXP ให้หมดจนพบ “(“ • - push “(“ ทิ้ง
3. จบการทำงาน
โครงสร้างสแตก (stack structure)สแตก เป็นโครงสร้างข้อมูลอีกรูปแบบหนึ่งที่มีลักษณะของการจัดเก็บข้อมูลที่สามารถจัดเก็บได้แบบทั้งเรคอร์ด อาร์เรย์ หรือการจัดเก็บในลักษณะลิงค์ลิสต์ แต่โดยรูปแบบของการทำงานนั้นจะเป็นเหมือนการจัดเก็บหรือบันทึกสมาชิกในลักษณะของการพักไว้ สแตก เป็นโครงสร้างที่ถูกออกแบบมาให้มีลักษณะเป็นเชิงเส้น (linear list) สามารถที่จะทำการลบหรือเพิ่มจำนวนสมาชิกเข้ามาในโครงสร้างได้Last In First Out : LIFO หมายถึงข้อมูลที่เข้ามาในลิสต์เป็นลำดับสุดท้าย จะถูกนำออกจากลิสต์เป็นอันดับแรก ตัวอย่างได้แก่การนำชั้นของปิ่นโตเข้าและออกจากเถาปิ่นโต
พื้นฐานการดำเนินการกับสแตก
1.Push หรือการนำเข้าข้อมูล เป็นการดำเนินการในลักษณะของการเพิ่มข้อมูลในสแตกกรณีที่ไม่มีข้อมูลใดอยู่ก็จะ push เข้าไปตำแหน่งแรก ซึ่งถือว่าเป็นตำแหน่ง top แต่ถ้าหากนำข้อมูล push เข้ามาอีกก็จะดำเนินการจัดลงในตำแหน่งต่อจาก top และปรับค่า top มาอยู่ที่ตำแหน่งข้อมูลที่ push เข้ามาใหม่ จะต้องระวังปัญหา stack over flow คือไม่มีพื้นที่ว่างสำหรับการเพิ่มข้อมูลเข้าไปใน สแตก หรือ สแตก เต็ม
2.Pop หรือการดึงข้อมูลออก การดึงออกข้อมูล คือการนำเอาข้อมูลออกจากสแตก ซึ่งการดำเนินการก็จะต้องดำเนินการในตำแหน่ง top กรณีของการ pop ก็จะต้องตวรจสอบด้วยว่า หากไม่มีข้อมูลภายในสแตกแล้วยังมีการเรียก pop ข้อมูลอีกจะทำให้เกิดข้อผิพลาดที่เรียกว่า stack under flow
3. Top หรือตำแหน่งบนสุด ตำแหน่งบนสุดนั้นใช้ top เป็นตัวกำกับ ซึ่งบอกให้ทราบว่าหากต้องการ pop หรือ push ข้อมูลก็สามารถทำได้ ณ ตำแหน่งนี้ โดยลักษณะการดำเนินการของ top เป็นเพียงสิ่งที่บอกตำแหน่งของข้อมูลท่อยู่บนสุดเท่านั้น หากมีการ push ข้อมูลตำแหน่งของ top ก็จะชี้ไปค่าตำแหน่งสูงสุดใหม่ หรือ หากมีการ pop ข้อมูลออกไป top ก็ไม่ใช่ตัวลบค่า แต่จะเป็นการคืนค่าและลดตำแหน่งลงมา ซึ่งtop จะเกิดความผิดพลาดกรณีเดียวกันกับ pop คือ Underflow เมื่อ สแตกนั้นเกิดการว่าง
เครื่องหมายดำเนินการ (operand) ได้แก่เครื่องหมาย + - * ^
ตัวถูกดำเนินการ ได้แก่ สัญลักษณ์แทนค่าตัวเลข เช่น A B C D ….. หรือตัวแปรอื่นรูปแบบนิพจน์ของ infix จะเป็นลักษณะของนิพจน์ที่ใช้งานกันทั่วไป เช่น a + b, A*B ซึ่งมีการนำเครื่องหมายการดำเนินการไว้ตรงกลาง นิพจน์ posfix เป็นนิพจน์ที่มีการจัดรูปแบบของการคำนวณโดยเอาเครื่องหมายดำเนินการไว้หลังตัวถูกดำเนินการเพื่อให้ระบบอ่านตัวถูกดำเนินการก่อนแล้วจึงทราบวิธีการคำนวณ เช่น AB + และนิพจน์ prefix เป็นนิพจน์ที่นำเครื่องหมายสำหรับการดำเนินการ วางไว้ด้านหน้าก่อนตัวถูกดำเนินการ เช่น + ABPrefix : +ABInfix : A+BPosfix : AB+
วิธีการเปลี่ยน Infix เป็น Postfix•Algorithm
การเปลี่ยน Infix เป็น Postfix• ให้ EXP เป็นสมการคณิตศาสตร์ที่เป็น Infix และ Stack เป็น stack ใด ๆ NEXP เป็นสมการที่เป็น Postfix•
1. ใส่ “(“ เข้าไปใน Stack•
2. อ่าน EXP จากซ้ายไปขวา
2.1 ถ้าพบตัวถูกดำเนินการ(ตัวเลข) ให้ใส่เข้าไปใน NEXP2.2 ถ้าพบ “(“ ให้ push ใส่ stack2.3 ถ้าพบตัวดำเนินการ(เครื่องหมาย) ให้ทำดังนี้ - ให้ pop ตัวดำเนินการ ทุกตัวที่มีลำดับความสำคัญกว่าตัวดำเนินการที่พบใน 2.3 ออกมาใส่ใน NEXP ให้หมด - นำตัวดำเนินการที่พบใน2.3 push เข้าใน stack แทนที่2.4 ถ้าพบ “)” ให้ทำดังนี้ • - ให้ push ตัวดำเนินการ ทุกตัวมาใส่ไว้ใน NEXP ให้หมดจนพบ “(“ • - push “(“ ทิ้ง
3. จบการทำงาน
วันเสาร์ที่ 1 สิงหาคม พ.ศ. 2552
การบ้าน #include <iostream.h>
โปรแกรมแสดงสูตรคูณ โดยการป้อนค่า
#include <iostream.h>
int main() {
int x;
cout<<"===***Multiplication table***==="<<'\n'<<'\n';
cout<<"Enter your number(2-25):";
cin>>x;
for(int i=1;i<=12;i++)
cout<<x<<" X "<<i<<"\t= "<<(x*i)<<endl;
return 0;
}
DTS05-21/07/2009
Linked List
ลิงค์ลิสต์เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกันไปตามลำดับ ซึ่งในลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด (node) ในหนึ่งโหนดจะประกอบด้วยส่วนของข้อมูลที่ต้องการจัดเก็บ เรียกว่าส่วน Info และส่วนที่เป็นพอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link) หรือชี้ไปยังโหนดอื่นๆที่อยู่ในลิสต์ หากไม่มีโหนดที่อยู่ถัดไป ส่วนที่เป็นพอยน์เตอร์หรือ Link จะเก็บค่า NULL หรือ NILL ใช้สัญลักษณ์ ^
โครงสร้างข้อมูลแบบลิงค์ลิสต์โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2ประเภทคือ
1.Head Structrue
จะประกอบไปด้วย3ส่วน ได้แก่ จำนวนโหนดในลิสต์(count) พอยเตอร์ที่ชี้ไปยังโหนดที่เข้าถึง(pos) คือ รายการเก็บข้อมูลปัจจุบันที่มีการท่องเข้าไปในลิสต์แทนด้วยpos และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูลแรกของลิสต์(head)
2.Data Node Structure
จะประกอบไปด้วยข้อมูล(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป ประกอบไปด้วย 2 ฟิลด์ ฟิลด์แรกเก็บในส่วนของข็อมูล ฟิลด์ที่ 2 เก็บส่วนของการเชื่อโยง ก็จะใช้พอยเตอร์เป็นตัวเชื่อมไปยังโหนดอื่นๆกระบวนงานและฟังชั่นที่ใช้ดำเนินงานพื้นฐาน1. กระบวนงาน Create Listหน้าที่ สร้างลิสต์ว่างผลลัพธ์ ลิสต์ว่าง2. กระบวนงาน Insert Note การแทรกโหนดคือการเพิ่มสมาชิกใหม่ลงในรายการ เพิ่มข้อมูลลงไปในลิสต์บริเวณตำแหน่งที่ต้องการกระบวนนำเข้า ลิสต์ ข้อมูล และตำแหน่งผลลัพธ์ ลิสต์ที่มีการเปลี่ยนแปลง
3. กระบวนงาน Delete Noteหน้าที่ ลบสมาชิกในลิสต์บริเวณตำแหน่งที่ต้องการ ในการลบโหนดโดยจะทำการลบทั้งโหนดและข็อมูลที่ไมต้องการออกไป หลักง่ายๆ ด้วยการเปลี่ยนลิงค์ของโหนดก่อนหน้าโหนดที่ต้องการลบให้ชี้ไปยังลิงค์ของโหนดที่ต้องการลบ และคืนค่าของโหนดที่ต้องการลบแก่หน่วยความจำไปข้อมูลนำเข้า ข้อมูลและตำแหน่งผลลัพธ์ ลิสต์ที่มีการเปลี่ยนแปลง
4. กระบวนงาน Search Iist ในการ Search ต้องมี Conditionหน้าที่ ค้นหาข้อมูลในลิสต์ที่ต้องการข้อมูลนำเข้าผลลัพธ์ ค่าจริงถ้าพบข้อมูล ค่าเท็จถ้าไม่พบข้อมูล
5. กระบวนงาน Traverseหน้าที่ ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูลนำเข้าลิสต์ผลลัพธ์ ขึ้นกับการประมวลผล เช่น เปลี่ยนแปลงค่าใน node , รวมฟิลด์ในลิสต์,คำนวนค่าเฉลี่ยของฟิลด์ เป็นต้น
6. กระบวนงาน Retrieve Nodeการแสดงขอมูลในโหนดหน้าที่ หาตำแหน่งของข้อมูลจากลิสต์ข้อมูลนำข้าลิสต์ผลลัพธ์ ตำแหน่งข้อมูลที่อยู่ในลิสต์ หากต้องการนำข้อมูลในโหนดขึ้นมาแสดง เพียงทราบถึงตำแหน่งของลิสต์ที่จัดเก็บข้อมูล ก็สามารถนำข้อมูลนั้นๆ มาแสดงได้
7. ฟังก์ชั่น Emptylistหน้าที่ ทดสอบว่าลิสต์ว่างข้อมูลนำเข้าลิสต์ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่าง Count= ถ้าไม่เท่า Count# ตรวจสอบโดยการกำหนดวนลูบค่าหากตรวจสอบว่าไม่มีข้อมูลกำหนดค่าเป็นจริง
8. ฟังก์ชั่น Fulllist การตรวจสอบลิสต์เต็มหน้าที่ ทดสอบว่าลิสต์เต็มหรือไม่ข้อมูลนำเข้าลิสต์ ตรวจสอบว่าลิสต์นั้นเต็มหรือไม่ มีพื้นที่ว่างในหน่วยความจำสำหรับลิสต์หรือไม่ผลลัพธ์ เป็นจริง ถ้าหน่วยความจำเต็ม เป็นเท็จ ถ้าสามารถมีโหนดอื่น
9. ฟังก์ชั่น list countการนับจำนวนลิสต์ทำใหทราบว่าในโครงสร้างของลิสต์ปัจจุบันมีจำนวนลิสต์อยู่เท่าใดและสามารถตรวจสอบได้จากหนดต้นลิสต์ เนื่องจากเก็บค่าไว้ที่ countหน้าที่ นับจำนวนข้อมูลที่อยู่ในลิสต์ผลลัพธ์ จำนวนข้อมูลที่อยู่ในลิสต์
10. กระบวนงาน Destroy listการยกเลิกลิสต์ลบแล้วก็ต้องคืนค่าให้หน่วยความจำเพื่อไปใช้งานอื่นต่อไปหน้าที่ ทำลายลิสต์ข้อมูลนำเข้า ลิสต์ผลลัพธ์ ไม่มีลิสต์
วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2552
DTS04-14/07/2009
set and string
เช็ตตัวดำเนินการของเซ็ต (Set operators)ประกอบด้วย
- set intersection
- set union
- set difference (ความแตกต่าง)
เช่น ต้องการจัดตารางเรียน 4 วิชา ได้แก่ Math, English,Physics และ Chemistry ให้กับผู้ลงทะเบียนเรียน=== ผู้ลงทะเบียนไม่สามารถลงทะเบียน 4 วิชาพร้อมกันได้ เพราะมาทำการ intersection กัน และมีเซ็ตใดที่ทำการ intersect กันแล้ว มีข้อมูลสมาชิกในเซ็ตที่ซ้ำกันอยู่ จะไม่สามารถจัดให้วิชาดังกล่าวอยู่ในวันเวลาเดียวกันได้
สตริง String)
หรือ สตริงของอักขระ เป็นข้อมูลที่ประกอบด้วยตัวอักษร ตัวเลข หรือเครื่องหมายสตริงในภาษา C ก็คือ อาร์เรย์ของตัวอักษร ที่มีข้อมูลชนิดตัวอักษรเรียงกันไป แต่จะต้องมีจุดสิ้นสุดด้วย โดยจะใช้ตัวอักษรวางหรือ Null Character เป็นจุดสิ้นสุดของสตริง ซึ่งจะต่างจากอาร์เรย์ปกติที่ไม่ต้องมีจุดสิ้นสุดของอาร์เรย์
การเก็บข้อมูลของสตริง
การเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูลตัวอักษรโดยเก็บเรียงกันไป แบะส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริง ซึ่งจุสิ้นสุดของสตริงจะใช้ Null Characterหรือ ‘\0’
การกำหนดตัวแปรสตริง
ในการกำหนดตัวแปรของสตริง อาศัยหลักการของอะเรย์ เพราะ สตริงก็คืออะเรย์ของอักขระที่ปิดท้ายด้วย null character (\0) และมีฟังก์ชันพิเศษสำหรับทำงานกับสตริงโดยเฉพาะ
ฟังก์ชัน getch() ใช้รับตัวอักขระ 1 ตัวจากแป้นพิมพ์ แต่ขณะรับไม่แสดงทางจอภาพ
ฟังก์ชัน gets() เป็นฟังก์ชันใช้สำหรับรับข้อมูลชนิด Stringหรือข้อความซึ่งป้อนทางแป้นพิมพ์รับข้อมูลที่เป็นข้อความจากเป็นฟังก์ชันที่ใช้ในการแป้นพิมพ์เข้ามาเก็บไว้ในตัวแปรแบบอาเรย์
การใช้ฟังก์ชัน gets(); จะต้องมีการประกาศตัวแปรแบบอาเรย์ และกำหนดจำนวนตัวอักษร ที่ต้องการป้อน โดยคอมพิวเตอร์จะจองพื้นที่ไว้ตามจำนวนตัวอักษร แต่จะป้อนได้น้อยกว่าที่จองไว้ 1 ตัว เพื่อให้ตัวแปรเก็บ 0 อีก 1
อะเรย์ของสตริง
ถ้าหากมีสตริงจำนวนมาก ก็ควรจะทำให้เป็นอะเรย์ของสตริง เพื่อที่จะเขียนโปรแกรมได้สะดวก การสร้างอะเรย์ของสตริง สามารถสร้างได้ทั้งแบบที่ให้ค่าเริ่มต้นและแบบที่กำหนดเป็นตัวแปรอะเรย์ของสตริงที่ยาวไม่เท่ากัน
ฟังก์ชันอื่นที่ใช้กับสตริง
การใช้สตริงนั้น จะมีฟังก์ชันในการกระทำกับสตริงอีกมาก จะช่วยให้การทำงานนั้นสะดวดมากยิ่งขึ้น ซึ่งการใช้ฟังก์ชันต่าง ๆ ที่เกี่ยวกับสตริงนั้นจะต้องนำเข้าไลบรารีไฟล์ strintg.h ด้วยเสมอ ซึ่งมีฟังก์ชัน
ต่าง ๆ ดังนี้
คัดลอกสตริง ( strcpy, strncpy )
ในภาษา C จะมีฟังก์ชันในการคะดลอกสตริงหนึ่งไปใส่ในอีกสตริงหนึ่ง อยู่ 2 ฟังก์ชัน คือ strcpy และ strncpy ทั้ง 2 ฟังก์ชันนี้ จะเป็นฟังก์ชันในการคัดลอกสตริง แต่ในฟังก์ชันที่ 2 สามารถกำหนดความยาวของสตริงที่ต้องการจะคัดลอกได้ strcpy ฟังก์ชัน strcpy เป็นฟังก์ชันในการคัดลอกสตริงพื้นฐาน การทำงาน คือ จะทำการคัดลอกสตริงต้นทั้งหมด ซึ่งจะรวมไปถึง Null Character ด้วย ไปใส่ในสตริงปลายทาง
โดยการประกาศฟังก์ชัน strcpy เป็นดังนี้char*strcpy (char *to_string, const char *from_string);ตัวอย่างด้านล่างนี้เป็นตัวอย่างการใช้ฟังก์ชัน strcpy strcpy(s1,s2);
เช็ตตัวดำเนินการของเซ็ต (Set operators)ประกอบด้วย
- set intersection
- set union
- set difference (ความแตกต่าง)
เช่น ต้องการจัดตารางเรียน 4 วิชา ได้แก่ Math, English,Physics และ Chemistry ให้กับผู้ลงทะเบียนเรียน=== ผู้ลงทะเบียนไม่สามารถลงทะเบียน 4 วิชาพร้อมกันได้ เพราะมาทำการ intersection กัน และมีเซ็ตใดที่ทำการ intersect กันแล้ว มีข้อมูลสมาชิกในเซ็ตที่ซ้ำกันอยู่ จะไม่สามารถจัดให้วิชาดังกล่าวอยู่ในวันเวลาเดียวกันได้
สตริง String)
หรือ สตริงของอักขระ เป็นข้อมูลที่ประกอบด้วยตัวอักษร ตัวเลข หรือเครื่องหมายสตริงในภาษา C ก็คือ อาร์เรย์ของตัวอักษร ที่มีข้อมูลชนิดตัวอักษรเรียงกันไป แต่จะต้องมีจุดสิ้นสุดด้วย โดยจะใช้ตัวอักษรวางหรือ Null Character เป็นจุดสิ้นสุดของสตริง ซึ่งจะต่างจากอาร์เรย์ปกติที่ไม่ต้องมีจุดสิ้นสุดของอาร์เรย์
การเก็บข้อมูลของสตริง
การเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูลตัวอักษรโดยเก็บเรียงกันไป แบะส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริง ซึ่งจุสิ้นสุดของสตริงจะใช้ Null Characterหรือ ‘\0’
การกำหนดตัวแปรสตริง
ในการกำหนดตัวแปรของสตริง อาศัยหลักการของอะเรย์ เพราะ สตริงก็คืออะเรย์ของอักขระที่ปิดท้ายด้วย null character (\0) และมีฟังก์ชันพิเศษสำหรับทำงานกับสตริงโดยเฉพาะ
ฟังก์ชัน getch() ใช้รับตัวอักขระ 1 ตัวจากแป้นพิมพ์ แต่ขณะรับไม่แสดงทางจอภาพ
ฟังก์ชัน gets() เป็นฟังก์ชันใช้สำหรับรับข้อมูลชนิด Stringหรือข้อความซึ่งป้อนทางแป้นพิมพ์รับข้อมูลที่เป็นข้อความจากเป็นฟังก์ชันที่ใช้ในการแป้นพิมพ์เข้ามาเก็บไว้ในตัวแปรแบบอาเรย์
การใช้ฟังก์ชัน gets(); จะต้องมีการประกาศตัวแปรแบบอาเรย์ และกำหนดจำนวนตัวอักษร ที่ต้องการป้อน โดยคอมพิวเตอร์จะจองพื้นที่ไว้ตามจำนวนตัวอักษร แต่จะป้อนได้น้อยกว่าที่จองไว้ 1 ตัว เพื่อให้ตัวแปรเก็บ 0 อีก 1
อะเรย์ของสตริง
ถ้าหากมีสตริงจำนวนมาก ก็ควรจะทำให้เป็นอะเรย์ของสตริง เพื่อที่จะเขียนโปรแกรมได้สะดวก การสร้างอะเรย์ของสตริง สามารถสร้างได้ทั้งแบบที่ให้ค่าเริ่มต้นและแบบที่กำหนดเป็นตัวแปรอะเรย์ของสตริงที่ยาวไม่เท่ากัน
ฟังก์ชันอื่นที่ใช้กับสตริง
การใช้สตริงนั้น จะมีฟังก์ชันในการกระทำกับสตริงอีกมาก จะช่วยให้การทำงานนั้นสะดวดมากยิ่งขึ้น ซึ่งการใช้ฟังก์ชันต่าง ๆ ที่เกี่ยวกับสตริงนั้นจะต้องนำเข้าไลบรารีไฟล์ strintg.h ด้วยเสมอ ซึ่งมีฟังก์ชัน
ต่าง ๆ ดังนี้
คัดลอกสตริง ( strcpy, strncpy )
ในภาษา C จะมีฟังก์ชันในการคะดลอกสตริงหนึ่งไปใส่ในอีกสตริงหนึ่ง อยู่ 2 ฟังก์ชัน คือ strcpy และ strncpy ทั้ง 2 ฟังก์ชันนี้ จะเป็นฟังก์ชันในการคัดลอกสตริง แต่ในฟังก์ชันที่ 2 สามารถกำหนดความยาวของสตริงที่ต้องการจะคัดลอกได้ strcpy ฟังก์ชัน strcpy เป็นฟังก์ชันในการคัดลอกสตริงพื้นฐาน การทำงาน คือ จะทำการคัดลอกสตริงต้นทั้งหมด ซึ่งจะรวมไปถึง Null Character ด้วย ไปใส่ในสตริงปลายทาง
โดยการประกาศฟังก์ชัน strcpy เป็นดังนี้char*strcpy (char *to_string, const char *from_string);ตัวอย่างด้านล่างนี้เป็นตัวอย่างการใช้ฟังก์ชัน strcpy strcpy(s1,s2);
วันพุธที่ 1 กรกฎาคม พ.ศ. 2552
DTS03-30-06-2552
อาร์เรย์ เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า Linear List ซึ่งมีจำนวนรายการ ( Element) จำกัด และข้อมูลที่เก็บอยู่ในอาร์เรย์แต่ละช่องจะต้องเป็นข้อมูลชนิดเดียวกัน อยู่ภายใต้ตัวแปรชื่อเดียวกัน โดยขนาดของแต่ละช่องต้องเท่ากันหมด การอ้างถึงข้อมูลในแต่ละช่องของของอาร์เรย์ ต้องอาศัยตัวห้อย Subscript เช่น กำหนดให้ Array A มีขนาด 100 รายการ A[5] จะหมายถึง ค่าของอาร์เรย์ตำแหน่งที่ 5 ในอาร์เรย์นั้น ซึ่ง Subscript ก็คือ เลข 5 จำนวน Subscript ที่ต้องการใช้เวลาเรียกใช้ค่าใน Array เรียกว่า มิติ ไดเมนชั่น ( Dimention) ของ Array นั้น
การสร้าง Array ขึ้นมาใช้งานนั้น ต้องคำนึงถึง
1. ชื่อของ Array
2. ขนาดของ Array แต่ละช่อง และมิติของ Array
3. ค่าสูงสุด ( Upper Bound) และค่าต่ำสุด (Lower Bound) ในแต่ละมิติ
ข้อมูลที่จัดเก็บแสดงผลออกมาแบบเรียงลำดับ (inorder)
สามารถดึงสมาชิกลำดับที่ i ใด ๆ ออกมาได้
สามารถแทนที่สมาชิกลำดับที่ i ใด ๆ ได้
สามารถเพิ่มสมาชิกใหม่เข้าไปในแถวลำดับได้
สามารถลบสมาชิกที่มีอยู่ออกจากแถวลำดับได้
ข้อกำหนดของการกำหนดค่าต่ำสุดและค่าสูงสุดของ subscript
คือค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound)
ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound)
ค่า subscript ที่ใช้อ้างอิงถึงสมาชิก จะต้องมีค่ามากกว่า หรือเท่ากับขอบเขตล่าง และน้อยกว่าหรือเท่ากับขอบเขตบน
Arrays หลายมิติ การจัดเก็บอะเรย์ในหน่วยความจำหลัก จะใช้เนื้อที่ขนาดเท่ากัน เพื่อเก็บสมาชิกแต่ละตัว โดยเนื้อที่จะเรียงต่อเนื่องกัน การจัดเก็บอะเรย์ในหน่วยความจำหลัก จะพิจารณาตามประเภทของอะเรย์ในมิติต่าง ๆ ดังนี้
โครงสร้างข้อมูลอะเรย์หนึ่งมิติ (One-Dimensional Array)
โครงสร้างข้อมูลอะเรย์สองมิติ (Two-Dimensional Array)
โครงสร้างข้อมูลอะเรย์สามมิติ (Three-Dimensional Array)
การสร้าง Array ขึ้นมาใช้งานนั้น ต้องคำนึงถึง
1. ชื่อของ Array
2. ขนาดของ Array แต่ละช่อง และมิติของ Array
3. ค่าสูงสุด ( Upper Bound) และค่าต่ำสุด (Lower Bound) ในแต่ละมิติ
ข้อมูลที่จัดเก็บแสดงผลออกมาแบบเรียงลำดับ (inorder)
สามารถดึงสมาชิกลำดับที่ i ใด ๆ ออกมาได้
สามารถแทนที่สมาชิกลำดับที่ i ใด ๆ ได้
สามารถเพิ่มสมาชิกใหม่เข้าไปในแถวลำดับได้
สามารถลบสมาชิกที่มีอยู่ออกจากแถวลำดับได้
ข้อกำหนดของการกำหนดค่าต่ำสุดและค่าสูงสุดของ subscript
คือค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound)
ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound)
ค่า subscript ที่ใช้อ้างอิงถึงสมาชิก จะต้องมีค่ามากกว่า หรือเท่ากับขอบเขตล่าง และน้อยกว่าหรือเท่ากับขอบเขตบน
Arrays หลายมิติ การจัดเก็บอะเรย์ในหน่วยความจำหลัก จะใช้เนื้อที่ขนาดเท่ากัน เพื่อเก็บสมาชิกแต่ละตัว โดยเนื้อที่จะเรียงต่อเนื่องกัน การจัดเก็บอะเรย์ในหน่วยความจำหลัก จะพิจารณาตามประเภทของอะเรย์ในมิติต่าง ๆ ดังนี้
โครงสร้างข้อมูลอะเรย์หนึ่งมิติ (One-Dimensional Array)
โครงสร้างข้อมูลอะเรย์สองมิติ (Two-Dimensional Array)
โครงสร้างข้อมูลอะเรย์สามมิติ (Three-Dimensional Array)
วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552
DTS02-23-06-2552
#include
#include
int main(void)
{
struct airconditioner{
char brand[30];
char series[30];
int btu;
int rpm;
char compresser[20];
int energysafe;
int price;
int weight;
}product;
strcpy(product.brand,"mitsubishi");
strcpy(product.series,"sx508");
product.btu = 15000;
product.rpm = 5000;
strcpy(product.compresser,"mitsubishi");
product.energysafe = 5;
product.price = 20000;
product.weight = 50;
printf(" airconditioner\n\n");
printf(" brand;%s\n series;%s\n btu;%d\n rpm;%d\n compresser;%s\n energysafe;%d\n price;%d\n weigh;%d\n",
product.brand,product.series,product.btu,product.rpm,product.compresser,product.energysafe,product.price,product.weight);
}
#include
int main(void)
{
struct airconditioner{
char brand[30];
char series[30];
int btu;
int rpm;
char compresser[20];
int energysafe;
int price;
int weight;
}product;
strcpy(product.brand,"mitsubishi");
strcpy(product.series,"sx508");
product.btu = 15000;
product.rpm = 5000;
strcpy(product.compresser,"mitsubishi");
product.energysafe = 5;
product.price = 20000;
product.weight = 50;
printf(" airconditioner\n\n");
printf(" brand;%s\n series;%s\n btu;%d\n rpm;%d\n compresser;%s\n energysafe;%d\n price;%d\n weigh;%d\n",
product.brand,product.series,product.btu,product.rpm,product.compresser,product.energysafe,product.price,product.weight);
}
วันเสาร์ที่ 27 มิถุนายน พ.ศ. 2552
วันจันทร์ที่ 22 มิถุนายน พ.ศ. 2552
ประวัติ
น.ส. กันตนา พลอยนุช ชื่อเล่น อีฟ รหัสนักศึกษา 50172792028
Miss. kantana ploynuch
หลักสูตร การบริหารธุรกิจ ( คอมพิวเตอร์ธุรกิจ ) คณะ วิทาการจัดการ
มหาวิทยาลัราชภัฏสวนดุสิต
e-mail: u50172792028@gmail.com
เบอร์โทร 081-842-7244
Miss. kantana ploynuch
หลักสูตร การบริหารธุรกิจ ( คอมพิวเตอร์ธุรกิจ ) คณะ วิทาการจัดการ
มหาวิทยาลัราชภัฏสวนดุสิต
e-mail: u50172792028@gmail.com
เบอร์โทร 081-842-7244
สมัครสมาชิก:
บทความ (Atom)