บริษัทไทยซอฟท์แวร์เอ็นเตอร์ไพรส์ จำกัด (มหาชน)
วันที่ 1 พฤศจิกายน 2553
08:00น.เดินทางมาถึงที่ทำงาน บ.ไทยซอฟท์แวร์เอ็นเตอร์ไพรส์
08:30น.เข้าไปรายงานตัวกับผูที่ดูแลระหว่างการฝึกปฏิบัติงาน(พี่หนู) และทำความรู้จักกับพี่เลี้ยง
(พี่อุ๊) จากนั้นพี่หนูก็นำเอกสารที่เป็นข้อมูลที่เกี่ยวข้องกับการเข้ามาทำงานให้อ่าน และทำความเข้าใจ ซึ่งมีดังต่อไปนี้
1)การปฏิบัติงานเพื่ออยู่ร่วมกับผู้อื่นในที่ทำงาน
2)ขั้นตอนการขอข้อมูลลูกค้า
3)คู่มือการใช้งาน ระบบContact
11.00น.โทรศัพท์หาลูกค้า ชื่อคุณปรีชา เพื่อให้รหัสชุดที่ 3 (S3) ของโปรแกรม Dictionary5.5 แก่ลูกค้า
13:00น.ทดสอบโปรแกรม Dictionary 8.0 เพื่อทำการทดสอบโปรแกรม
16:00น.เรียนรุ้ระบบของ -Dict5.0,-Dict5.5,-Register Serial Manager
ปัญหาระหว่างการทำงาน
-ยังไม่ทราบเกี่ยวกับการใช้งานระบบ
-ยังไม่รู้จักพนักงานบางคน จึงทำให้ยากต่อการทำงาน
-เครื่อง Computer ตรงโต๊ะที่นั่ง สเปคต่ำ การเข้าโปรแกรมจึงช้า
การแก้ไข
-เรียนรู้จากการใช้งาน โดยการถาม-ตอบ และทดลองใช้
-สังเกตุจากการพูดตุยของพนักงานแต่ละคน และจากการถาม
-เปิดโปรแกรมให้น้อยที่สุด โดยเปิดเฉพาะที่สำคัญ
วันที่2 พฤศจิกายน 2553
08:15น.เดินทางมาถึงที่ทำงาน บ.ไทยซอฟท์แวร์เอ็นเตอร์ไพรส์
08:30น.ทดสอบโปรแกรม Dictionary 8.0 เพื่อทำการทดสอบโปรแกรมต่อจากวันที่ 1พ.ย.จนครบตาม กำหนด 49หน้า
13:20น.โทรศัพท์หาตัวแทนจำหน่าย เพื่อสอบถามเรื่องข้อสอบ ระบบบัญชี จำนวน 3 บริษัท คือ
1)บริษัท คอมป์ ดิจิต ซิสเท็ม จำกัด ตัวแทนจำหน่าย คุณสุชาติ พาณิชภักดี ผู้จัดการ Software Manager
สมคิด นิพนธ์ศักดิ์ Account Executive
2)เอ.เอส.ซี. ซอฟท์แวร์ แอนด์ เซอร์วิส จำกัด ตัวแทนจำหน่าย สมพร เอี่ยมเกิด GM
อาพัชรา อยู่เปรม sale
3)จีซอฟท์-โซลูชั่นส์ จำกัด ตัวแทนจำหน่าย กนกธร อนัญมงคล กรรมการผู้จัดการ ซึ่งทั้ง 3บริษัทดังกล่าวยังไม่ได้ส่งข้อสอบ
ปัญหาระหว่างการทำงาน
1)ในการทดมอบโปรแกรม Dictionary 8.0มีการเกิดปัญหาระหว่างการทำงาน เช่น เครื่อง Notebook ค้าง
2)กรณีโทรไปหาตัวแทนจำหน่าย เพื่อติดตามข้อสอบนั้นบางท่านไม่อยู่ที่บริษัท เนื่องจากออกไปติดต่อลูกค้า และบางท่านก็เพิกเฉย เนื่องจากทำข้อสอบยังไม่เสร็จ เนื่องจากติดงานของบริษัท
การแก้ปัญหา
1)ปิดโปรแกรมที่ไม่จำเป็นออก
2)ฝากข้อความไว้กับพนักงานที่รับโทรศัพท์ โดยถามชื่อของพนักงานที่รับโทรศัพท์
03/พฤศจิกายน 2553
07:55น.เดินทางมาถึงที่ทำงาน บ.ไทยซอฟท์แวร์เอ็นเตอร์ไพรส์
08:20น.เปิดเว็บไซต์ของบริษัทเพื่อดูข้อมูล และสินค้าเพื่อทำความเข้าใจ มีดังนี้
1)www.thaisoftware.co.th
2)www.thaidictionary.in.th
3)www.genius.in.th
4)www.genius-ehotel.com
09:30น.รับโทรศัพท์จากลูกค้าเพื่อให้รหัส S3ของ Dictionary5.5
09:50น.โทรตามข้อสอบ ระบบบัญชีที่เหลือจาก ตัวแทนจำหน่ายทั้ง 3บริษัท
13:30น.แพ็คสินค้า พร้อมเอกสาร MA คูปอง และของแถวให้เก่ลูกค้า
ปัญหาระหว่างการทำงาน
1)ในการรับโทรศัพท์เพื่อให้ข้อมูลแก่ลูกค้า บางครั้งยังตื่นเต้นทำให้เกิดการติดขัด
2)ในการแพ็คสินค้า มีข้อมูลบางชนิดผิด จึงต้องทำการพิจราณาเพื่อหาข้อเท็จจริง เกิดการล่าช้า
การแก้ปัญหา
1)พยายามหาข้อมูลต่างๆให้มากๆ และทำสมาธิเพื่อลดอาการตื่นเต้น
2)ตรวจสอบข้อมูลในระบบกับเอกสารว่าตรงกันหรือไม่
04 พฤศจิกายน 2553
08:15น.เดินทางมาถึงที่ทำงาน บ.ไทยซอฟท์แวร์เอ็นเตอร์ไพรส์
09:10น.แก้ไขและเพิ่มเติมการทดสอบระบบ Dictionary 8.0เพื่อให้ถูกต้องและสมบูรณ์
10:50น.รับโทรศัพท์ลูกค้า เรื่องการต่อสัญญา PR จึงโอนไปให้เจ้าหน้าที่ที่เกี่ยวข้อง เพื่อรับเรื่องไปดำเนินการ
ปัญหาระหว่างการทำงาน
1)Internetหลุดบ่อย ทำให้เชื่อต่อกับ Sever 1 ไม่ได้
การแก้ปํญหา
1)รอเพื่อให้เจ้าหน้าที่ซ่อม ระหว่างนั้นก็ทำงานอย่างอื่นไปด้วย เพื่อไม่ให้เป็นการเสียเวลา
2.ให้ลูกค้าฝากชื่อ พร้อมที่อยู่ของบริษัท และเบอร์โทรหลับไว้ให้ แล้วนำไปให้เจ้าหน้าที่
05 พฤศจิกายน 2553
08:20น.เดินทางมาถึงที่ทำงาน บ.ไทยซอฟท์แวร์เอ็นเตอร์ไพรส์
09:15น.รับโทรศัพท์จากลูกค้า ชื่อคุณสุรชัย สอบถามเรื่องของ Dictionary 6 ซึ่งมีปัญหาเกี่ยวกับการพิมพ์ภาษาไทยไม่ได้ เนื่องจากว่าคุรสุรชัยได้ลงWindown7ไป ซึ่งโปรแกรม Dictionary 6 ไม่สามารถทำงานร่วมกับWindown7ได้
10:10น.ลูกค้าโทรสอบถามข้อมูลของระบบ PR(ระบบบัญชี)เนื่องจากไม่สามารถสั่งPrint จากระบบได้
14:13น.ลูกค้าจาก บ.BMW โทรมาถามเรื่องDictionary Licenses เพื่อนจะซื้อไปใช้ในบริษัท
ปัญหาระหว่างการทำงาน
1)ไม่สามารถให้ข้อมูลบางอย่างแก่ลูกค้าได้ เนื่องจากยังไม่ทราบข้อมูลนั้นๆ
การแก้ปัญหา
1)ให้ลูกค้าฝากชื่อ พร้อมที่อยู่ของบริษัท และเบอร์โทรหลับไว้ให้ แล้วนำไปให้เจ้าหน้าที่
ค้นหาบล็อกนี้
05 พฤศจิกายน 2553
บันทึกการฝึกประสบการณ์วิชาชีพ สัปดาห์ที่ 1
14 ตุลาคม 2552
ลูกแรดเตรียมพร้อมล่าเหยื่อ
จากการที่ดิฉันได้ เข้ามาเรียนในวิชา เตรียมฝึกประสบการณ์ฯ ได้ทำให้ดิฉันฝึกตนเองดังนี้
1.ทำให้เกิดความรับผิดชอบ ในหน้าที่การงานมากขึ้นกว่าเดิม
2.ทำให้เกิดการเสริมสร้าง และพัฒนาบุคลิกภาพของตนเองให้พร้อมที่จะเข้าสู่สังคมมากขึ้น
3.ได้ฝึกลายมือ และเรียนรู้การใช้ภาษาไทยที่ถูกต้อง
4.มีการเสริมสร้างทักษะทางด้านภาษาอังกฤษ ที่เราต้องใช้ในชีวิตประจำวัน
5.ฝึกนิสัยของเราให้มีการเตรียมความพร้อม ที่จะทำงานในวันต่อไป
6.ฝึกนิสัยให้คุ้นเคยกับการแต่งกายเรียบร้อย
7.ให้ความสำคัญและเรียนรู้การทำงานเป็นทีม
ในการศึกษาครั้งนี้ ได้ให้ประโยชน์มากมาย ช่วยให้เรารู้จักการวางตัว และประพฤติตนให้เหมาะสมเมื่อเราเข้าไปอยู่ในสังคม และแก้ไขปัญหาเฉพาะหน้าได้
1.ทำให้เกิดความรับผิดชอบ ในหน้าที่การงานมากขึ้นกว่าเดิม
2.ทำให้เกิดการเสริมสร้าง และพัฒนาบุคลิกภาพของตนเองให้พร้อมที่จะเข้าสู่สังคมมากขึ้น
3.ได้ฝึกลายมือ และเรียนรู้การใช้ภาษาไทยที่ถูกต้อง
4.มีการเสริมสร้างทักษะทางด้านภาษาอังกฤษ ที่เราต้องใช้ในชีวิตประจำวัน
5.ฝึกนิสัยของเราให้มีการเตรียมความพร้อม ที่จะทำงานในวันต่อไป
6.ฝึกนิสัยให้คุ้นเคยกับการแต่งกายเรียบร้อย
7.ให้ความสำคัญและเรียนรู้การทำงานเป็นทีม
ในการศึกษาครั้งนี้ ได้ให้ประโยชน์มากมาย ช่วยให้เรารู้จักการวางตัว และประพฤติตนให้เหมาะสมเมื่อเราเข้าไปอยู่ในสังคม และแก้ไขปัญหาเฉพาะหน้าได้
27 กันยายน 2552
iostream
#include
#include>
int main ()
{
long int num;
cout<<"*********** Count Back to one ***********"<<'\n'; cout<<"Please enter number (100 to STOP):"; cin>>num;
while(num!=100){
while (num>100) {
cout<<<'\n'; num--; } cout<<"Please enter intiger(100 to STOP):"; cin>>num;
}
clrscr();
cout<<"------------Bye-----------";
return 100;
}
#include
int main ()
{
long int num;
cout<<"*********** Count Back to one ***********"<<'\n'; cout<<"Please enter number (100 to STOP):"; cin>>num;
while(num!=100){
while (num>100) {
cout<
}
clrscr();
cout<<"------------Bye-----------";
return 100;
}
โครงสร้างข้อมูล-ทรี-25/08/2552
ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น (Hierarchical Relationship)ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูลแต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมา หนึ่งระดับได้หลาย ๆ โหนดเรียกโหนดดังกล่าวว่า โหนดแม่ (Parent orMother Node)โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก (Child or Son Node)โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก (Root Node)โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings)โหนดที่ไม่มีโหนดลูก เรียกว่าโหนดใบ (Leave Node)เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนดการแปลงทรีทั่วไปให้เป็นไบนารีทรีขั้นตอนการแปลงทรีทั่วๆ ไปให้เป็นไบนารีทรี มีลำดับขั้นตอนการแปลง ดังต่อไปนี้1. ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบความสัมพันธ์ ระหว่างโหนดแม่และโหนดลูกอื่น ๆ2. ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง3. จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา
การท่องไปในไบนารีทรีปฏิบัติการที่สำคัญในไบนารีทรี คือ การท่องไปในไบนารีทรี (Traversing Binary Tree) เพื่อเข้าไปเยือนทุก ๆโหนดในทรี ซึ่งวิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้งวิธีการท่องไปนั้นมีด้วยกันหลายแบบแล้วแต่ว่าต้องการลำดับขั้นตอนการเยือนอย่างไร โหนดที่ถูกเยือนอาจเป็นโหนดแม่ (แทนด้วย N)ทรีย่อยทางซ้าย (แทนด้วย L)หรือทรีย่อยทางขวา (แทนด้วย Rวิธีการท่องเข้าไปในทรี 6 วิธี คือ NLRLNR LRN NRL RNL และ RLN แต่วิธีการท่องเข้าไปไบนารีทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรกเท่านั้นคือ NLR LNR และ LRN ซึ่งลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ(Recursive) ซึ่งขั้นตอนการท่องไปในแต่ละแบบมีดังนี้1. การท่องไปแบบพรีออร์เดอร์(Preorder Traversal)เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธีNLR มีขั้นตอนการเดินดังต่อไปนี้(1) เยือนโหนดราก(2) ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์(3) ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
การท่องไปในไบนารีทรีปฏิบัติการที่สำคัญในไบนารีทรี คือ การท่องไปในไบนารีทรี (Traversing Binary Tree) เพื่อเข้าไปเยือนทุก ๆโหนดในทรี ซึ่งวิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้งวิธีการท่องไปนั้นมีด้วยกันหลายแบบแล้วแต่ว่าต้องการลำดับขั้นตอนการเยือนอย่างไร โหนดที่ถูกเยือนอาจเป็นโหนดแม่ (แทนด้วย N)ทรีย่อยทางซ้าย (แทนด้วย L)หรือทรีย่อยทางขวา (แทนด้วย Rวิธีการท่องเข้าไปในทรี 6 วิธี คือ NLRLNR LRN NRL RNL และ RLN แต่วิธีการท่องเข้าไปไบนารีทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรกเท่านั้นคือ NLR LNR และ LRN ซึ่งลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ(Recursive) ซึ่งขั้นตอนการท่องไปในแต่ละแบบมีดังนี้1. การท่องไปแบบพรีออร์เดอร์(Preorder Traversal)เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธีNLR มีขั้นตอนการเดินดังต่อไปนี้(1) เยือนโหนดราก(2) ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์(3) ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
โครงสร้างข้อมูล-ลิงค์ลิสต์-14/07/2552
ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่าง ๆ โดยมีพอยเตอร์เป็นตัวเชื่อมต่อ
แต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่งในแต่ละโนดจะประกอบไปด้วย 2 ส่วน คือData จะเก็บข้อมูลของอิลิเมนท์ และ
ส่วนที่สอง คือ Link Field จะทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 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หน้าที่ ทดสอบว่าลิสต์ว่างข้อมูลนำเข้า ลิสต์ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่างเป็นเท็จ ถ้าลิสต์ไม่ว่าง
10. กระบวนงาน destroy listหน้าที่ ทำลายลิสต์ข้อมูลนำเข้า ลิสต์ผลลัพธ์ ไม่มีลิสต์
แต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่งในแต่ละโนดจะประกอบไปด้วย 2 ส่วน คือData จะเก็บข้อมูลของอิลิเมนท์ และ
ส่วนที่สอง คือ Link Field จะทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 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หน้าที่ ทดสอบว่าลิสต์ว่างข้อมูลนำเข้า ลิสต์ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่างเป็นเท็จ ถ้าลิสต์ไม่ว่าง
10. กระบวนงาน destroy listหน้าที่ ทำลายลิสต์ข้อมูลนำเข้า ลิสต์ผลลัพธ์ ไม่มีลิสต์
โครงสร้างข้อมูล-เซ็ต-14/07/2552
โครงสร้างข้อมูลแบบเซ็ตเป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กันในภาษาซีจะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับในภาษาปาสคาลแต่สามารถใช้หลักการของการดำเนินงานแบบเช็ตมาใช้ได้วิธีการแก้ปัญหาเบื้องต้น- จะต้องกำหนดเซ็ตของผู้เรียนที่ลงทะเบียนเรียนในแต่ละวิชา- นำเซ็ตดังกล่าวที่ได้มาทำการ intersection กัน หากมีเซ็ตใดที่ทำการ intersect กันแล้ว มีข้อมูลสมาชิกในเซ็ตที่ซ้ำกันอยู่จะไม่สามารถจัดให้วิชาดังกล่าวอยู่ในวันเวลาเดียวกันได้ตัวอย่างดังกล่าวเป็นการนำแนวความคิดเรื่องการจัดการแบบเช็ตมาประยุกใช้งานโครงสร้างข้อมูลแบบสตริงสตริง (String) หรือ สตริงของอักขระ (CharacterString) เป็นข้อมูลที่ประกอบไปด้วยตัวอักษร ตัวเลขหรือเครื่องหมายเรียงติดต่อกันไปรวมทั้งช่องว่างการประยุกต์ใช้คอมพิวเตอร์ที่เกี่ยวกับข้อมูลที่เป็นสตริงมีการนำไปใช้สร้างโปรแกรมประเภทบรรณาธิการข้อความ(text editor) หรือโปรแกรมประเภทประมวลผลคำ (wordprocessing) ซึ่งมีการทำงานที่อำนวยความสะดวกหลายอย่างเช่น การตรวจสอบข้อความ การจัดแนวข้อความในแต่ละย่อหน้า และการค้นหาคำ เป็นต้นการกำหนดค่าคงตัวสตริงสามารถกำหนดได้ทั้งนอกและในฟังก์ชัน เมื่อกำหนดไว้นอกฟังก์ชัน ชื่อค่าคงตัวจะเป็นพอยเตอร์ชี้ไปยังหน่วยความจำที่เก็บสตริงนั้น เมื่อกำหนดไว้ในฟังก์ชัน จะเป็นพอยเตอร์ไปยังหน่วยความจำที่เก็บตัวมันเอง
09 สิงหาคม 2552
โครงสร้างข้อมูล-สเเตก-04/08/2009
สเเตก
สแตกเป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์(linear list) ที่สามารถนำข้อมูลเข้าหรือออกได้ทางเดียวคือส่วนบนของสแตกหรือ หรือเรียกว่า ท๊อปของสแตก (Top Of Stack) ซึ่งคุณสมบัติดังกล่าวเรียกว่า ไลโฟลิสต์ (LIFO list: Last-In-First-Out list) หรือ พูชดาวน์ลิสต์ (Pushdown List) คือสมาชิกที่เข้าลิสต์ที่หลังสุดจะได้ออกจากลิสต์ก่อน หรือ เข้าหลังออกก่อน การเพิ่มข้อมูลเข้าสแตกจะเรียกว่าพูชชิ่ง (pushing) การนำข้อมูลจากสแตกเรียกว่า ป๊อปปิ้ง (poping)
ส่วนประกอบของสแตก เราจะมีตัวแปรตัวหนึ่งที่ใช้เป็นตัวชี้สแตก(stack pointer ) เพื่อเป็นตัวชี้ข้อมูลที่อยู่บนสุดของสแตก ซึ่งจะทำให้สามารถจัดการข้อมูล ที่จะเก็บในสแตกได้ง่าย ดังนั้นโครงสร้างข้อมูลแบบสแตกจะแบ่งออกเป็น 2 ส่วนที่สำคัญ คือตัวชี้สแตก ( Stack Pointer ) ซึ่งมีหน้าที่ชี้ไปยังข้อมูลที่อยู่บนสุดของ สแตก ( Top stack )สมาชิกของสแตก ( Stack Element ) เป็นข้อมูลที่จะเก็บลงไปในสแตก ซึ่งจะต้องเป็นข้อมูลชนิดเดียวกัน เช่น ข้อมูลชนิดจำนวนเต็ม เป็นต้น
ปัญหาที่เกิดขึ้นกับสแตกคือขอผิดพลาดที่เกิดขึ้นซึ่งมีผลมาจากการจัดการสแตกมีดังนี้
สแตกเต็ม (Full Stack)
สแตกว่าง (Empty Stack)
สแตกเต็ม (Full Stack)
สแตกเป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์(linear list) ที่สามารถนำข้อมูลเข้าหรือออกได้ทางเดียวคือส่วนบนของสแตกหรือ หรือเรียกว่า ท๊อปของสแตก (Top Of Stack) ซึ่งคุณสมบัติดังกล่าวเรียกว่า ไลโฟลิสต์ (LIFO list: Last-In-First-Out list) หรือ พูชดาวน์ลิสต์ (Pushdown List) คือสมาชิกที่เข้าลิสต์ที่หลังสุดจะได้ออกจากลิสต์ก่อน หรือ เข้าหลังออกก่อน การเพิ่มข้อมูลเข้าสแตกจะเรียกว่าพูชชิ่ง (pushing) การนำข้อมูลจากสแตกเรียกว่า ป๊อปปิ้ง (poping)
ส่วนประกอบของสแตก เราจะมีตัวแปรตัวหนึ่งที่ใช้เป็นตัวชี้สแตก(stack pointer ) เพื่อเป็นตัวชี้ข้อมูลที่อยู่บนสุดของสแตก ซึ่งจะทำให้สามารถจัดการข้อมูล ที่จะเก็บในสแตกได้ง่าย ดังนั้นโครงสร้างข้อมูลแบบสแตกจะแบ่งออกเป็น 2 ส่วนที่สำคัญ คือตัวชี้สแตก ( Stack Pointer ) ซึ่งมีหน้าที่ชี้ไปยังข้อมูลที่อยู่บนสุดของ สแตก ( Top stack )สมาชิกของสแตก ( Stack Element ) เป็นข้อมูลที่จะเก็บลงไปในสแตก ซึ่งจะต้องเป็นข้อมูลชนิดเดียวกัน เช่น ข้อมูลชนิดจำนวนเต็ม เป็นต้น
ปัญหาที่เกิดขึ้นกับสแตกคือขอผิดพลาดที่เกิดขึ้นซึ่งมีผลมาจากการจัดการสแตกมีดังนี้
สแตกเต็ม (Full Stack)
สแตกว่าง (Empty Stack)
สแตกเต็ม (Full Stack)
01 กรกฎาคม 2552
โครงสร้างข้อมูล 02-06/23/2009
โครงสร้างข้อมูลเป็นวิธีการจัดเก็บข้อมูลในคอมพิวเตอร์เพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพ บ่อยครั้งที่การเลือกโครงสร้างข้อมูลที่เหมาะสมจะทำให้เราสามารถเลือกใช้ที่มีประสิทธิภาพไปพร้อมกันได้ การเลือกโครงสร้างข้อมูลนั้นโดยส่วนใหญ่แล้วจะเริ่มต้นจากการเลือกโครงสร้างข้อมูลที่ออกแบบเป็นอย่างดีจะสามารถรองรับการประมวลผลที่หนักหน่วงโดยใช้ทรัพยากรที่น้อยที่สุดเท่าที่จะเป็นไปได้ ทั้งในแง่ของเวลาและหน่วยความจำ
โครงสร้างข้อมูลแต่ละแบบจะเหมาะสมกับงานที่แตกต่างกัน และโครงสร้างข้อมูลบางแบบก็ออกแบบมาสำหรับบางงานโดยเฉพาะ อย่างเช่น ต้นไม้แบบบี
กระบวนการออกแบบ"โปรแกรมคอมพิวเตอร์" การเลือกโครงสร้างข้อมูลเป็นสิ่งสำคัญอันดับแรกที่ต้องคำนึงถึง ซึ่งจากการพัฒนาระบบงานใหญ่ๆได้แสดงให้เห็นว่า ความยากในการพัฒนาและประสิทธิภาพของระบบจะขึ้นอยู่กับโครงสร้างข้อมูลที่เลือกใช้อย่างมาก หลังจากตัดสินใจเลือกโครงสร้างข้อมูลที่จะใช้แล้วก็มักจะทราบถึงอัลกอริทึมที่ต้องใช้ได้ทันที แต่ในบางครั้งก็อาจจะกลับกัน คือ การประมวลผลที่สำคัญๆของโปรแกรมได้มีการใช้อัลกอริทึมที่ต้องใช้โครงสร้างข้อมูลบางแบบโดยเฉพาะ จึงจะทำงานได้เต็มประสิทธิภาพ ถึงอย่างไรก็ตาม ไม่ว่าจะเลือกโครงสร้างข้อมูลด้วยวิธีการใด โครงสร้างข้อมูลที่เหมาะสมก็เป็นสิ่งที่สำคัญมากอยู่ดี
โครงสร้างข้อมูลแต่ละแบบจะเหมาะสมกับงานที่แตกต่างกัน และโครงสร้างข้อมูลบางแบบก็ออกแบบมาสำหรับบางงานโดยเฉพาะ อย่างเช่น ต้นไม้แบบบี
กระบวนการออกแบบ"โปรแกรมคอมพิวเตอร์" การเลือกโครงสร้างข้อมูลเป็นสิ่งสำคัญอันดับแรกที่ต้องคำนึงถึง ซึ่งจากการพัฒนาระบบงานใหญ่ๆได้แสดงให้เห็นว่า ความยากในการพัฒนาและประสิทธิภาพของระบบจะขึ้นอยู่กับโครงสร้างข้อมูลที่เลือกใช้อย่างมาก หลังจากตัดสินใจเลือกโครงสร้างข้อมูลที่จะใช้แล้วก็มักจะทราบถึงอัลกอริทึมที่ต้องใช้ได้ทันที แต่ในบางครั้งก็อาจจะกลับกัน คือ การประมวลผลที่สำคัญๆของโปรแกรมได้มีการใช้อัลกอริทึมที่ต้องใช้โครงสร้างข้อมูลบางแบบโดยเฉพาะ จึงจะทำงานได้เต็มประสิทธิภาพ ถึงอย่างไรก็ตาม ไม่ว่าจะเลือกโครงสร้างข้อมูลด้วยวิธีการใด โครงสร้างข้อมูลที่เหมาะสมก็เป็นสิ่งที่สำคัญมากอยู่ดี
29 มิถุนายน 2552
สรุปโครงสร้างข้อมูล-อาเรย์ 03-30/06/2009
ตัวแปรอาเรย์ สามารถเก็บข้อมูลหลายๆข้อมูลไว้ได้โดยไม่ต้องใช้ตัวแปรหลายตัว เราสามารถสร้างตัวแปรอาเรย์ของข้อมูลชนิดต่างๆได้ไม่ว่าจะเป็นอาเรย์แบบ int, char, float ลงไป มันก็ไม่เก็บค่าอะไรไว้จะเป็นช่องว่างๆไปโดยอัตโนมัติอาเรย์ของข้อมูลชนิด char คือตัวแปรสตริงตัวแปรอาเรย์ของข้อมูลชนิด char อีกนัยหนึ่งก็คือตัวแปรแบบข้อความหรือตัวแปรสตริง(String) ตัวแปรสตริงคือการนำเอาตัวแปรแบบ char มาเรียงต่อๆกัน ซึ่งตัวแปร char ที่เรียงต่อกันก็เรียกได้ว่าเป็นตัวแปรอาเรย์ของข้อมูลชนิด char นั่นเอง จึงสรุปได้ว่า ”สตริง” กับ “อาเรย์ของ ข้อมูลชนิด char” คือสิ่งเดียวกันตัวแปรอาเรย์ของข้อมูลชนิด char จะแตกต่างจากอาเรย์ของ int, double หรือแบบอื่นๆ เพราะว่าสมาชิกตัวสุดท้ายของอาเรย์แบบ char จะใช้เก็บรหัสสิ้นสุดข้อความ ด้วยเหตุนี้ถ้าเราประกาศตัวแปรอาเรย์แบบ char เพื่อเก็บข้อความ เราจะต้องประกาศอาเรย์ให้มีขนาดมากกว่าจำนวนตัวอักษรของข้อความที่ต้องการเก็บอย่างน้อย 1 ตัวอักษรสมมติว่าเราประกาศตัวแปรอาเรย์แบบ char เพื่อที่จะเก็บคำว่า “Computer” ซึ่งมีทั้งหมด 8 ตัวอักษร เราจะต้องประกาศตัวแปรอาเรย์แบบ char ที่มีขนาด 9 ตัวอักษร นอกจากนี้การกำหนดค่าให้กับตัวแปรอาเรย์แบบ char หรือตัวแปรสตริงนี้ยังสามารถทำไปพร้อมกับการประกาศตัวแปรได้เลย ดังนี้char s[5] = “GIRL”;หรือchar s[5] = { ‘G’, ‘I’, ‘R’, ‘L’ }การนำค่าในอาเรย์ไปใช้การใช้งานตัวแปรอาเรย์แบบ char นั้น โดยมากจะใช้รับค่าที่เป็นข้อความ เช่นชื่อ, เบอร์โทรศัพท์, ที่อยู่, อีเมล์, ชื่อเว็ปไซท์ เป็นต้น
27 มิถุนายน 2552
DTS02-23/06/2009
#include <stdio.h>
#include<string.h>
void main()
{
struct profile
{
char Name[20];
char Surname[20];
char Nickname[20];
char Haircolour[20];
char Alias[5];
char Hobby[20];
int Age;
float Salary;
unsigned long int hight;
unsigned int weight;
};
struct profile mom;
strcpy(mom.Name,"Srisamon");
strcpy(mom.Surname,"Laiwan");
strcpy(mom.Nickname,"Kob");
strcpy(mom.Haircolour,"Glod");
strcpy(mom.Alias,"Mauy");
strcpy(mom.Hobby,"Singsong");
mom.Age=45;
mom.Salary=15000.50;
mom.hight=155;
mom.weight=55;
printf(" Name:%s\n\n",mom.Name);
printf(" Surname:%s\n\n",mom.Surname);
printf(" Nickname : %s\n\n",mom.Nickname);
printf(" Haircolour : %s\n\n",mom.Haircolour);
printf(" Alias : %s\n\n",mom.Alias);
printf(" Hobby : %s\n\n",mom.Hobby);
printf(" Age:%d\n\n",mom.Age);
printf(" Salary:%.f\n\n",mom.Salary);
printf(" Hight : %d cm.\n\n",mom.hight);
printf(" Weight : %d km.\n\n",mom.weight);
}
#include<string.h>
void main()
{
struct profile
{
char Name[20];
char Surname[20];
char Nickname[20];
char Haircolour[20];
char Alias[5];
char Hobby[20];
int Age;
float Salary;
unsigned long int hight;
unsigned int weight;
};
struct profile mom;
strcpy(mom.Name,"Srisamon");
strcpy(mom.Surname,"Laiwan");
strcpy(mom.Nickname,"Kob");
strcpy(mom.Haircolour,"Glod");
strcpy(mom.Alias,"Mauy");
strcpy(mom.Hobby,"Singsong");
mom.Age=45;
mom.Salary=15000.50;
mom.hight=155;
mom.weight=55;
printf(" Name:%s\n\n",mom.Name);
printf(" Surname:%s\n\n",mom.Surname);
printf(" Nickname : %s\n\n",mom.Nickname);
printf(" Haircolour : %s\n\n",mom.Haircolour);
printf(" Alias : %s\n\n",mom.Alias);
printf(" Hobby : %s\n\n",mom.Hobby);
printf(" Age:%d\n\n",mom.Age);
printf(" Salary:%.f\n\n",mom.Salary);
printf(" Hight : %d cm.\n\n",mom.hight);
printf(" Weight : %d km.\n\n",mom.weight);
}
23 มิถุนายน 2552
ประวัติ
สมัครสมาชิก:
บทความ (Atom)