วันพุธที่ 14 ตุลาคม พ.ศ. 2552

ลูกแรดเตรียมพร้อมล่าเหยื่อ

สิ่งที่ได้รับจากการฝึกประสบการณ์วิชาชีพ

ดิฉันได้รับรู้ถึงการทำงานเป็นทีม และความเป็นระบบระเบียบทั้งการแต่งกายและการประพฤติปฏิบัติตัว
และยังได้เรียนรู้เรื่องการออมเงิน ว่าในสังคมปัจจุบันเราควรจะประหยัดเพราะในยุคเศรษฐกิจตกต่ำนั้นเราซึ่ง
เป็นนักศึกษาควรช่วยกันประหยัดเงินให้พ่อแม่ และยังได้เรียนรู้ถึงการมีจริยธรรมต่อตนเองและผู้อื่น
ทั้งทางด้านการเรียน และการทำงาน อีกยังมีการนำความรู้สมัยใหม่ในการใช้เทคโนโลยีที่ถูกต้องและเหมาะ
สมมาให้เรียนรู้อีกด้วย ซึ่งทำให้เราสามารถนำไปประยุกต์ใช้ในชีวิตประจำวันได้อย่างถูกต้องและเหมาะสม
และยังมีการฝึกให้ใช้ความรู้ในการคิดวิเคราะห์การทำงานและสร้างสรรค์ความคิดในการทำงานอีกด้วย

วันพุธที่ 9 กันยายน พ.ศ. 2552

DTS08-08/09/2552

เรื่อง กราฟ

กราฟ (Graph) เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อนเช่น การวางข่าย งานคอมพิวเตอร์ การวิเคราะห์เส้นทางวิกฤติ และปัญหาเส้นทางที่สั้นที่สุด

กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
(1) โหนด (Nodes) หรือ เวอร์เทกซ์(Vertexes)
(2) เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edges)กราฟที่มีเอ็จเชื่อมระหว่างโหนดสองโหนดถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่ากราฟแบบไม่มีทิศทาง (Undirected Graphs)และถ้ากราฟนั้นมีเอ็จที่มีลำดับความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า กราฟแบบมีทิศทาง(Directed Graphs)
บางครั้งเรียกว่า ไดกราฟ (Digraph)ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถเขียนชื่อเอ็จกำกับไว้ก็ได้

เทคนิคการท่องไปในกราฟมี 2 แบบดังนี้
1. การท่องแบบกว้าง (Breadth First Traversal)
2. การท่องแบบลึก (Depth First Traversal)

กราฟ มีน้ำหนัก หมายถึง กราฟที่ทุกเอดจ์ มีค่าน้ำหนักกำกับ ซึ่งค่าน้ำหนักอาจสื่อถึงระยะทาง เวลา ค่าใช้จ่าย เป็นต้น

DTS07-25/08/2552

ทรี(TREE)มีความสัมพันธ์ระหว่าง โหนดจะมีความลดหลั่นกันเป็นลำดับชั้น ได้มีการนำรูปแบบทรีไปประยุกต์ในการใช้งานต่างๆ หรือ การมีสายบังคับบัญชา โหนดแต่ละโหนดจะต้องประกอบไปด้วยโหนดแม่

-โหนดที่ต่ำกว่าโหนดแม่จะเรียกว่าโหนดลูก

-โหนดที่สูงสุดและไม่มีโหนดแม่จะเรียกว่า โหนดราก

-โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง

-โหนดที่ไม่มีโหนดลูฏจะเรียกว่า โหนดใบ

-เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนดเรียกว่า กิ่ง

นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟ คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด ในโครงสร้างการเขียนรูปแบบทรีเขียนได้ 4 แบบ
1) แบบที่มีรากอยู่ด้านบน
2) แบบที่มีรากอยู่ด้านล่าง
3) แบบที่มีรากอยู่ด้านซ้าย
4) แบบที่มีรากอยู่ด้านขวา
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟหรือการเวียนเกิด คือ ทรีที่ประกอบไปด้วยสมาชิกที่เรียกว่าโหนด โดยที่ถ้าว่าง ไม่มีโหนดใดๆ จะเรียกว่า Null Tree ถ้ามีโหนดหนึ่งเป็นโหนดราหอีกโหนดจะเป็นทรีย่อย

DTS06-04/08/2552

สแตก (Stack) เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก (TopOf Stack) และ ลักษณะที่สำคัญของสแตกคือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา จากสแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่าLIFO (Last In First Out)

การทำงานของสแตกจะประกอบด้วยกระบวนการ 3 กระบวนการที่สำคัญ คือ

1.Push คือ การนำข้อมูลใส่ลงไปในสแตกเช่น สแตก s ต้องการใส่ข้อมูล i ในสแตก จะได้

2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตกpush (s,i) คือ ใส่ข้อมูล i ลงไปที่ทอปของสแตก

3. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก

การดำเนินการเกี่ยวกับสแตก ได้แก่
1. Create Stack จัดสรรหน่วยความจำให้แก่ Head Nodeและส่งค่าตำแหน่งที่ชี้ไปยัง Head ของสแตกกลับมา
2. Push Stack การเพิ่มข้อมูลลงไปในสแตก กรณีที่ไม่มีข้อมูลอยู่ในสแตก
3. Pop Stack การนำข้อมูลบนสุดออกจากสแตก
4. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก โดยไม่มีการลบข้อมูลออกจากสแตก
5.Empty Stack เป็นการตรวจสอบการว่างของสแตก เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่าStack Underflow
6. Full Stack เป็นการตรวจสอบว่าสแตกเต็มหรือไม่ เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลเข้าสแตกที่เรียกว่า Stack Overflow
7. Stack Count เป็นการนับจำนวนสมาชิกในสแตก
8. Destroy Stackเป็นการลบข้อมูลทั้งหมดที่อยู่ในสแตก

วันจันทร์ที่ 3 สิงหาคม พ.ศ. 2552

DTS05-28/07/2552

สรุปการเรียนในครั้งนี้

เรื่อง Link List
ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่างๆ โดยมีพอยเตอร์เป็นตัวเชื่อมต่อ แต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่งในแต่ละโนดประกอบไปด้วย 2 ส่วน คือ
1. Data จะเก็บข้อมูลของอิลิเมนท์
2. Link Field ทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์ในส่วนของ data จะเป็นรายการเดี่ยวหรือเรคคอร์ดก็ได้ ส่วนของ link เป็นส่วนที่เก็บตำแหน่งของโหนดถัดไป ถ้าในโหนดสุดท้ายจะเก็บค่า Null (ไม่มีค่าใดๆ ไม่มีการเชื่อมโยง) เป็นตัวบอกการสิ้นสุดโครงสร้างข้อมูลแบบลิงค์ลิสต์

ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่างๆ โดยมีพอยเตอร์เป็นตัวเชื่อมต่อ แต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่งในแต่ละโนดประกอบไปด้วย 2 ส่วน คือ
1. Data จะเก็บข้อมูลของอิลิเมนท์
2. Link Field ทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์ในส่วนของ data จะเป็นรายการเดี่ยวหรือเรคคอร์ดก็ได้ ส่วนของ link เป็นส่วนที่เก็บตำแหน่งของโหนดถัดไป ถ้าในโหนดสุดท้ายจะเก็บค่า Null (ไม่มีค่าใดๆ ไม่มีการเชื่อมโยง) เป็นตัวบอกการสิ้นสุดโครงสร้างข้อมูลแบบลิงค์ลิสต์

Linked List แบบซับซ้อน
1. Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้ายมีตัวชี้ (list) ชี้ไปที่สมาชิกตัวแรกของลิงค์ลิสต์ จะมีการทำงานไปในทิศทางเดียวเท่านั้น คือ เป็นแบบวงกลม
2. Double Linked List เป็นลิงค์ลิสต์ที่มีทิศทางการทำแบบ 2 ทิศทาง ในลิงค์ลิสต์แบบ 2 ทิศทาง ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า (backward pointer) และตัวชี้ข้อมูลถัดไป (forward pointer)

วันอาทิตย์ที่ 2 สิงหาคม พ.ศ. 2552

การบ้าน .iostream.h

#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>

const int randNumSize = 50, numPerline = 8;
void showNum(int randNum[]);
void countOddNum(int randNum[]);
int main()
{
int randNum[randNumSize] = {0};
char menu; srand(time(NULL));
do
{
for(int n=0;n < randNumSize;n++)
{
randNum[n] = rand()%40 + 10;
}
showNum(randNum);
countOddNum(randNum);
cout << "Do you want to random again (Y/N)";
cin >> menu;
}
while(menu == 'Y');
return 0;
}
void showNum(int randNum[])
{
cout << "Show random Array " << randNumSize << " numbers :" << endl;
for(int i=0, showed=0; i < randNumSize; i++)
{
showed++ ;
cout << setw(5) << randNum[i];
if(showed == numPerline)
{
cout << endl;
showed = 0;
}
}
}
void countOddNum(int randNum[])
{
cout << "\n\nOdd numbers are :" << endl;
for(int i=0, Oddnum=0, sumOdd=0, showed=0; i < randNumSize; i++)
{
if(randNum[i]%2 == 1)
{
Oddnum++;
showed++;
sumOdd += randNum[i];
cout << setw(5) << randNum[i];
if(showed == numPerline)
{
cout << endl;
showed = 0;
}
}
}
cout << "\n\nOdd number = " << Oddnum << " Sum = " << sumOdd << endl;
}

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

DTS04-14/07/2552

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

ตัวดำเนินการของเซ็ต
- Set intersection คือ การซ้ำกัน
- Set union คือ การรวมกัน AUB
- Set difference คือ ความแตกต่าง A-B หรือ B-A ตัวที่อยู่ในA แต่ไม่อยู่ในB

ในการดำเนินการเกี่ยวกับสตริง จะมีฟังก์ชันที่อยู่ในแฟ้มข้อมูล stdio.h เก็บอยู่ใน C Library อยู่แล้วสามารถนำมาใช้ได้ โดยการใช้คำสั่ง #include ในการเรียกใช้ เช่น- ฟังก์ชัน strlen (str ) ย่อมาจาก string length ใช้ความหมายของสตริง- ฟังก์ชัน strcpy (str1,str2 ) ย่อมาจาก string copy ใช้คัดลอกข้อมูลจาก หนึ่งไปยังอีก หนึ่ง- ฟังก์ชัน strcat (str1,str2 ) ย่อมาจาก string concatente ใช้เชื่อมต่อข้อความ 2 ข้อความเข้าด้วยกัน- ฟังก์ชัน strcmp(str1,str2 ) ย่อมาจาก string compare ใช้เปรียบเทียบข้อความ 2 ข้อความว่ามีค่าเท่ากันหรือไม่

สตริง คือ อะเรย์ของอักขระ เช่น Char a[6] อาจจะเป็นอะเรย์ขนาด 6 ช่องอักขระ หรือเป็นสตริงขนาด 5 อักขระก็ได้ โดยจุดสิ้นสุดของ String จะจบด้วย \0 หรือ null character

วันจันทร์ที่ 6 กรกฎาคม พ.ศ. 2552

DTS03-30/06/2552

ในการเรียนครั้งนี้ทำให้ได้รู้เกี่ยวกับArray , Structure และ ตัวแปร Pointer ซึ้งการเรียนครั้งนี้จะมีการแยกประเภทของ Array , Structure และ ตัวแปร Pointer อย่างชัดเจน ว่า Array มีอะไรบ้าง สามารถกำหนดค่าของ Array ได้อย่างไร ได้รู้จักค่าของ Subscript ทีใช้อ้างอิงถึงสมาชิก รู้จัก Array 1 มิติ และ Array 2 มิติ ส่วนStructure นั้น ก็ได้รู้จักการนิยาม Structure การกำหนดตัวแปรต่างๆ และ Pointer นั้น ก็ได้รู้ว่า เครื่องหมายอะไรที่สามารถใช้กับตัวแปร Pointer ได้ และเรายังสามารถใช้ตัวแปร Pointer กับ Array ร่วมกันได้อีกด้วย และการอ้างอิงถึงตัวแปรชุด สามารถอ้างถึงโดยการ เพิ่ม หรือ ลด ตัวแปร Pointer ได้

วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552

วันศุกร์ที่ 26 มิถุนายน พ.ศ. 2552

RECORD DTS02 - 23/6/2552

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


การบ้าน
#include <stdio.h>
#include <string.h>
void main()
{

struct resume {
char name[9];
char surname[9];
char id[15];
int age;
char gender[10];
int day;
char month[9];
int year;
int height;
int weight;
float grade;

};

struct resume student;
strcpy(student.name,"Benya");
strcpy(student.surname,"Kaittisakvanit");
strcpy(student.id,"50132792091");
student.age=20;
strcpy(student.gender,"female");
student.day=27;
strcpy(student.month,"June");
student.year=2009;
student.height=159;
student.weight=78;
student.grade=2.17;

printf(" Name:%s\n",student.name);
printf(" Surname:%s\n",student.surname);
printf(" Id:%s\n",student.id);
printf(" Age:%d\n",student.age);
printf(" Gender:%s\n",student.gender);
printf(" Today date is:%d%s%d\n",student.day,student.month,student.year);
printf(" Height:%d\n",student.height);
printf(" Weight:%d\n",student.weight);
printf(" Grade:%f\n",student.grade);

}

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

ประวัติ






นางสาวเบญญา เกียรติศักดิ์วณิช รหัสประจำตัว 50132792091

Miss.Benya Kaittisakvanit

ชื่อเล่น อ้อแอ้

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

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

E-mail :
U50132792091@gmail.com Tel : 085-313-3562