วันพุธที่ 29 กรกฎาคม พ.ศ. 2552

DTS05/28-07-2552

เรื่อง Linked List
ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่างๆ โดยมีพอยเตอร์เป็นตัวเชื่อมต่อ แต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่งในแต่ละโนดประกอบไปด้วย 2 ส่วน คือ
1. Data จะเก็บข้อมูลของอิลิเมนท์
2. Link Field ทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์
ในส่วนของ data จะเป็นรายการเดี่ยวหรือเรคคอร์ดก็ได้ ส่วนของ link เป็นส่วนที่เก็บตำแหน่งของโหนดถัดไป ถ้าในโหนดสุดท้ายจะเก็บค่า Null (ไม่มีค่าใดๆ ไม่มีการเชื่อมโยง) เป็นตัวบอกการสิ้นสุด
โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์แบ่งเป็น 2 ส่วน คือ
1. Head Structure ประกอบไปด้วย 3 ส่วน ได้แก่ จำนวนโหนดในลิสต์ (Count) พอยเตอร์ที่ชี้ไปยังโหนดที่เข้าถึง (Pos) และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูลแรกของลิสต์ (Head)
2. Data Node Structure ประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลถัดไป
กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
1. กระบวนงาน Create List
หน้าที่ สร้างลิสต์ว่าง ผลลัพธ์ ลิสต์ว่าง
2. กระบวนงาน Insert Node หน้าที่เพิ่มข้อมูลลงไปในลิสต์บริเวณตำแหน่งที่ต้องกร
ข้อมูลนำเข้า ลิสต์ ข้อมูลและตำแหน่ง ผลลัพธ์ สิลต์ที่มีการเปลี่ยนแปลง
3. กระบวนงาน Delete Node หน้าที่ ลบสมาชิกในลิสต์บริเวณตำแหน่งที่ต้องการ
ข้อมูลนำเข้า ข้อมูลและตำแหน่ง ผลลัพธ์ ลิสต์ที่มีการเปลี่ยนแปลง
4. กระบวนงาน Search list หน้าที่ ค้นหาข้อมูลในลิสต์ที่ต้องการข้อมูลนำเข้าลิสต์
ผลลัพธ์ ค่าจริงถ้าพบข้อมูล ค่าเท็จถ้าไม่พบข้อมูล
5. กระบวนงาน Traverse หน้าที่ ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูลนำเข้าลิสต์
ผลลัพธ์ ขึ้นกับการประมวลผล เช่น เปลี่ยนแปลงค่าใน node, รวมฟิลด์ในสิสต์, คำนวณค่าเฉลี่ยนของฟิลด์ เป็นต้น
6. กระบวนงาน Retrieve Node หน้าที่ หาตำแหน่งข้อมูลจากลิสต์ข้อมูลนำเข้าลิสต์
ผลลัพธ์ ตำแหน่งข้อมูลที่อยู่ในลิสต์
7. ฟังก์ชั่น EmptyList หน้าที่ ทดสอบว่าลิสต์ว่าง ข้อมูลนำเข้าลิสต์
ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่าง เป็นเท็จ ถ้าลิสต์ไม่ว่าง
8. ฟังก์ชั่น FullList หน้าที่ ทดสอบว่าลิสต์เต็มหรือไม่ข้อมูลนำเข้าลิสต์
ผลลัพธ์ เป็นจริง ถ้าหน่วยความจำเต็ม เป็นเท็จ ถ้าสามรถมีโหนดอื่น
9. ฟังก์ชั่น list count หน้าที่ นับจำนวนข้อมูลที่อยู่ในลิสต์ ข้อมูลนำเข้าลิสต์
ผลลัพธ์ จำนวนข้อมูลที่อยู่ในลิสต์
10. กระบวนงาน destroy list หน้าที่ ทำลายลิสต์
ข้อมูลนำเข้า ลิสต์ ผลลัพธ์ ไม่มีลิสต์
Linked List แบบซับซ้อน
1. Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้ายมีตัวชี้ (list) ชี้ไปที่สมาชิกตัวแรกของลิงค์ลิสต์ จะมีการทำงานไปในทิศทางเดียวเท่านั้น คือ เป็นแบบวงกลม
2. Double Linked List เป็นลิงค์ลิสต์ที่มีทิศทางการทำแบบ 2 ทิศทาง ในลิงค์ลิสต์แบบ 2 ทิศทาง ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า (backward pointer) และตัวชี้ข้อมูลถัดไป (forward pointer)

วันพฤหัสบดีที่ 16 กรกฎาคม พ.ศ. 2552

DTS04/15-07-2009

สรุป set and string มีโครงสร้างอยู่ 2 แบบ คือ โครงสร้างข้อมูลแบบเซ็ตและโครงสร้างข้อมูลแบบสตริง
โครงสร้างข้อมูลแบบเซ็ต เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กัน ในภาษาซีจะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับในภาษาปาสคาล แต่สามารถใช้หลักการของการดำเนินงานแบบเซ็ตมาใช้ได้
โครงสร้างข้อมูลแบบสตริง สตริง (String) หรือ สตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร ตัวเลขหรือเครื่องหมายเรียงติดต่อกันไป รวมทั้งช่องว่าง การประยุกต์ใช้คอมพิวเตอร์ที่เกี่ยวกับข้อมูลที่เป็นสตริงมีการนำไปใช้สร้างโปรแกรมประเภทบรรณาการข้อความหรือโปรแกรมประเภทประมวลผล
การกำหนดสตริง
การกำหนดสตริงทำได้หลายแบบ คือ 1. กำหนดเป็นสตริงที่มีค่าคงตัว 2. กำหนดโดยใช้ตัวแปรอะเรย์หรือพอยเตอร์
การกำหนดค่าคงตัวสตริง
สามารถกำหนดได้ทั้งนอกและในฟังก์ชัน เมื่อกำหนดไว้นอกฟังก์ชัน ชื่อค่าคงตัวจะเป๋นพ้อยเตอร์ชี้ไปยังหน่วยความจำที่เก็บสตริงนั้น เมื่อกำหนดไว้ในฟังก์ชัน จะเป็นพอยเตอร์ไปยังหน่วยความจำที่เก็บตัวมันเอง
การกำหนดตัวแปรสตริง
ในการกำหนดตัวแปรของสตริง อาศัยหลักการของอะเรย์เพราะ สตริงคืออะเรยืของอักขระที่ปิดท้ายด้วย null character (\0) และมีฟังชันพิเศษสำหรับทำงานกับสตริงโดยเฉพาะ
อะเรย์ของสตริง
ถ้าหากมีสตริงจำนวนมาก ก็ควรจะทำให้เป็นอะเรย์ของสตริง เพื่อที่จะเขียนโปรแกรมได้สะดวก
การสร้างอะเรย์ของสตริง สามารถสร้างได้ทั้งแบบที่ให้ค่าเริ่มต้นและแบบที่กำหนดเป็นตัวแปร
ฟังก์ชัน puts () ใช้ในการพิมพ์สตริงออกทางจอภาพ โดยการผ่านค่าแอดเดรสของสตริงไปให้เท่านั้น ข้อสังเกต การกำหนดอะเรย์ของสตริงในลักษณะอย่างนี้ ไม่ใช่อะเรย์ที่แท้จริงตามหลักการของอะเรย์ เนื่องจากขนาดของช่องในอะเรย์ไม่เท่ากัน แต่อนุโลมให้ถือว่าเป็นอะเรย์
อะเรย์ของสตริงที่ยาวเท่ากัน
อะเรย์ในลักษณะนี้จะถือว่าเป็นอะเรย์ที่แท้จริงและสามารถกำหนดได้ทั้งเมื่อมีการให้ค่าเริ่มต้น และเมื่อกำหนดเป็นตัวแปร โดยดำเนินการตามแบบการกำหนดอะเรย์ 2 มิติ
การกำหนดตัวแปรในลักษณะนี้ จะแตกต่างจากการกำหนดตัวแปรแบบความยาวไม่เท่ากัน คือ ในแบบความยาวไม่เท่ากัน ท้ายของสตริงจะเติม null character ให้เพียงตัวเดียว แต่ในแบบความยาวเท่ากัน จะเติม null character ให้จนครบทุกช่อง
การดำเนินการเกี่ยวกับสตริง
ในการดำเนินการเกี่ยวกับสตริง จะมีฟังก์ชันที่อยู่ในแฟ้ม ข้อมูล stdio.h เก็บอยู่ใน C Libraly อยู่แล้วสามารถนำมาใช้ได้ โดยการใช้คำสั่ง #include ในการเรียกใช้ เช่น
- ฟังก์ชัน strlen(str) ใช้หาความยาวของสตริง
- ฟังก์ชัน strcpy(str1,str2) ใช้คัดลอกข้อมูลจาก string หนึ่งไปยังอีก string หนึ่ง
- ฟังก์ชัน strcat(str1,str2) ใช้เชื่อมต่อข้อความ 2 ข้อความเข้าด้วยกัน
- ฟังก์ชัน strcmp(str1,str2) ใช้เปรียบเทียบข้อความ 2 ข้อความว่ามีค่าเท่ากันหรือไม่ ถือหลักการเปรียบเทียบแบบพจนานุกรม

วันอังคารที่ 30 มิถุนายน พ.ศ. 2552

DTS 03/30-06-2552

สรุป Array and Record อะเรย์เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มีลักษณะคล้ายเซต คือ อะเรย์จะประกอบด้วยสมาชิกคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บเท่ากันเรียงต่อเนื่องในหน่วยจำหลัก การกำหนด Array จะต้องกำหนดชื่อพร้อม subscript มีได้มากกว่า 1 จำนวน ถ้าอะเรย์มี subscript มากกว่า 1 ตัว เป็นอะเรย์หลายมิติ ค่าต่ำสุดของ subscript คือ ขอบเขตว่าง (lower boand) ค่าสูงสุดเรียกว่า ขอบเขตบน (upper bound) การหาจำนวนสมาชิกหรือขนาดของอะเรย์มาจาก Upper bound - lower bound + 1 รูปแบบอะเรย์ 1 มิติ data - type array - name (expression) ประเภท ชื่อ นิพจน์จำนวนเต็มที่ระบุ รูปแบบตัวแปรชนิด Character char array - name [n]="string"; จะเก็บค่าไอโดยอัตโนมัติ เพื่อแสดงค่าสิ้นสุด กำหนดอะเรย์เป็นพารามิเตอร์ให้กับฟังก์ชันได้ 2 ลักษณะ 1. ทำได้โดยอ้างถึงชื่ออะเรย์พร้อมระบุ subscript เช่น swap(num[2],num[3]); 2. ทำได้โดยอ้างถึงชื่ออะเรย์โดยไม่มี subscript เช่น #define N10 รูปแบบอะเรย์มี 2 มิติ type aeeay -name[n][m]; Record or Struetare เป็นโครงสร้างข้อมูลที่ประกอบขึ้นมาจากข้อมูลพื้นฐานต่าง ประเภทกัน รวมเป็น 1 ข้อมูล คือ ประกอบด้วย data element หรือ field ต่างๆ ในภาษา C กำหนดข้อมูลเป็นรูปแบบ Structure คือ โครงสร้างที่สมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกัน โดยใน Structure อาจมีสมาชิกจำนวนเต็ม ทศนิยม อักขระ อะเรย์หรือพอยน์เตอร์หรือแม้แต่ Structure เราสามารถประกาศ structure เป็นสมาชิกของ structure ได้โดยประกาศไว้ด้านนอก เราสามารถกำหนดวงเล็บปีกกา ค่าเริ่มต้นแต่ละตัวแยกด้วย, ประกาศตัวแปรพอยน์เตอร์สำหรับ structue ดังนี้ type*ptvar เครื่องหมาย *ใช้งาน 2 ลักษณะ 1. ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์ 2. ใช้เป็น deveferencing operator ค่าที่ตำแหน่งพอยน์เตอร์ชี้อยฤมาแสดง ตัวแปรที่มีเครื่องหมาย & นำหน้าจะไม่สามารถนำมาคำนวณได้ การผ่าน structure ใช้ฟังก์ชันมี 2 ประเภท คือ 1. สิ่งสมาชิกแต่ละตัวของ structure และส่งกลับ ได้ใช้คำศัพท์ return 2. ส่งผ่านทั้ง structure ใช้กับฟังก์ชั่น โดยส่งผ่านอะเรย์เรียกว่า pass by reference

วันเสาร์ที่ 27 มิถุนายน พ.ศ. 2552

DTS 02/23-06-2552

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

#include <stdio.h>
#include <string.h>
int main(void){
struct ballot{
char name[15];
char address[50];
char telephone[10];
char promotion[30];
int price;
int salary;
float bonus;
char smack[15];
}coffee_shop;
struct coffee_shop;
strcpy(coffee_shop.name,"MoMo");
strcpy(coffee_shop.address,"Bangkok");
strcpy(coffee_shop.telephone,"028893316");
strcpy(coffee_shop.promotion,"buy 1 a cup 1 in add ition a cup")
coffee_shop.price=45;
coffee_shop.salary=6000;
coffee_shop.bonus=395.50;
strcpy(coffee_shop.smack,"cappuccino");
printf("name:%s\n\n",coffee_shop.name);
printf("address:%s\n\n",coffee_shop.address);
printf("telephone:%s\n\n",coffee_shop.telephone);
printf("promotion:%s\n\n",coffee_shop.promotion);
printf("price:%d\n\n",coffee_shop.price);
printf("salary:%d\n\n",coffee_shop.salary);
printf("bonus:%f\n\n",coffee_shop.bonus);
printf("smack:%s\n\n",coffee_shop.smack);
}

วันอังคารที่ 23 มิถุนายน พ.ศ. 2552

ประวัติ


นางสาวปัฐพร วงศ์ศิริวาทิน ชื่อเล่น แอน รหัสประจำตัว 50132792007

Miss. Pattaporn Wongsiriwatin

หลักสูตร การบริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ) คณะวิทยาการจัดการ

มหาวิทยาลัยราชภัฏสวนดุสิต

E-mail : u50132792007@gmail.com