วันอังคารที่ 1 มีนาคม พ.ศ. 2554

สรุปการฝึกประสบการณ์วิชาชีพ

ประโยชน์ที่ได้รับจากการฝึกงาน

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

วันจันทร์ที่ 28 กุมภาพันธ์ พ.ศ. 2554

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 18

การปฏิบัติ
วันที่ 28 งานเอกสารส่งเซนต์ และงานถ่ายเอกสาร


ปัญหา
งานเอกสารส่งเซนต์ต้องทำแข่งกับเวลา เนื่องจากกระผมก็ต้องรีบเคลียร์เอกสารให้เสร็จก่อนที่จะกลับบ้าน

การแก้ไขปัญหา
พยายามทำและไม่เร่งรีบจนทำให้ดูวุ่นวาย และเคลียร์ไปทีละอย่างจนงานสำเร็จ

ประโยชน์ที่ได้รับ
ได้รู้จักการทำงานเป็นขั้นตอน ไม่ใจร้อน และทำให้พี่ที่คุมฝึกประทับใจ

วันพฤหัสบดีที่ 24 กุมภาพันธ์ พ.ศ. 2554

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 17

การปฏิบัติ
วันที่ 21 งานเอกสารส่งเซนต์ งานถ่ายเอกสาร และส่ง Fax ใบเสนอราคา
วันที่ 22 งานเอกสารส่งเซนต์ งานถ่ายเอกสาร และนำส่งใบ O.T. ของพนักงาน
วันที่ 23 งานเอกสารส่งเซนต์ งานถ่ายเอกสาร ส่ง Fax และไปอัพสมุดบัญชีที่ธนาคารกสิกรไทย
วันที่ 24 งานเอกสารส่งเซนต์ Scan งานเอกสาร และส่งไปรษณีย์
วันที่ 25 งานถ่ายเอกสาร เบิกวัสดุสิ้นเปลืองเพื่อมาใช้ใน office


ปัญหา
ในการส่ง Fax เครื่อง Fax เกิดขัดข้องจึงส่งงานไม่ได้ และการนำส่งใบ O.T. ต้องตามเก็บกับพนักงานแล้วนำส่งให้หัวหน้าที่พนักงานสังกัดเซนต์ก่อน ค่อยเอาไปให้เจ้าหน้าที่ฝ่ายธุรการคีย์ข้อมูล และงานเอกสารส่งเซนต์เนื่องจากผู้จัดการไม่อยู่ที่โต๊ะทำงานของท่านจึงไม่สามารถให้ท่านเซนต์เอกสารได้ และได้ทำการเบิกวัสดุสิ้นเปลืองที่ Store เพราะต้องใช้เวลาในการเข้าไปและระยะทางไกล

การแก้ไขปัญหา
โทรแจ้งให้ช่างมาซ่อม แล้วค่อยทำการส่ง Fax ส่วนการนำส่งใบ O.T. ก็ต้องเดินเก็บตามลำดับความสำคัญ และงานเอกสารส่งเซนต์ก็ต้องรอให้ท่านกลับมาที่โต๊ะทำงานก่อนแล้วค่อยให้ท่านเซนต์ ส่วนการไปเบิกของก็ใช้จักรยานในการเดินทางเข้าไป

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

วันพุธที่ 23 กุมภาพันธ์ พ.ศ. 2554

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 16

การปฏิบัติ
วันที่ 14 คีย์ข้อมูลการลาของพนักงานต่อจากวันที่ 11 และงานเอกสารส่งเซนต์
วันที่ 15 หาข้อมูลเพื่อทำรายงานให้พี่ที่คุมฝึกงาน และจ่ายค่าซ่อมรถยนต์ของบริษัท
วันที่ 16 หาข้อมูลเพื่อทำรายงานให้พี่ที่คุมฝึกงานต่อจากวันที่ 15 จัดทำรายงานให้พี่ที่คุมฝึกงาน และงานเอกสารส่งเซนต์
วันที่ 17 จัดทำรายงานให้พี่ที่คุมฝึกงาน ปริ้นรายงานที่ทำ และ Write รายงานใส่แผ่น CD


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

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

ประโยชน์ที่ได้รับ
ได้อธิบายถึงเหตุผลที่ต้องทำงานช้าและได้ปรึกษากันระหว่างพี่ที่คุมฝึกงานกับตัวผมแล้วพี่เขาก็ให้อภัยที่ทำช้า และได้มีความพยายามในการทำงานและความอดทนต่องานที่ได้รับมอบหมาย

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 15

การปฏิบัติ
วันที่ 7 งานเอกสารส่งเซนต์ งานถ่ายเอกสาร และ Write เพลงบายศรีสู่ขวัญจำนวน 2 แผ่น
วันที่ 8 งานเอกสารส่งเซนต์ งานถ่ายเอกสาร และสำรวจการยื่นเสียภาษีของพนักงาน และสำรวจชุดของพนักงาน
วันที่ 9 งานเอกสารส่งเซนต์ เช็คเลขกุญแจประจำตำแหน่งของหัวหน้างาน เบิกเงินค่าล้างรถประจำตำแหน่งของหัวหน้างานมาให้ท่าน และไปเบิกแผ่น CD มา Write เพลงให้พี่ที่คุมฝึก
วันที่ 10 งานเอกสารส่งเซนต์ งานถ่ายเอกสาร และคีย์ข้อมูลการลาของพนักงาน
วันที่ 11 งานเอกสารส่งเซนต์ คีย์ข้อมูลการลาของพนักงานทำต่อเนื่องจากวันที่ 10 และงานถ่ายเอกสาร

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

การแก้ไขปัญหา
ใช้เข็มแย่ไปที่รูเล็ก ๆ ข้าง ๆ กับปุ่มกดเพื่อเปิดถาดออก แล้วทำการ Write ต่อไป ส่วนการไปสำรวจผู้เสียภาษีต้องใช้จักรยานปั่นไปตามจุดต่าง ๆ ที่พนักงานทำงานอยู่ แล้วเก็บเอาข้อมูลมาแจ้งฝ่ายธุรการ ส่วนการคีย์ข้อมูลการลาของพนักงานนั้นต้องรอทำวันถัดไป

ประโยชน์ที่ได้รับ
ได้ทำงานที่ได้รับมอบหมายจนสำเร็จและมีความพยายามในการทำงาน มีความอดทนต่อหน้าที่ที่ได้รับมอบหมาย

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 14

การปฏิบัติ
วันที่ 31 งานเอกสารส่งเซนต์ ถ่ายเอกสารใบกำกับภาษี และนำใบกำกับภาษีมาติดกับกระดาษ A4 และทำการ Write งานให้พี่ที่คุมฝึกงานใส่ แผ่น CD – R
เดือนกุมภาพันธ์ วันที่ 1 เดือนกุมภาพันธ์ งานเอกสารส่งเซนต์ ถ่ายเอกสาร และ Scan งานเอกสาร
วันที่ 2 งานเอกสารส่งเซนต์ และงานถ่ายเอกสาร
วันที่ 3 งานเอกสารส่งเซนต์ และงานถ่ายเอกสาร
วันที่ 4 งานเอกสารส่งเซนต์ และงานถ่ายเอกสาร


ปัญหา
งานเอกสารส่งเซนต์เนื่องจากเอกสารบางอันยังไม่ได้เซนต์เพราะพนักงานจำนวนหนึ่งไปงานศพของพ่อพนักงานอีกคนจึงไม่สามารถเซนต์เอกสารได้ครบ และพอมีพนักงานมาครบท่านประธานก็ติดธุรข้างนอกพอดี

การแก้ไขปัญหา
โทรถามพี่ที่คุมฝึกงานว่าจะทำอย่างไรดีแล้วพี่เขาก็บอกว่าต้องรอตาขั้นตอน

ประโยชน์ที่ได้รับ
ได้มีความรับผิดชอบจากงานที่ได้รับมอบหมายให้ทำจำงานสำเร็จ

วันพุธที่ 16 กุมภาพันธ์ พ.ศ. 2554

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 13

การปฏิบัติ
วันที่ 24 คีย์ข้อมูลพนักงานที่ลาลงในบันทึกประจำวันประจำเดือน มกราคม พ.ศ. 2554 งานถ่ายเอกสาร และเอกสารส่งเซนต์
วันที่ 25 ติดตั้งเครื่อง Scan และลง Driver แล้วทำการ Scan งานเอกสาร
วันที่ 26 ลง Program Winamp, FVL player และ Gom player ให้พี่ที่คุมฝึก และไปแจกแบบประเมินแม่บ้าน
วันที่ 27 งานถ่ายเอกสาร และไปเปิดโต๊ะรับสมัครงานที่โรงเรียนการอาชีพร้อยเอ็ดกับพี่ที่คุมฝึกงาน ในนิทัศการวันนัดพบแรงงาน
วันที่ 28 เดินเก็บเงินบริจาคเพื่อให้แก่พนักงานที่บ้านโดนไฟไหม้ และเก็บเงินบริจาคโบนัสของพนักงานทั้งหมดที่ไม่ใช่ลูกจ้างและแม่บ้าน และทำการ Write เพลงบายศรีสู่ขวัญให้พี่ที่คุมฝึก


ปัญหา
คีย์ข้อมูลการลาของพนักงานเนื่องจากข้อมูลที่มีนั้นยังไม่ครบเดือน และลง Driver เครื่อง Scan ปัญหาคือมี option เยอะมากไม่รู้จะเลือกอันไหน และต้องลงโปรแกรม ในการเล่น File VDO ต่าง ๆ ซึ่งมีมากมาย และต้องเดินเก็บเงินบริจาคเพื่อให้พนักงานที่บ้านโดนไฟไหม้ และเก็บเงินบริจาคโบนัสด้วย

การแก้ไขปัญหา
ก็ต้องทำตั้งแต่วันที่ 1 – แค่วันที่ 24 มกราคม ส่วนการลง Driver ผมก็ทำการลงทั้งหมดเพราะจะได้ให้มันเต็มรูปแบบ ส่วนลงโปรแกรมที่เล่น File VDO นั้นก็เลือกเอาเฉพาะที่นิยมกัน

ประโยชน์ที่ได้รับ
ได้รู้จักการคีย์ข้อมูลการลาของพนักงานว่าต้องทำอย่างไร และได้นำความรู้ที่มีอยู่มาใช้ในการลงโปรแกรมและ Driver เครื่อง Scan

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 12

การปฏิบัติ
วันที่ 17 พิมพ์ชื่อ ที่อยู่ จ่าหน้าซองจดหมาย และทำการปริ้นโดยปริ้นใส่หน้าซองจดหมายโดยตรง
วันที่ 18 งานถ่ายเอกสาร และตามพี่ที่คุมฝึกไปแจก ส.ค.ส ตามสำนักงาน และหน่วยงานต่าง ๆ ทั่วอำเภอเมืองร้อยเอ็ด
วันที่ 19 รับแจ้งจากพี่ที่คุมฝึกให้โทรตามช่างมาเอาเศษขยะออกจากท่อระบายน้ำเนื่องจากท่ออุดตัน รับ Fax และนำส่งที่ Store และเก็บรวบรวม OT พนักงานและนำส่ง
วันที่ 20 อัพโหลดรูปภาพลงในคอมพิวเตอร์ ส่งรูปภาพที่อัพโหลดไปตาม Email ต่าง ๆ ที่พี่เขียนไว้ให้ เอาเอกสารที่ผู้จัดการงานบำรุงรักษาสั่งปริ้นไว้ไปส่งท่าน
วันที่ 21 คีย์ข้อมูลพนักงานที่ลาลงในบันทึกประจำเดือน ธันวาคม รับเบิกเงินแก่ผู้ที่มาขอเบิกเพื่อไปเติมน้ำมันรถยนต์

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


การแก้ไขปัญหา
ค่อย ๆ พิมพ์ไปเรื่อย ๆ จนสำเร็จ และปริ้นโดยการตั้งค่ากระดาษแล้วทำการปริ้น

ประโยชน์ที่ได้รับ
มีความพยายามในการทำงานและรับผิดชอบต่อหน้าที่การงานของตัวเอง

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 11

การปฏิบัติ
วันที่ 10 งานเอกสารส่งเซนต์ จ่ายเงินพนักงานที่มาขอเบิกและให้เซนต์ชื่อผู้เบิก ไปซื้อกระเช๊าผลไม้เยี่ยมผู้ป่วย และติดใบกำกับภาษีกับกระดาษ A4
วันที่ 11 ปริ้นใบขอเลิกค่าล่วงเวลาของพนักงานทุกคน ถ่ายเอกสารใบเบิกค่าล่วงเวลาคนละ 50 ชุด และตัดแบ่งครึ่ง ซึ่งแต่ละใบจะมีอยู่ 2 ส่วน งานเอกส่งเซนต์ ทำตารางเบิกน้ำมันด้วย Excel
วันที่ 12 นำส่งใบลาพนักงาน ส่งบิลน้ำมันให้ทำใบขอเบิกค่าน้ำมัน ตามแจกจดหมาย และติดประกาศ
วันที่ 13 คัดแยกอุปกรณ์ช่วยช่างและจัดเก็บให้เป็นระเบียบ ถ่ายเอกสาร และปริ้นงาน
วันที่ 14 คัดแยกอุปกรณ์ช่างต่อจากวันที่ 13 และจัดเก็บให้เป็นระเบียบ และถ่ายเอกสาร


ปัญหา
การคัดแยกอุปกรณ์ช่างช่วยช่างเนื่องจากพี่เค้าโทรตามให้ไปช่วย แต่ว่าผมก็ไม่มีความรู้เรื่องอุปกรณ์ช่างเหล่านั้นเลยว่าต้องเอาไปไว้ที่ไหนเก็บอย่างไร

การแก้ไขปัญหา
ถามช่างและทำตามที่เขาบอกว่าต้องแยกอย่างไร และเก็บไว้ที่ไหน

ประโยชน์ที่ได้รับ

ได้มีความรู้เรื่องอุปกรณ์ช่างพอสมควร


สรุปงานที่ปฏิบัติ สัปดาห์ที่ 10

การปฏิบัติ
เดือนมกราคม 2554 วันที่ 4 ทำการส่ง Fax ถ่ายเอกสาร เคลือบบัตร เอกสารส่งเซนต์ และทำการแจกบัตรประกันสุขภาพแก่พนักงาน
วันที่ 5 ทำหมายเลข Asset แล้วตัด และเคลือบ ตามติดหมายเลข Asset ตามอุปกรณ์สำนักงาน เอกสารส่งเซนต์ และถ่ายเอกสาร
วันที่ 6 ตามติดหมายเลข Asset ตามอุปกรณ์สำนักงานต่าง ๆ มีงานเอกสารส่งเซนต์ ถ่ายเอกสาร และติดใบกำกับภาษีกับกระดาษ A4
วันที่ 7 งานเอกสารส่งเซนต์ ติดใบกำกับภาษีกับกระดาษ A4 ส่ง Fax ถ่ายเอกสาร และ Scan งานเอกสาร


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

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


ประโยชน์ที่ได้รับ

-

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 9

การปฏิบัติ
วันที่ 26 ถ่ายเอกสาร เอกสารส่งเซนต์ ติดใบกำกับภาษีกับกระดาษ A4 และไปกดเงินที่ธนาคารกสิกรไทย
วันที่ 27 ถ่ายเอกสาร ติดใบกำกับภาษีกับกระดาษ A4 ส่ง Fax และคอยรับโทรศัพท์ติดต่องาน
วันที่ 28 จัดสถานที่เพื่อทำกิจกรรมแข่งกีฬาสี และวันปีใหม่
วันที่ 29 กิจกรรมแข่งขันกีฬาภายใน และงานวันปีใหม่
วันที่ 30 เก็บสถานที่ และทำความสะอาดพื้นที่ที่จัดกิจกรรม

ปัญหา
วันที่ 26 ซึ่งเป็นวันหยุดแต่ก็ต้องมาอีกแต่ก็ไม่ได้ทำอะไรมากแค่ช่วยงานเอกสารนิดหน่อย และต้องจัดสถานที่เพื่อทำการแข่งขันกีฬาภายใน และงานปีใหม่ด้วยจึงต้องกลับเกินเวลาบ้าง


การแก้ไขปัญหา
ต้องรับผิดชอบต่องานที่ตัวเองต้องทำ การโทรบอกที่บ้านว่าต้องกลับช้ากว่าปกติ

ประโยชน์ที่ได้รับ

ได้มีความรับผิดชอบในหน้าที่ของตัวเอง

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 8

การปฏิบัติ
วันที่ 20 ซื้อสติกเกอร์มาทำป้าย ถ่ายเอกสาร เอกสารส่งเซนต์ และทำการติดใบกำกับภาษีกับกระดาษ A4
วันที่ 21 ปริ้นงานที่พี่เขาฝากให้ปริ้น เบิกวัสดุสิ้นเปลือง งานถ่ายเอกสาร เอกสารส่งเซนต์ ส่ง Fax ติดใบกำกับภาษีกับกระดาษ A4
วันที่ 22 กิจกรรมมอบกระติกน้ำร้อนโดยการให้ตัวแทนชาวบ้าน หมู่บ้านละ 5 คน ทั้งหมด 23 หมู่บ้านมารับกระติกน้ำร้อน และมอบทุนการศึกษาให้แก่นักเรียนของโรงเรียนที่อยู่ในชุมชนที่ตั้งโรงไฟฟ้า 2 โรงเรียน
วันที่ 23 ออกไปมอบกระติกน้ำร้อนให้ผู้ใหญ่บ้าน 21 หมู่บ้านเพราะจะได้นำไปมอบแก่ชาวบ้านที่ยากจนที่ไม่ได้มารับในวันที่ 22 กุมภาพันธ์
วันที่ 24 ออกไปมอบกระติกน้ำร้อนให้ผู้ใหญ่บ้านอีก 2 หมู่บ้านที่เหลือจากวันที่ 23 กุมภาพันธ์ เอกสารส่งเซนต์ ถ่ายเอกสาร และติดใบกำกับภาษีกับกระดาษ A4
วันที่ 25 ถ่ายเอกสาร เอกสารส่งเซนต์ ติดใบกำกับภาษีกับกระดาษ A4 ไปถอนเงินที่ธนาคารกสิกรไทย


ปัญหา
ไปซื้อสติ๊กเกอร์สี่มาทำป้ายคือซื้อมาแค่พอซ่อมแซมป้ายเก่าที่มันขาดไปแค่ไม่กี่ตัวอักษรปัญหาก็ต้องเลือกสีที่เหมือนกัน และไปเบิกวัสดุสำนักงานซึ่งมีน้ำหนักมายกมาคนเดียวไม่ไหว และวันที่ 25 เป็นวันเสาร์ซึ่งเป็นวันหยุดแต่ก็ต้องมาทำงานเพราะว่าทางโรงไฟฟ้าทำการ Shut Down ซึ่งต้องมากันทุกคนจึงไม่ได้หยุด

การแก้ไขปัญหา
หาซื้อสติ๊กเกอร์ที่สีคล้ายที่สุด และที่ไปเบิกวัสดุสำนักงานนั้นก็ใช้รถเข็นในการเคลื่อนย้าย วันที่ 25 ก็ต้องมาอีกแต่ก็ไม่ได้ทำอะไรมากแค่ช่วยงานเอกสารนิดหน่อย


ประโยชน์ที่ได้รับ

ได้ฝึกให้มีความรับผิดชอบต่องานที่ตนเองได้รับ และสามารถมาทำงานนอกเนือจากงานปกติได้

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 7

การปฏิบัติ
วันที่ 13 ถ่ายเอกสารใบกำกับภาษี เอกสารส่งเซนต์ ไปเบิกเงินที่ธนาคารกสิกรไทย และส่ง Fax
วันที่ 14 งานถ่ายเอกสาร เอกสารส่งเซนต์ และไปสำรวจความยากจนของชาวบ้านเพื่อที่จะได้รับมอบกระติกน้ำร้อนจากทางบริษัท
วันที่ 15 ถ่ายเอกสาร งานเอกสารส่งเซนต์ พิมพ์ชื่อหมู่บ้าน 23 หมู่บ้านที่อยู่ในตำบลเหนือเมือง ติดใบกำกับภาษีใส่กับกระดาษ A4
วันที่ 16 งานถ่ายเอกสาร เอกสารส่งเซนต์ ส่ง Fax และติดใบกำกับภาษีกับกระดาษ A4
วันที่ 17 งานถ่ายเอกสาร เอกสารส่งเซนต์ ติดใบกำกับภาษีกับกระดาษ A4


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

การแก้ไขปัญหา

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

ประโยชน์ที่ได้รับ
ได้รู้วิธีเข้าพบกับประธานโรงไฟฟ้า และได้รับประโยชน์จากการไปสำรวจชาวบ้านในครั้งนี้ด้วย

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 6

การปฏิบัติ
วันที่ 7 ถ่ายเอกสารใบกำกับภาษี เพือ ส่ง Fax ทำงานเอกสารส่งเซนต์ สแกนงาน ส่ง Fax และถ่ายเอกสารใบกำกับภาษี
วันที่ 8 Write รูปถ่ายงานสัมมนา ลงแผ่น CD-R ถ่ายเอกสาร เอกสารส่งเซนต์ และส่ง Fax
วันที่ 9 ถ่ายเอกสาร ปริ้นงานโดยการสั่งปริ้นที่เครื่องปริ้นสี เอกสารส่งเซนต์ และทำกิจกรรมงาน Safety day ร่วมกับทางบริษัท


ปัญหา
ทำงานเอกสารส่งเซนต์เนื่องจากเอกสารมีจำนวนเยอะมาก และได้ทำการ Write รูปลงในแผ่น CD ปัญหาก็คือ รูปมีจำนวนเยอะและความจุของแผ่น CD ก็ไม่พอ และมีกิจกรรมวัน Safty Day มีการให้ค้นหาคำตอบภายในงานและและต้องหาทุกคน

การแก้ไขปัญหา
งานเอกสารส่งเซนต์ที่มีเยอะก็ค่อย ๆ ทำไปเรื่อย ๆ และปรึกษาพี่ที่คุมฝึกงานไปด้วย ส่วนเรื่องของการ Write รูปนั้นก็ต้อง Write สงในแผ่น CD 2 แผ่นถึงจะทำการ Write ได้ครบทุกรูป กิจกรรมวัน Safty Day ก็ค่อย ๆ หาคำตอบจากบอร์ดแล้วก็นำส่ง

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

วันศุกร์ที่ 3 ธันวาคม พ.ศ. 2553

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 5

การปฏิบัติ
วันที่ 29 Run หมายเลข Purchase Requisition ถ่ายเอกสาร เอาเอกสารไปให้ผู้จัดการโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์ สแกนงาน และรับโทรศัพท์
วันที่ 30 ไรท์รูป วันสัมมนา ไปอัพบุ๊กที่ธนาคารกสิกรไทย และเอาเอกสารไปให้ผู้จัดการโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์
เดือนธันวาคม
วันที่ 1 สแกนงานเอกสาร ทำงานเอกสารส่งให้ผู้จัดการโรงไฟฟ้าเซนต์ ไปโอนเงินทีธนาคารกสิกรไทย ถ่ายเอกสาร และส่ง Fax
วันที่ 2 ไปทำการสำรวจชาวบ้าน บ้านโนนงามเพื่อทำการแจกกระติกน้ำร้อน ถ่ายรูป พิมพ์รายชื่อชาวบ้านที่จะได้รับแจก เช็คเมล์รอรับใบ Pay In และ Print ในใบ Pay In ไปส่งที่ร้านชัยเจริญแทรกเตอร์
วันที่ 3 รับโทรศัพท์ ไปรับเอกสารสำเนาบัตรประจำตัวประชาชน กับสำเนาทะเบียนบ้านมาเพื่อเป็นหลักฐานเพื่อรอรับกระติกน้ำร้อน และรับ Fax


ปัญหา
พี่ที่คุมฝึกให้ Run หมายเลข Purchase Requisition และให้ Write รูปงานสัมมนาซึ่งในเครื่องพี่ที่คุมฝึกไม่มีโปรแกรม Nero และได้พิมพ์รายชื่อชาวบ้านที่จะได้รับแจกกระติกน้ำร้อนซึ่งรายชื่อมีมากต้องใช้เวลาในการพิมพ์นาน

การแก้ไขปัญหา
ให้พี่ที่คุมฝึกงานสอนวิธีการ Run หมายเลข Purchase Requisition และก็มาทำต่อ ส่วนการ Write รูปงานสัมมนานั้น ผมก็ทำการลงโปรแกรมให้พี่แล้วก็ทำการ Write ต่อไป ส่วนการพิมพ์รายชื่อชาวบ้านก็ค่อย ๆ พิมพ์ไปเรื่อย ๆ จนงานเสร็จ

ประโยชน์ที่ได้รับ
รู้จักวิธีการ Run หมายเลข Purchase Requisition และได้มีความพยายามในการพิมพ์งานที่มีจำนวนเยอะและใช้เวลาในการพิมพ์นาน

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 4

การปฏิบัติ
วันที่ 22 ไปถอนเงิน ไปจ่ายค่าเช่าห้องที่โรงแรมร้อยเอ็ด ซิตี้ ถ่ายเอกสาร เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์
วันที่ 23 พิมพ์แบบฟอร์มใบสำคัญรับเงิน ถ่ายเอกสาร เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์
วันที่ 24 ไปซื้อผลไม้ ไว้สำหรับทำกินกรรม ลงแขกเกี่ยวข้าว ณ ทุ่งนา ข้างโรงไฟฟ้าร้อยเอ็ด กรีน ทำกิจกรรมลงแขกเกี่ยวข้าวใจช่วงบ่าย
วันที่ 25 ซื้อผ้าเย็นเตรียมพร้อมสำหรับแข่งกีฬาร้อยเอ็ด กรีน คัพ สัปดาห์สุดท้าย เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์ ถ่ายเอกสาร ส่ง Fax.
วันที่ 26 ตรวจสอบรายชื่อนักกีฬา ที่ยิงประตูสูงสุด ในการแข่งขันฟุตบอล ร้อยเอ็ด กรีน คัพ ครั้งที่ 2 ว่ารายชื่อนักกีฬาถูกต้องกับสำเนาบัตรประจำตัวประชาชนหรือไม่ จัดบอร์ด เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์
วันที่ 27 ทีมงาน Staf ในการจัดแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2
วันที่ 28 ทีมงาน Staf ในการจัดแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2 เป็นนัดชิงชนะเลิศ และวันสุดท้ายของการแข่งขันกีฬาร้อยเอ็ด กรีน คัพ ครั้งที่ 2


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

การแก้ไขปัญหา
ไปขอใบกำกับภาษีที่โรงแรมร้อยเอ็ด ซิตี้ ก็ให้รถตู้พาไป ส่วนการร่วมกิจกรรมลงแขกเกี่ยวข้าวซึ่งมีน้ำเยอะทางโรงไฟฟ้ามีรองเท้าบู๊ทให้เพื่อป้องกันไม่ให้เท้าเราเปียกน้ำ

ประโยชน์ที่ได้รับ
ได้รู้จักสถานที่ต่าง ๆ และได้ทำกิจกรรมร่วมกันภายในโรงไฟฟ้าและเจ้าของนา

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 3

การปฏิบัติ
วันที่ 15 ได้ทำการส่ง Fax. แล้วไปโอนเงิน, ถอนเงิน แล้วกลับมาติดใบเสร็จกับใบกับกำภาษีในกระดาษ A4 แล้วเอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์
วันที่ 16 ไปโอนเงิน ส่ง Fax. ไปรับใบเสร็จค่าห้องพักที่โรงแรมเพชรรัตน์ แล้วไปจ่ายค่าไฟที่การไฟฟ้าส่วนภูมิภาค และถ่ายเอกสาร
วันที่ 17 จ่ายค่าเช่ารถเครนยกของ แล้วไปส่งไปรษณีย์ แล้วกลับมาถ่ายเอกสาร เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์
วันที่ 18 ไปเปลี่ยนที่อยู่ใบเสร็จ ที่ร้าน ร้อยเอ็ดกีฬาภัณฑ์ แล้วไปจ่ายค่ากระจกที่ร้าน ธนากรกระจก-อลูมิเนียม จ่ายค่าเช่าห้องโรงแรมเพชรรัตน์ เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์ แล้วถ่ายเอกสาร
วันที่ 19 เอาเอกสารไปให้ประธานโรงไฟฟ้าร้อยเอ็ด กรีน เซนต์ ถ่ายเอกสาร ส่ง Fax. ติดใบกำกับภาษีที่กระดาษ A4 ตรวจสอบรายชื่อนักกีฬา ที่ยิงประตูสูงสุด ในการแข่งขันฟุตบอล ร้อยเอ็ด กรีน คัพ ครั้งที่ 2 ว่ารายชื่อนักกีฬาถูกต้องกับสำเนาบัตรประจำตัวประชาชนหรือไม่
วันที่ 20 เป็นทีมงาน Staf ในการจัดแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2
วันที่ 21 เป็นทีมงาน Staf ในการจัดแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2


ปํญหา
ได้ทำการส่ง Fax และไม่รู้วิธีการใช้เครื่อง Fax และไปโอนเงินด้วยบัตร ATM แต่ว่าไม่รู้ว่าบัตรที่จะโอนไปนั้นเป็นแบบออมทรัพย์ หรือกระแสรายวัน และไปเปลี่ยนชื่อใบเสร็จที่ร้านร้อยเอ็ดกีฬาภัณฑ์ ซึ่งผมไม่เคยไป และต่อด้วยการไปจ่ายค่าเช่าห้องที่โรงแรมเพชรัตน์ผมก็ไม่เคยไปอยู่ดี

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

ประโยชน์ที่ได้รับ
ได้รูวิธีส่ง Fax และรู้จักวิธีการติดต่อกับทางโรงแรม

วันจันทร์ที่ 15 พฤศจิกายน พ.ศ. 2553

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 2

การปฏิบัติ
วันที่ 8 พอมาทำงานก็รอรับเอกสารการลาของพนักงานโรงไฟฟ้าร้อยเอ็ดกรีน และถ่ายเอกสารเพื่อทำหนังสือ จำนวน 8 เล่ม
วันที่ 9 พี่ผู้ดูแลการฝึกงานก็ให้ไปซื้อขนมเบรด และกลับมาถ่ายเอกสาร กับส่ง Fax.
วันที่ 10 เตรียมซ้อมแผนก๊าซรั่วในช่วงตอนเช้า และก็จัดอาหารให้แก่ผู้ที่มาทำแผนการซ้อม และรอเตรียมซ้อมแผนไฟไหม้ในช่วงบ่ายต่อ ช่วงซ้อมแผนไฟไหม้ ก็ได้อยู่ฝ่ายบริการกับพี่ที่ดูแลการฝึกงาน คอยบริการน้ำดื่มแก่พนักงานดับเพลิง พอเสร็จจากการซ้อมแผนก็มาเขียนที่อยู่ลงไปในใบเสร็จที่ยังไม่ได้เขียนลงไป
วันที่ 11 ทำบัตรพนักงานและถ่ายเอกสารกับส่ง Fax.
วันที่12 ไปโอนเงิน, ถอนเงินที่ธนาคารกสิกรไทย แล้วกลับมาจัดบอร์ดสำหรับการแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2 จัดบอร์ดเสร็จก็ได้ทำบัตรพนักงานลูกจ้างสัญญาจ้าง และเตรียมของสำหรับแข่งขันฟุตบอล ร้อยเอ็ด กรีน คัพ ครั้งที่ 2
วันที่ 13 เป็นทีมงาน Staf ในการจัดแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2
วันที่ 14 เป็นทีมงาน Staf ในการจัดแข่งขันฟุตบอลร้อยเอ็ด กรีน คัพ ครั้งที่ 2


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


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

ประโยชน์ที่ได้รับ
รู้จักวิธีการใช้เครื่องถ่ายเอกสาร และขั้นตอนการเบิกของที่ Store

สรุปงานที่ปฏิบัติ สัปดาห์ที่ 1

การปฏิบัติ
วันที่ 1 พี่ผู้ดูแลการฝึกงานเค้าให้ปริ้นงานให้ แล้วก็ไปโอนเงินที่ธนาคารกสิกรไทย แล้วไปยื่นจดหมายขอใช้สถานที่ สนามกีฬาโรงเรียนบ้านหนองนาสร้างเพื่อใช้ในการแข่งขันฟุตบอล ระหว่างทีม eggo ร้อยเอ็ด กับ ทีม eggo ระยอง และกลับมาพี่เขาก็ให้พิมพ์วันที่ในใบเสร็จ
วันที่ 2 ก็ได้ทำการตรวจเช็คสรุปใบลาของพนักงานโรงไฟฟ้าร้อยเอ็ดกรีน แล้วไปถอนเงินที่ธนาคารกสิกรไทย พอกลับมาก็มาติดใบเสร็จเงินสดกับกระดาษ A4 แล้วก็ไปถ่ายเอกสาร
วันที่ 3 ก็ได้ทำการติดใบเสร็จเงินสดกับกระดาษ A4 แล้วก็ไปถ่ายเอกสาร
วันที่ 4 ได้ไปส่งหนังสือขอยืมใช้ เครื่องฉาย Projector ที่อบต.ตำบลเหนือเมือง แล้วไปเบิกเงินต่อที่ธนาคารกสิกรไทย แล้วไปซื้อหมูเพื่อที่จะมาทำเป็นอาหารเลี้ยงแขกที่มาสัมมนา ที่ร้อยเอ็ดกรีน แล้วไปเตรียมสถานที่ สำหรับแข่งขันฟุตบอลระหว่างทีม eggo ร้อยเอ็ด กับ ทีม eggo ระยอง ตอนเย็นมีการเลี้ยงฉลองกันกับแขกที่มาสัมมนาและนักฟุตบอลทั้ง 2 ทีม

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

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

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

สรุปสิ่งที่ได้จากการเรียนการเตรียมฝึกประสบการณ์วิชาชีพบริหารธุรกิจ 3

1. ทำให้เราได้ฝึกการเป็นคนที่มีวินัยในตัวเอง ตรงต่อเวลารู้จักการประพฤติปฏิบัติการวางตัวที่ดีต่อสังคม

2. ฝึกให้เป็นคนตรงต่อเวลาและการแต่งกายที่ถูกต้องตามระเบียบของมหาวิทยาลัย มีความสุภาพเรียบร้อย ทั้งเครื่องแต่งกายและหน้าตา

3. ทำให้เราได้รับความรู้และประสบการณ์ต่างๆ มากมายจากวิทยากรที่มาบรรยาย ไม่ว่าจะเป็นเรื่องของคุณธรรมจริยธรรมว่าจะต้องประพฤติปฏิบัติตัวอย่างไรเพื่อที่จะให้เป็นคนที่มีคุณธรรมจริยธรรม และเป็นคนดีของสังคม

4. ได้ฝึกทักษะการเขียน การสังเกต และการจดจำ จากวิทยากรที่ได้มาบรรยายในแต่ละครั้ง

5. ทำให้ได้ฝึกการปฏิบัติตัวที่ดีอยู่ตลอดเวลาไม่ว่าจะอยู่ที่บ้าน หรือในสังคมก็ตาม

6. ทำให้เราได้เตรียมความพร้อมที่จะไปปฏิบัติงานจริง เมื่อถึงเวลาทำงาน และสามารถนำทักษะที่ได้จากการเรียนรู้ไปใช้ได้จริง

วันอาทิตย์ที่ 20 กันยายน พ.ศ. 2552

สรุปการเรียน เรื่อง Summary B4 Final

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


การท่องไปในไบนารีทรีปฏิบัติการที่สำคัญในไบนารีทรี คือ การท่องไปในไบนารีทรี (Traversing Binary Tree) เพื่อเข้าไปเยือนทุก ๆโหนดในทรี ซึ่งวิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้งวิธีการท่องไปนั้นมีด้วยกันหลายแบบแล้วแต่ว่าต้องการลำดับขั้นตอนการเยือนอย่างไร โหนดที่ถูกเยือนอาจเป็นโหนดแม่ (แทนด้วย N)ทรีย่อยทางซ้าย (แทนด้วย L) หรือทรีย่อยทางขวา (แทนด้วย R)


มีวิธีการท่องเข้าไปในทรี 6 วิธี คือNLR LNR LRN NRL RNL และ RLNแต่วิธีการท่องเข้าไปไบนารีทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรกเท่านั้นคือNLR LNR และ LRN ซึ่งลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ(Recursive) ซึ่งขั้นตอนการท่องไปในแต่ละแบบมีดังนี้
1. การท่องไปแบบพรีออร์เดอร์(Preorder Traversal)เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรี
2.การท่องไปแบบอินออร์เดอร์
3. การท่องไปแบบโพสออร์เดอร์

ไบนารีเซิร์ชทรีไบนารีเซิร์ชทรี (Binary Search Tree)เป็นไบนารีทรีที่มีคุณสมบัติที่ว่าทุก ๆ โหนดในทรี ค่าของโหนดรากมีค่ามากกว่าค่าของทุกโหนดในทรีย่อยทางซ้าย และมีค่าน้อยกว่าหรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวาและในแต่ละทรีย่อยก็มี คุณสมบัติเช่นเดียวกัน

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

การท่องไปในกราฟ มี 2 แบบ คือ
1. การค้นหาแบบกว้าง (Breadth-first Search)
2. การค้นหาแบบลึก (Depth-first Search)

กราฟ มีน้ำหนัก หมายถึง กราฟที่ทุกเอดจ์ มีค่าน้ำหนักกำกับ ซึ่งค่าน้ำหนักอาจสื่อถึงระยะทาง เวลาค่าใช้จ่าย เป็นต้น นิยมนำไปใช้แก้ปัญหาหลัก ๆ 2 ปัญหา คือ
1. การสร้างต้นไม้ทอดข้ามน้อยที่สุด(Minimum Spanning Trees :MST) Prim’s Algorithm and Kruskal’s Algorithm
2. การหาเส้นทางที่สั้นที่สุด (Shortest path) Dijkstra’s Algorithmหาเส้นทางที่สั้นที่สุดจากโหนดต้นทางไปโหนดใด ๆ ในกราฟ มีน้ำหนัก และน้ำหนักไม่เป็นลบ

Sorting
การเรียงลำดับในลักษณะนี้ เป็นการปรับปรุงมาจากการเรียงลำดับแบบ Bubble เพื่อให้การเรียงลำดับเร็วขึ้น วีธีนี้เหมาะกับการเรียงข้อมูลที่มีจำนวนมาก หรือมีขนาดใหญ่ และเป็นวิธีการเรียงข้อมูลที่ให้ค่าเฉลี่ยของเวลาน้อยที่สุดเท่าที่ค้นพบวิธีหนึ่งการเรียงลำดับแบบ Quick Sortจะเป็นการเปรียบเทียบสมาชิกที่ไม่อยู่ติดกัน โดยกำหนดข้อมูลค่าหนึ่ง เพื่อแบ่งชุดข้อมูลที่ต้องการเรียงลำดับออกเป้น 2 ส่วน จากนั้นก็จะทำการแบ่งย่อยชุดข้อมูล 2 ส่วนนั้นลงไปอีก ทำแบบนี้ไปเรื่อยๆจนข้อมูลแต่ละชุดมีสมาชิกเหลือเพียงตัวเดียวและทำให้ชุดข้อมูลทั้งหมดมีการเรียงลำดับ

การค้นหา คือการใช้วิธีการค้นหากับโครงสร้างข้อมูล เพื่อดูว่าข้อมูลตัวที่ต้องการถูกเก็บอยู่ในโครงสร้างแล้วหรือยัง

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

Searching
การค้นหาข้อมูล (Searching)
การค้นหา คือการใช้วิธีการค้นหากับโครงสร้างข้อมูล เพื่อดูว่าข้อมูลตัวที่ต้องการถูกเก็บอยู่ในโครงสร้างแล้วหรือยังวัตถุประสงค์ของการค้นหาโดยทั่วไป ได้แก่ เพื่อดูรายละเอียดเฉพาะข้อมูลส่วนที่ต้องการดึงข้อมูลตัวที่ค้นหาออกจากโครงสร้างเปลี่ยนแปลงแก้ไขรายละเอียดบางอย่างของข้อมูลตัวที่ค้นพบ และ/หรือเพิ่มข้อมูลตัวที่ค้นหาแล้วพบว่ายังไม่เคยเก็บไว้ในโครงสร้างเลยเข้าไปเก็บไว้ในโครงสร้าง เพื่อใช้งานต่อไป
การค้นหา แบ่งเป็น 2 ประเภท ตามแหล่งที่จัดเก็บข้อมูลเช่นเดียวกับ
การเรียงลำดับการค้นหาข้อมูลแบบภายใน (Internal Searching)
การค้นหาข้อมูลแบบภายนอก (External Searching)
1. การค้นหาแบบเชิงเส้นหรือการค้นหาตามลำดับ(Linear)
2. การค้นหาแบบเซนทินัล (Sentinel)
3. การค้นหาแบบไบนารี (Binary Search)

การค้นหาแบบไบนารี (Binary Search)เริ่มการค้นหาแบบไบนารีด้วยการเปรียบเทียบกับค่ากลางในลิสต์ คือค่า a[4] ซึ่งเก็บค่า 8 ซึ่ง 12 > a[4] หมายความว่าค่า 12 ควรจะอยู่ในข้อมูลด้านขวาของ a[4] คือ ช่วง a[5] …a[8]โดยไม่สนใจช่วงข้อมูล a[1] …a[3] และใช้วิธีการค้นหาแบบไบนารีเช่นเดิมอีกกับชุดข้อมูลครึ่งหลัง คือa[5] …a[8] นั่นคือ เปรียบเทียบกับค่ากลางของชุดข้อมูลครึ่งหลัง(a[5] …a[8] ) คือค่า a[6] ซึ่งเก็บค่า 12 ซึ่ง 12 = a[6] จะได้ว่าค่า 12 อยู่ในตำแหน่งที่ 6 ในลิสต์

DTS 11-16-09-2552

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

Lecture 9 เรื่อง Sorting

การเรียงลำดับ (sorting)
เป็นการจัดให้เป็นระเบียบมีแบบแผน ช่วยให้การค้นหาสิ่งของหรือข้อมูล ซึ่งจะสามารถ
กระทำได้รวดเร็วและมีประสิทธิภาพ เช่น การค้นหาความหมายของคำในพจนานุกรม ทำได้ค่อนข้างง่ายและรวดเร็วเนื่องจากมีการเรียงลำดับคำตามตัวอักษรไว้อย่างมีระบบและเป็นระเบียบ หรือ การค้นหาหมายเลขโทรศัพท์ในสมุดโทรศัพท์ ซึ่งมีการเรียงลำดับ ตามชื่อและชื่อสกุลของเจ้าของโทรศัพท์ไว้ ทำให้สามารถค้นหา หมายเลขโทรศัพท์ของคนที่ต้องการได้อย่างรวดเร็ว
การเรียงลำดับอย่างมีประสิทธิภาพ
หลักเกณฑ์ในการพิจารณาเพื่อเลือกวิธีการเรียงลำดับที่ดี และเหมาะสมกับระบบงาน เพื่อให้ประสิทธิภาพในการทำงานสูงสุด ควรจะต้องคำนึงถึงสิ่งต่าง ๆ ดังต่อไปนี้
(1) เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
(2) เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
(3) จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่
วิธีการเรียงลำดับ
เนื่องจากมีวิธีการมากมายที่สามารถใช้ในการเรียงลำดับข้อมูลได้ บางวิธีก็มีขั้นตอนการจัดเรียงเป็นแบบง่าย ๆ ตรงไปตรงมา แต่ใช้เวลาในการจัดเรียงลำดับนาน และบางวิธีก็มีขั้นตอนในการจัดเรียงลำดับแบบซับซ้อนยุ่งยากแต่ใช้เวลาในการจัดเรียงไม่นานนัก ดังนั้นจึงควรศึกษาวิธีการจัดเรียงลำดับด้วยวิธีการต่าง ๆ เพื่อเลือกใช้วิธีการที่ดีและเหมาะสมกับระบบงานนั้นที่สุด วิธีการเรียงลำดับ
สามารถแบ่งออกเป็น 2 ประเภท คือ
(1)การเรียงลำดับแบบภายใน (internal sorting) เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ใน
หน่วยความจำหลัก เวลาที่ใช้ในการเรียงลำดับจะคำนึงถึงเวลาที่ใช้ในการเปรียบเทียบและเลื่อนข้อมูลภายในความจำหลัก
(2) การเรียงลำดับแบบภายนอก (external sorting) เป็นการเรียงลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง ซึ่งเป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file) เวลาที่ใช้ในการเรียงลำดับต้องคำนึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูลจากหน่วยความจำหลักและหน่วยความจำสำรองนอกเหนือจากเวลาที่ใช้
ในการเรียงลำดับข้อมูลแบบภายใน
การเรียงลำดับแบบเลือก (selection sort)
ทำการเลือกข้อมูลมาเก็บในตำแหน่งที่ ข้อมูลนั้นควรจะอยู่ทีละตัว โดยทำการค้นหาข้อมูลนั้นในแต่ละรอบแบบเรียงลำดับถ้าเป็นการเรียงลำดับจากน้อยไปมาก
1. ในรอบแรกจะทำการค้นหาข้อมูลตัวที่มีค่าน้อยที่สุดมาเก็บไว้ที่ตำแหน่งที่ 1
2. ในรอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่ตำแหน่งที่สอง
3. ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งครบทุกค่าในที่สุดจะได้ข้อมูลเรียงลำดับจากน้อยไปมากตาม
ที่ต้องการ
การจัดเรียงลำดับแบบเลือกเป็นวิธีที่ง่ายและตรงไปตรงมา แต่มีข้อเสียตรงที่ใช้เวลาในการจัดเรียงนาน
เพราะแต่ละรอบต้องเปรียบเทียบกับข้อมูลทุกตัว ถ้ามีจำนวนข้อมูลทั้งหมด n ตัว ต้องทำการเปรียบเทียบทั้งหมด n – 1 รอบ และจำนวนครั้งของการเปรียบเทียบในแต่ละรอบเป็นดังนี้
รอบที่ 1 เปรียบเทียบเท่ากับ n −1 ครั้ง
รอบที่ 2 เปรียบเทียบเท่ากับ n – 2 ครั้ง
รอบที่ n – 1 เปรียบเทียบเท่ากับ 1 ครั้ง
การเรียงลำดับแบบฟอง (Bubble Sort)
เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่อยู่ติดกัน
1. ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับตำแหน่งที่อยู่กัน
2. ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้นำข้อมูลตัวที่มีค่าน้อยกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก ถ้าเป็นการเรียงลำดับจากมากไปน้อยให้นำข้อมูล ตัวที่มีค่ามากกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่าน้อย
การจัดเรียงลำดับแบบฟองเป็นวิธีที่ไม่ซับซ้อนมากนัก เป็นวิธีการเรียงลำดับที่นิยมใช้กันมากเพราะมีรูปแบบที่เข้าใจง่าย แต่ประสิทธิภาพการทำงานค่อนข้างต่ำพอ ๆ กับการเรียงลำดับแบบเลือกในหัวข้อที่ผ่านมา
ถ้ามีจำนวนข้อมูลทั้งหมด n ตัวไม่ว่าข้อมูลจะเป็นอย่างไรก็ตามต้องทำการเปรียบเทียบทั้งหมด n −1 รอบ และจำนวนครั้งของการเปรียบเทียบในแต่ละรอบเป็นดังนี้
การเรียงลำดับแบบเร็ว (quick sort)
เป็นวิธีการเรียงลำดับที่ใช้เวลาน้อยเหมาะสำหรับข้อมูลที่มีจำนวนมากที่ต้องการความรวดเร็วในการทำงาน วิธีนี้จะเลือกข้อมูลจากกลุ่มข้อมูลขึ้นมาหนึ่งค่าเป็นค่าหลัก แล้วหาตำแหน่งที่ถูกต้องให้กับค่าหลักนี้ เมื่อได้ตำแหน่งที่ถูกต้องแล้ว ใช้ค่าหลักนี้เป็นหลักในการแบ่งข้อมูลออกเป็นสองส่วนถ้าเป็นการเรียงลำดับจากน้อยไปมาก ส่วนแรกอยู่ในตอนหน้าข้อมูล ทั้งหมดจะมีค่าน้อยกว่าค่าหลักที่เป็นตัวแบ่งส่วน
อีกส่วนหนึ่งจะอยู่ในตำแหน่งตอนหลังข้อมูลทั้งหมด จะมีค่ามากกว่าค่าหลัก แล้วนำแต่ละส่วนย่อยไปแบ่งย่อยในลักษณะเดียวกันต่อไปจนกระทั่งแต่ละส่วนไม่สามารถแบ่งย่อยได้อีกต่อไปจะได้ข้อมูลที่มีการเรียงลำดับตามที่ต้องการ
การเรียงลำดับแบบแทรก (insertion sort)
เป็นวิธีการเรียงลำดับที่ทำการเพิ่มสมาชิกใหม่เข้าไปในเซต ที่มีสมาชิกทุกตัวเรียงลำดับอยู่แล้ว และทำให้เซตใหม่ที่ได้นี้มีสมาชิกทุกตัวเรียงลำดับด้วย วิธีการเรียงลำดับจะ
1. เริ่มต้นเปรียบเทียบจากข้อมูลในตำแหน่งที่ 1 กับ 2หรือข้อมูลในตำแหน่งสุดท้ายและรองสุดท้ายก็ได้ ถ้าเป็นการเรียงลำดับจากน้อยไปมาก
2. จะต้องจัดให้ข้อมูลที่มีค่าน้อยอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก และถ้าเรียงจากมากไปน้อยจะก็จะจัดให้ข้อมูลที่มีค่ามากอยู่ในตำแหน่งก่อน
การเรียงลำดับแบบฐาน (radix sort)
เป็นการเรียงลำดับโดยการพิจารณาข้อมูลทีละหลัก
1. เริ่มพิจารณาจากหลักที่มีค่าน้อยที่สุดก่อน นั่นคือถ้าข้อมูลเป็นเลขจำนวนเต็มจะพิจารณาหลักหน่วยก่อน
2. การจัดเรียงจะนำข้อมูลเข้ามาทีละตัว แล้วนำไปเก็บไว้ที่ซึ่งจัดไว้สำหรับค่านั้น เป็นกลุ่ม ๆตามลำดับการเข้ามา
3. ในแต่ละรอบเมื่อจัดกลุ่มเรียบร้อยแล้ว ให้รวบรวมข้อมูลจากทุกกลุ่มเข้าด้วยกัน โดยเริ่มเรียง
จากกลุ่มที่มีค่าน้อยที่สุดก่อนแล้วเรียงไปเรื่อย ๆ จนหมดทุกกลุ่ม
4. ในรอบต่อไปนำข้อมูลทั้งหมดที่ได้จัดเรียงในหลักหน่วยเรียบร้อยแล้วมาพิจารณาจัดเรียงในหลักสิบ
ต่อไป ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งครบทุกหลักจะได้ข้อมูลที่เรียงลำดับจากน้อยไปมากตามต้องการ
การเรียงลำดับแบบฐานมีวิธีการที่ไม่ซับซ้อนแต่ค่อนข้างใช้เนื้อที่ในหน่วยความจำมาก เนื่องจากการจัดเรียงแต่ละรอบจะต้องเตรียมเนื้อที่สำหรับสร้างที่เก็บข้อมูลในแต่ละกลุ่ม เช่นถ้ามีจำนวนข้อมูล n ตัว และในแต่ละกลุ่มใช้วิธีจัดเก็บข้อมูลในแถวลำดับ ต้องกำหนดให้แต่ละกลุ่มมีสมาชิกได้ n ตัวเท่ากับจำนวนข้อมูล
เผื่อไว้กรณีที่ข้อมูลทั้งหมดมีค่าในหลักนั้น ๆเหมือนกัน ถ้าเป็นเลขจำนวนใช้ทั้งหมด 10 กลุ่ม กลุ่มละ n ตัวรวมทั้งหมดมีขนาดเท่ากับ (10 x n)


DTS 10-09-09-2552

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

Lecture 7 เรื่อง Graph

กราฟ (Graph)
เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงาน
ที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อน
นิยามของกราฟ
กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
(1) โหนด (Nodes) หรือ เวอร์เทกซ์ (Vertexes)
(2) เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edges) กราฟที่มีเอ็จเชื่อมระหว่างโหนดสองโหนด
ถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่ากราฟแบบไม่มีทิศทาง (Undirected Graphs)
และถ้ากราฟนั้นมีเอ็จที่มีลำดับความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า กราฟแบบมีทิศทาง
(Directed Graphs)บางครั้งเรียกว่า ไดกราฟ (Digraph)ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถ
เขียนชื่อเอ็จกำกับไว้ก็ได้
การเขียนกราฟแสดงโหนดและเส้นเชื่อมความสัมพันธ์ ระหว่างโหนดไม่มีรูปแบบที่ตายตัวการลากเส้นความสัมพันธ์เป็นเส้นลักษณะไหนก็ได้ที่สามารถแสดงความสัมพันธ์ระหว่างโหนดได้ถูกต้อง นอกจากนี้เอ็จจากโหนดใด ๆ สามารถวนเข้าหาตัวมันเองได้
โดยทั่ว ๆ ไปการเขียนกราฟเพื่อแสดงให้เห็นความสัมพันธ์ ของสิ่งที่เราสนใจแทนโหนดด้วย จุด (pointes) หรือวงกลม (circles)ที่มีชื่อหรือข้อมูลกำกับ เพื่อบอกความแตกต่างของแต่ละโหนดและเอ็จแทนด้วยเส้นหรือเส้นโค้งเชื่อมต่อระหว่างโหนดสองโหนดถ้าเป็นกราฟแบบมีทิศทางเส้นหรือเส้นโค้งต้อง
มีหัวลูกศรกำกับทิศทางของความสัมพันธ์ด้วย
กราฟแบบไม่มีทิศทางเป็นเซตแบบจำกัดของโหนดและเอ็จ โดยเซตอาจจะว่างไม่มีโหนด
หรือเอ็จเลยเป็นกราฟว่าง (Empty Graph)แต่ละเอ็จจะเชื่อมระหว่างโหนดสองโหนด หรือเชื่อมตัวเอง เอ็จไม่มีทิศทางกำกับ ลำดับของการเชื่อมต่อกันไม่สำคัญ นั่นคือไม่มีโหนดใดเป็นโหนดแรก (First Node) หรือไม่มีโหนดเริ่มต้น และไม่มีโหนดใดเป็นโหนดสิ้นสุด
การแทนกราฟในหน่วยความจำ
ในการปฏิบัติการกับโครงสร้างกราฟ สิ่งที่ต้องการจัดเก็บ จากกราฟโดยทั่วไปก็คือ เอ็จ ซึ่งเป็นเส้นเชื่อมระหว่างโหนดสองโหนด มีวิธีการจัดเก็บหลายวิธี วิธีที่ง่ายและตรงไปตรงมา
การแทนกราฟในหน่วยความจำด้วยวิธีเก็บเอ็จทั้งหมดใน แถวลำดับ 2 มิติ จะค่อนข้างเปลืองเนื้อที่ เนื่องจากมีบางเอ็จที่เก็บซ้ำอาจหลีกเลี่ยงปัญหานี้ได้โดยใช้แถวลำดับ 2 มิติเก็บโหนดและ พอยเตอร์ชี้ไปยงตำแหน่งของโหนดต่าง ๆ ที่สัมพันธ์ด้วย และใช้ แถวลำดับ 1 มิติเก็บโหนดต่าง ๆ ที่มีความสัมพันธ์กับโหนด
ในแถวลำดับ 2 มิติที่สุดคือ การเก็บเอ็จในแถวลำดับ 2 มิติ
การจัดเก็บกราฟด้วยวิธีเก็บโหนดและพอยน์เตอร์นี้ยุ่งยาก ในการจัดการเพิ่มขึ้นเนื่องจากต้องเก็บโหนด
และพอยน์เตอร์ในแถวลำดับ 2 มิติ และต้องจัดเก็บโหนดที่สัมพันธ์ด้วยในแถวลำดับ 1 มิติ อย่างไรก็ตามทั้งสองวิธีไม่เหมาะกับกราฟที่มีการเปลี่ยนแปลง ตลอดเวลา ควรใช้ในกราฟที่ไม่มีการเปลี่ยนแปลงตลอดการใช้งานเพราะถ้ามีการเปลี่ยนแปลงส่วนใดส่วนหนึ่งของกราฟจะกระทบกับส่วนอื่น ๆ ที่อยู่ในระดับที่ต่ำกว่าด้วยเสมอ
กราฟที่มีการเปลี่ยนแปลงตลอดเวลาอาจจะใช้วิธีแอดจาเซนซีลิสต์ (Adjacency List) ซึ่งเป็นวิธีที่คล้ายวิธีจัดเก็บกราฟด้วยการเก็บโหนดและพอยน์เตอร์ แต่ต่างกันตรงที่ จะใช้ ลิงค์ลิสต์แทนเพื่อความสะดวกในการเปลี่ยนแปลงแก้ไข
การท่องไปในกราฟ
การท่องไปในกราฟ (graph traversal) คือ กระบวนการเข้าไปเยือนโหนดในกราฟ โดยมีหลักในการทำงานคือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียว สำหรับการท่องไปในทรีเพื่อเยือนแต่ละโหนดนั้นจะมีเส้นทางเดียวแต่ในกราฟระหว่างโหนดอาจจะมีหลายเส้นทาง ดังนั้นเพื่อป้องกันการท่องไปในเส้นทางที่ซ้ำเดิมจึงจำเป็นต้องทำเครื่องหมายบริเวณที่ได้เยือนเสร็จเรียบร้อยแล้วเพื่อไม่ให้เข้าไปเยือนอีก สำหรับเทคนิคการท่องไปในกราฟมี 2 แบบดังนี้
1. การท่องแบบกว้าง (Breadth First Traversal) วิธีนี้ทำโดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นทีละระดับจนกระทั่งเยือนหมดทุกโหนดในกราฟ
2. การท่องแบบลึก (Depth First Traversal) การทำงานคล้ายกับการท่องทีละระดับของทรี โดย
กำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตามแนววิถีนั้นจนกระทั่งนำไปสู่ปลายวิถีนั้น จากนั้น
ย้อนกลับ (backtrack) ตามแนววิถีเดิมนั้น จนกระทั่งสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่น ๆ เพื่อเยือน
โหนดอื่น ๆ ต่อไปจนครบทุกโหนด


DTS 09-02-09-2552

วันพุธที่ 26 สิงหาคม พ.ศ. 2552

Lecture 6 เรื่อง Tree

ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น (Hierarchical Relationship)
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟ
ทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสองโหนดใด ๆ ในทรีต้องมีทางติดต่อกันทางเดียวเท่านั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N-1 เส้น
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟ
ทรีประกอบด้วยสมาชิกที่เรียกว่า โหนด โดยที่ ถ้าว่าง ไม่มีโหนดใด ๆ เรียกว่า นัลทรี (Null Tree) และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่งเป็นทรีย่อย (Sub Tree)T1, T2, T3,…,Tk โดยที่ k>=0 และทรีย่อยต้องมีคุณสมบัติเป็นทรี
นิยามที่เกี่ยวข้องกับทรี
1. ฟอร์เรสต์ (Forest) หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือ เซตของทรีที่แยกจากกัน (Disjoint Trees)
2. ทรีที่มีแบบแผน (Ordered Tree) หมายถึง ทรีที่โหนดต่าง ๆ ในทรีนั้นมีความสัมพันธ์ที่แน่นอน
3. ทรีคล้าย (Similar Tree) คือ ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มีรูปร่างของทรีเหมือนกัน
โดยไม่คำนึงถึงข้อมูลที่อยู่ในแต่ละโหนด
4. ทรีเหมือน (Equivalent Tree) คือ ทรีที่เหมือนกันโดยสมบูรณ์ โดยต้องเป็นทรีที่คล้ายกันและแต่ละ
โหนดในตำแหน่งเดียวกันมีข้อมูลเหมือนกัน
5. กำลัง (Degree) หมายถึง จำนวนทรีย่อยของโหนด นั้น ๆ
6. ระดับของโหนด (Level of Node) คือ ระยะทางในแนวดิ่งของโหนดนั้น ๆ ที่อยู่ห่างจากโหนดราก เมื่อกำหนดให้ โหนดรากของทรีนั้นอยู่ระดับ 1และกิ่งแต่ละกิ่งมีความเท่ากันหมด คือ ยาวเท่ากับ 1 หน่วย ซึ่งระดับของโหนดจะเท่ากับจำนวนกิ่งที่น้อยที่สุดจากโหนดรากไปยังโหนดใด ๆ บวกด้วย 1 และจำนวนเส้นทางตามแนวดิ่งของโหนดใด ๆ ซึ่งห่างจากโหนดราก เรียกว่า ความสูง (Height) หรือความลึก (Depth)
การแทนที่ทรีในหน่วยความจำหลัก
การแทนที่โครงสร้างข้อมูลแบบทรีในความจำหลักจะมีพอยเตอร์เชื่อมโยงจากโหนดแม่ไปยังโหนดลูก แต่ละโหนดต้องมีลิงค์ฟิลด์เพื่อเก็บที่อยู่ของโหนดลูกต่าง ๆ นั่นคือ จำนวน ลิงค์ฟิลด์ของแต่ละโหนดขึ้นอยู่กับจำนวนของโหนดลูก การแทนที่ทรี ซึ่งแต่ละโหนดมีจำนวนลิงค์ฟิลด์ไม่เท่ากัน ทำให้ยากต่อการปฏิบัติการ วิธีการแทนที่ที่ง่ายที่สุด คือ ทำให้แต่ละโหนดมี จำนวนลิงค์ฟิลด์เท่ากัน โดยอาจใช้วิธีการต่อไปนี้
1. โหนดแต่ละโหนดเก็บพอยเตอร์ชี้ไปยังโหนดลูกทุกโหนด การแทนที่ทรีด้วยวิธีนี้ จะให้จำนวนฟิลด์ใน
แต่ละโหนดเท่ากันโดยกำหนดให้มีขนาดเท่ากับจำนวนโหนดลูกของโหนดที่มีลูกมากที่สุด โหนดใดไม่มีโหลดลูกก็ให้ค่าพอยเตอร์ในลิงค์ฟิลด์นั้นมีค่าเป็น Null และให้ลิงค์ฟิลด์แรกเก็บค่าพอยเตอร์ชี้ไปยังโหนด ลูกลำดับที่หนึ่ง ลิงค์ฟิลด์ที่สองเก็บค่าพอยเตอร์ชี้ไปยังโหนดลูกลำดับที่สอง และลิงค์ฟิลด์อื่นเก็บ
ค่าพายเตอร์ของโหนดลูกลำดับ ถัดไปเรื่อย ๆ
การแทนทรีด้วยโหนดขนาดเท่ากันค่อนข้างใช้เนื้อที่จำนวนมาก เนื่องจากแต่ละโหนดมีจำนวนโหนดลูกไม่เท่ากันหรือบางโหนดไม่มีโหนดลูกเลยถ้าเป็นทรีที่แต่ละโหนดมีจำนวนโหนดลูกที่แตกต่างกันมาก จะเป็นการสิ้นเปลืองเนื้อที่ในหน่วยความจำโดยเปล่าประโยชน์
2. แทนทรีด้วยไบนารีทรี
เป็นวิธีแก้ปัญหาเพื่อลดการ สิ้นเปลืองเนื้อที่ในหน่วยความจำก็คือกำหนดลิงค์ฟิลด์ให้มีจำนวนน้อยที่สุดเท่าที่จำเป็นเท่านั้นโดยกำหนดให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์สองลิงค์ฟิลด์
-ลิงค์ฟิลด์แรกเก็บที่อยู่ของโหนดลูกคนโต
-ลิงค์ฟิลด์ที่สองเก็บที่อยู่ของโหนดพี่น้องที่เป็นโหนดถัดไปโหนดใดไม่มีโหนดลูกหรือไม่มีโหนดพี่น้องให้ค่าพอยน์เตอร์ในลิงค์ฟิลด์มีค่าเป็น Null
การแปลงทรีทั่วไปให้เป็นไบนารีทรี
ขั้นตอนการแปลงทรีทั่วๆ ไปให้เป็นไบนารีทรี มีลำดับขั้นตอนการแปลง ดังต่อไปนี้
1. ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบ
ความสัมพันธ์ ระหว่างโหนดแม่และโหนดลูกอื่น ๆ
2. ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง
3. จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา
การท่องไปในไบนารีทรี
ปฏิบัติการที่สำคัญในไบนารีทรี คือ การท่องไปในไบนารีทรี (Traversing Binary Tree) เพื่อเข้าไปเยือนทุก ๆ โหนดในทรี ซึ่งวิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแบบแผน สามารถเยือนโหนดทุก ๆ โหนด ๆ ละหนึ่งครั้งวิธีการท่องไปนั้นมีด้วยกันหลายแบบแล้วแต่ว่าต้องการลำดับขั้นตอนการเยือนอย่างไร โหนดที่ถูกเยือนอาจเป็นโหนดแม่ (แทนด้วย N) ทรีย่อยทางซ้าย (แทนด้วย L)หรือทรีย่อยทางขวา (แทนด้วย R)
มีวิธีการท่องเข้าไปในทรี 6 วิธี คือ
NLR LNR LRN NRL RNL และ RLN
วิธีการท่องเข้าไปไบนารีทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรกเท่านั้นคือ NLR LNR และ LRN
1. การท่องไปแบบพรีออร์เดอร์ (Preorder Traversal) เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธี
NLR
2.การท่องไปแบบอินออร์เดอร์(Inorder Traversal)เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธี LNR
3. การท่องไปแบบโพสออร์เดอร์ (Postorder Traversal) เป็นการเดินเข้าไปเยือนโหนดต่าง ๆในทรีด้วยวิธี LRN
เอ็กซ์เพรสชันทรี (Expression Tree)
เป็นการนำเอาโครงสร้างทรีไปใช้เก็บนิพจน์ทางคณิตศาสตร์โดยเป็นไบนารีทรี ซึ่งแต่ละโหนดเก็บตัวดำเนินการ (Operator) และและตัวถูกดำเนินการ (Operand) ของนิพจน์คณิตศาสตร์นั้น ๆ ไว้ หรือ อาจจะเก็บค่านิพจน์ทางตรรกะ (Logical Expression) นิพจน์เหล่านี้เมื่อแทนในทรีต้องคำนึงลำดับขั้นตอนในการคำนวณตามความสำคัญของเครื่องหมายด้วยโดยมีความสำคัญตามลำดับดังนี้
- ฟังก์ชัน
- วงเล็บ
- ยกกำลัง
- เครื่องหมายหน้าเลขจำนวน (unary)
- คูณ หรือ หาร
- บวก หรือ ลบ
- ถ้ามีเครื่องหมายที่ระดับเดียวกันให้ทำจากซ้ายไปขวา
ไบนารีเซิร์ชทรี
ไบนารีเซิร์ชทรี (Binary Search Tree) เป็นไบนารีทรีที่มีคุณสมบัติที่ว่าทุก ๆ โหนดในทรี ค่าของ
โหนดรากมีค่ามากกว่าค่าของทุกโหนดในทรีย่อยทางซ้าย และมีค่าน้อยกว่าหรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวาและในแต่ละทรีย่อยก็มี คุณสมบัติเช่นเดียวกัน ปฏิบัติการในไบนารีเซิร์ชทรี ปฏิบัติการ
เพิ่มโหนดเข้าหรือดึงโหนดออกจากไบนารีเซิร์ชทรีค่อนข้างยุ่งยากกว่าปฏิบัติการในโครงสร้างอื่น ๆ เนื่องจากหลังปฏิบัติการเสร็จเรียบร้อยแล้วต้องคำนึงถึงความเป็นไบนารีเซิร์ชทรีของทรีนั้นด้วยซึ่งมีปฏิบัติการดังต่อไปนี้
(1) การเพิ่มโหนดในไบนารีเซิร์ชทรี
(2) การดึงโหนดในไบนารีเซิร์ชทรี
วิธีดึงโหนดออกอาจแยกพิจารณาได้ 3 กรณีดังต่อไปนี้
ก. กรณีโหนดที่จะดึงออกเป็นโหนดใบการดึงโหนดใบออกในกรณีนี้ทำได้ง่ายที่สุดโดยการดึงโหนดนั้นออกได้ทันที เนื่องจากไม่กระทบกับโหนดอื่นมากนัก วิธีการก็คือให้ค่าในลิงค์ฟิลด์ของโหนดแม่ซึ่งเก็บที่อยู่
ของโหนดที่ต้องการดึงออกให้มีค่าเป็น Null
ข. กรณีโหนดที่ดึงออกมีเฉพาะทรีย่อยทางซ้ายหรือทรีย่อยทางขวาเพียงด้านใดด้านหนึ่ง วิธีการดึง
โหนดนี้ออกสามารถใช้วิธีการเดียวกับการดึงโหนดออกจากลิงค์ลิสต์ โดยให้โหนดแม่ของโหนดที่จะดึงออกชี้ไปยังโหนดลูกของโหนดนั้นแทน
ค. กรณีโหนดที่ดึงออกมีทั้งทรีย่อยทางซ้ายและทรีย่อยทางขวาต้องเลือกโหนดมาแทนโหนดที่ถูกดึงออก โดยอาจจะเลือกมาจากทรีย่อยทางซ้ายหรือทรีย่อยทางขวาก็ได้
- ถ้าโหนดที่มาแทนที่เป็นโหนดที่เลือกจากทรีย่อยทางซ้ายต้องเลือกโหนดที่มีค่ามากที่สุดในทรีย่อยทางซ้ายนั้น
- ถ้าโหนดที่จะมาแทนที่เป็นโหนดที่เลือกมาจากทรีย่อยทางขวา ต้องเลือกโหนดที่มีค่าน้อยที่สุดในทรีย่อยทางขวานั้น

DTS 08-26-08-2552

วันพุธที่ 5 สิงหาคม พ.ศ. 2552

Lecture 5 เรื่อง Queue

คิว Queue เป็นโครงสร้างข้อมูลแบบเชิงเส้น หรือ ลิเนียร์ลิสต์ การเพิมข้อมูลจะทำที่ปลายข้างหนึ่ง ที่เรียกว่าส่วนท้าย หรือ เรียร์ (Rear) และนำข้อมูลออกทางปลายอีกข้างหนึ่งเรียกว่า ส่วนหน้า หรือ ฟรอนต์ (Front) ลักษณะการทำงานของคิว จะเป็นแบบ FIFO
การทำงานของคิว ถ้าใส่สมาชิกตัวใหม่ลงในคิวเรียกว่า Enqueue
enqueue หรือ queue,newElement ซึ่งหมายถึง การใส่ข้อมูล newElement ลงในเรียร์ของคิว
การนำสมาชิกออกจากคิว เรียกว่า Dequeue รูปแบบคือ queue,element ซึ่งหมายถึง การนำออกจากส่วนหน้าของคิว และให้ข้อมูลนั้นกับ element
ถ้านำข้อมูลตอนต้นออกจากคิวมาแสดงเรียกว่า Queue Front แต่ไม่มีการเอาข้อมูลออกจากคิว
ส่วนการนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดง เรียกว่า Queue Rearv แต่ไม่ทำการเพิ่มข้อมูลเข้าไปในคิว

การแทนที่ข้อมูลของคิว ทำได้ 2 วิธีคือ
1.การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์
2.การแทนที่ข้อมูลของคิวแบบอะเรย์

การแทนที่ข้อมูลของแสตกแบบลิงค์ลิสต์ประกอบด้วย 2 ส่วนคือ
1.Head Node
2.Data Node

การดำเนินการเกี่ยวกับคิว

1. Create Queue จัดสรรหน่วยความจำให้แก่ Head Node และให้ค่า pointer ทั้ง 2 ตัวมีค่าเป็น null และจำนวนสมาชิกจะเป็น 0
2. Enqueue คือ การเพิ่มข้อมูลเข้าไปในคิว
3. Dequeue คือ การนำข้อมูลออกจากคิว
4. Queue Front เป็นการนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง
5. Queue Rear เป็นการนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง
6. Empty Queue เป็นการตรวจสอบว่าคิวว่างหรือไม่
7. Full Queue เป็นการตรวจสอบว่าคิวเต็มหรือไม่
8. Queue Count เป็นการนับจำนวนสมาชิกที่อยู่ในคิว

การนำข้อมูลเข้าสู่คิว เราจะไม่สามารถนำข้อมูลเข้าในขณะที่คิวเต็ม หรือไม่มีที่ว่างได้ ถ้าเราพยายาม
นำข้อมูลเข้าจะทำให้เกิดความผิดพลาดที่เรียกว่า overflow
ส่วนการนำข้อมูลออกจากคิว จะไม่สามารถนำออกจากคิวที่ว่างได้ ถ้าพยายาม จะทำให้เกิดความผิดพลาดที่เรียกว่า underflow

ในการนำเข้าข้อมูลในกรณีที่คิวเต็ม แต่สภาพความเป็นจริงแล้ว front ไม่ได้อยู่ในช่องแรกของคิว จะไม่สามารถนำที่ว่างในส่วนหน้ามาใช้ได้อีก

วิธีการแก้ปัญหาดังกล่าว จะใช้คิวที่เป็นแบบคิววงกลม (Circular Queue) ซึ่งคิวช่องสุดท้ายนั้นต่อกับคิวช่องแรกสุด

คิวแบบวงกลมจะเต็มก็ต่อเมื่อมีการเพิ่มข้อมูลเข้าไปในคิวเรื่อย ๆ จนกระทั่ง rear มีค่าน้อยกว่า front อยู่หนึ่งค่าคือ rear = front - 1

การประยุกต์ใช้คิว
คิวจะถูกประยุกต์ใช้มากในการจำลองระบบงาน
ธุรกิจ เช่น การให้บริการลูกค้า ต้องวิเคราะห์จำนวนลูกค้าในคิวที่เหมาะสม ว่าควรเป็นจำนวนเท่าใด เพื่อให้ลูกค้าเสียเวลาน้อยที่สุด ในด้านคอมพิวเตอร์ ได้นำคิวเข้ามาใช้ คือ ในระบบปฏิบัติการ (Operation System) ในเรื่องของคิวของงานที่เข้ามาทำงาน (ขอใช้ทรัพยากระบบของ CPU) จะจัดให้งานที่เข้ามาได้ทำงานตามลำดับความสำคัญ


DTS 07-05-08-2552

วันอังคารที่ 4 สิงหาคม พ.ศ. 2552

สรุปการเรียน Lecture 5 เรื่อง Stack

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

การแทนที่ข้อมูลของสแตกสามารถทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของสแตกแบบอะเรย์

การดำเนินการเกี่ยวกับสแตก
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 เป็นการนับจำนวนสมาชิกในสแตก

การประยุกต์ใช้สแตก
จะใช้ในงานด้านปฏิบัติการของเครื่องคอมพิวเตอร์ที่ขั้นตอนการทำงานต้องการเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุด เช่น การทำงานของโปรแกรมแปลภาษานำไปใช้ในเรื่องของการเรียกใช้โปรแกรมย่อย การคำนวณนิพจน์ทางคณิตศาสตร์ และรีเคอร์ชั่น (Recursion)
การทำงานของโปรแกรมหลักที่เรียกใช้โปรแกรมย่อยและในแต่ละโปรแกรมย่อยก็มีการเรียกใช้โปรแกรมย่อย
ต่อไปอีก สแตกจะสามารถเข้ามาช่วยในการทำงาน คือแต่ละจุดของโปรแกรมที่เรียกใช้โปรแกรมย่อยจะเก็บ
เลขที่ของคำสั่งถัดไปที่เครื่องต้องกลับมาทำงานไว้ในสแตก หลังจากเสร็จสิ้นการทำงานในโปรแกรมย่อยแล้วจะทำการ pop ค่าเลขที่คำสั่งออกมาจากสแตก เพื่อกลับไปทำงานที่คำสั่งต่อจากคำสั่งที่เรียกใช้โปรแกรมย่อย

การคำนวณนิพจน์ทางคณิตศาสตร์ในการเขียนนิพจน์ทางคณิตศาสตร์เพื่อการคำนวณ จะต้องคำนึงถึงลำดับความสำคัญของเครื่องหมายสำหรับการคำนวณด้วยโดยทั่วไปนิพจน์ทางคณิตศาสตร์ สามารถเขียนได้ 3 รูปแบบ คือ
1. นิพจน์ Infix นิพจน์รูปแบบนี้ operatorจะอยู่ตรงกลางระหว่างตัวถูกดำเนินการ 2 ตัว
2. นิพจน์ Postfix นิพจน์รูปแบบนี้ จะต้องเขียนตัวถูกดำเนินการตัวที่ 1 และ 2 ก่อน แล้วตามด้วย operator
3. นิพจน์ Prefix นิพจน์รูปแบบนี้ จะต้องเขียน operatorก่อนแล้วตามด้วยตัวถูกดำเนินการตัวที่ 1 และ 2

ขั้นตอนการแปลงจากนิพจน์ Infix เป็นนิพจน์ Postfix
1. อ่านอักขระในนิพจน์ Infix เข้ามาทีละตัว
2. ถ้าเป็นตัวถูกดำเนินการจะถูกย้ายไปเป็นตัวอักษรในนิพจน์ Postfix
3. ถ้าเป็นตัวดำเนินการ จะนำค่าลำดับความสำคัญของตัว ดำเนินการที่อ่านเข้ามาเทียบกับ
ค่าลำดับความสำคัญของตัวดำเนินการที่อยู่บนสุดของสแตก
- ถ้ามีความสำคัญมากกว่า จะถูก push ลงในสแตก
- ถ้ามีความสำคัญน้อยกว่าหรือเท่ากัน จะต้อง pop ตัวดำเนินการที่อยู่ในสแตกขณะนั้นไปเรียงต่อกับตัวอักษรในนิพจน์ Postfix
4. ตัวดำเนินการที่เป็นวงเล็บปิด “)” จะไม่ push ลงในสแตกแต่มีผลให้ตัวดำเนินการอื่น ๆ ถูก pop ออกจากสแตกนำไป เรียงต่อกันในนิพจน์ Postfix จนกว่าจะเจอ “(” จะ pop วงเล็บเปิดออกจากสแตกแต่ไม่นำไปเรียงต่อ
5. เมื่อทำการอ่านตัวอักษรในนิพจน์ Infixหมดแล้ว ให้ทำการ Pop ตัวดำเนินการทุกตัวในสแตกนำมาเรียงต่อในนิพจน์Postfix

ในการคำนวณค่า Postfix ที่แปลงมาแล้ว ตัวแปลภาษาจะทำการคำนวณโดยใช้โครงสร้างสแตก
ช่วยอีกเช่นกัน ขั้นตอนในการคำนวณ
1. อ่านตัวอักษรในนิพจน์ Postfix จากซานไปขวาทีละตัวอักษร
2. ถ้าเป็นตัวถูกดำเนินการ ให้ทำการ push ตัวถูกดำเนินการนั้นลงในสแตก แล้วกลับไปอ่านอักษรตัว
ใหม่เข้ามา
3. ถ้าเป็นตัวดำเนินการ ให้ทำการ pop ค่าจากสแตก 2 ค่าโดย ตัวแรกเป็นตัวถูกดำเนินการตัวที่ 2 และ
ตัวที่ 1 ตามลำดับ
4. ทำการคำนวณ ตัวถูกดำเนินการตัวที่ 1ด้วยตัวถูก ดำเนินการตัวที่ 2 โดยใช้ตัวดำเนินการในข้อ 3
5. ทำการ push ผลลัพธ์ที่ได้จากการคำนวณในข้อ 4 ลงสแตก
6. ถ้าตัวอักษรในนิพจน์ Postfix ยังอ่านไม่หมดให้กลับไปทำข้อ 1 ใหม่


DTS 06-29-07-2552

วันอังคารที่ 28 กรกฎาคม พ.ศ. 2552

การคำนวนค่าเฉลี่ยจากจำนวนเต็ม 3 จำนวน แบบ stdio.h กับ แบบ iostream.h


iostream.h


stdio.h



(DTS 05-22-07-2552)

Last in first out (LIFO) สิ่งที่เกิดขึ้นในชีวิตประจำวัน

1.แก้วไอศครีมโคนของพนักงาน
2.แก้วน้ำอัดลมใน Seven เวลาจะกดน้ำ ของคนที่ไปซื้อ
3.สายหม้อหุงข้าว


DTS 05-22-07-2552

วันอังคารที่ 21 กรกฎาคม พ.ศ. 2552

Lecture 4

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

DTS 04-15-07-2552

วันอังคารที่ 14 กรกฎาคม พ.ศ. 2552

แบบฝึกหัด Lecture 2

1.ให้นักศึกษากำหนดค่าของ Array 1 มิติ และ Array 2 มิติ

- Array 1 มิติ คือ char surname[40];

- Array 2 มิติ คือ int name[7][8];

2.ให้นักศึกษาหาค่าของ A[2] , A[6] จากค่าA={2,8,16,24,9,7,3,8,}

- A[2] คือ 16 และ A[6] คือ 3

3.จากค่าของ int a [2][3] = {{6,5,4},{3,2,1}}; ให้นักศึกษาหาค่าของ a[1][0]และa[0][2]

- a[1][0] คือ 3 และ a[0][2] คือ 4

4.ให้นักศึกษากำหนด structure ที่มีค่าของข้อมูลจากน้อย 6 Records

#include"stdio.h"
struct police
{
char name[40];
char lastname[40];
char sex[10];
int age;
char address [20];
int day;
int month;
int year;
}data;


5. ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล

- array หมายถึง ตัวแปรชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้ เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การกำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]pointer หมายถึง ตัวเก็บตำแหน่งที่อยู่ของหน่วยความจำ (Address) หรือเรียกว่า ตัวชี้ ตำแหน่งที่อยู่ สัญลักษณ์ของ pointer จะแทนด้วยเครื่องหมาย *


DTS 03-01-07-2552

สรุปการเรียน Lecture 2 เรื่อง Pionter

Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่ง
ที่อยู่ (Address) ของตัวแปรที่อยู่ในหน่วยความจำ

การกำหนด address ให้ pointer
วิธีนำเลข address ไปใส่ pointer ทำได้โดยใช้เครื่องหมาย & (address operator)

Pointer ที่เกิดจากเครื่องหมาย &
เมื่อเครื่องหมาย & ถูกใส่ไว้หน้าตัวแปรใดๆ ก็ตาม จะมีความหมายถึงค่าของตำแหน่งในหน่วยความจำที่ใช้เก็บค่าของตัวแปรนั้น ที่เราจะเห็นกันอยู่บ่อยๆ ก็คือ ในคำสั่ง scanf เช่น
int x;
scanf(“%d”,&x);
มีความหมายว่า ให้รับค่าทางคีย์บอร์ดแล้วให้แปลงเป็น integer แล้วนำไปใส่ในหน่วยความจำที่เป็นตำแหน่งของ x

*** เราสามารถอ้างถึงค่าที่อยู่ในตัวแปร x ได้โดยการใส่ * หน้า &x ก็จะมีความหมายเช่นเดียวกับ x นั่นเอง เช่น
x=5;
printf(“%d %d”, x, *(&x) );
ผลรัน จะเป็น 5

Pointer ที่เกิดจากการกำหนดตัวแปร array
การอ้างถึงชื่อของตัวแปร array โดยไม่ได้ระบุตัวชี้ลำดับ(subscript) จะหมายถึงตำแหน่ง(ในหน่วยความจำ)ของ array ตัวแรก ในภาษาซีจะไม่อนุญาตให้เปลี่ยนแปลงตำแหน่งของตัวแปร array ดังกล่าวได้ เช่น
char a[100];
a+=10; // error
ในกรณีนี้ &a จะมีความหมายเช่นเดียวกับ a ซึ่งก็คือค่าตำแหน่งในหน่วยความจำของ array ตัวแรกนั่นเอง
การประกาศชนิดของตัวแปรพอยน์เตอร์

รูปแบบ
type *variable-name
type หมายถึง ชนิดของตัวแปร
* หมายถึง เป็นเครื่องหมายที่แสดงว่าตัวแปรที่
ตามหลังเครื่องหมายนี้เป็นตัวแปรพอยน์เตอร์
variable-name เป็นชื่อของตัวแปรที่ต้องการประกาศว่าเป็น
ชนิดพอยน์เตอร์

ข้อสรุปเรื่อง pointer
• ทำหน้าที่ชี้ไปยังตำแหน่งเก็บข้อมูลในหน่วยความจำ
• การประกาศ pointer ต้องกำหนด data type ด้วย
• ใช้ pointer ชี้ไปยัง pointer หรือชี้ไปยัง array หรือ array ของ pointer ก็ได้
• pointer ที่ชี้ไปยัง pointer ใช้ดอกจันสองตัว เช่น int** p
• pointer arithmetic เป็นไปตาม data type

DTS 03-01-07-2552

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

Structure

#include"stdio.h"
struct police
{
char name[40];
char lastname[40];
char sex[10];
int age;
char address [20];
int day;
int month;
int year;
}data;
void main()
{
printf("police data\n");
printf(" name:");
scanf("%s",&data.name);
printf(" lastname:");
scanf("%s",&data.lastname);
printf(" sex:");
scanf("%s",&data.sex);
printf(" age:");
scanf("%d",&data.age);
printf(" address:");
scanf("%s",&data.address);
printf("date of birth(dd/mm/yy): ");
scanf("%d/%d/%d",&data.day,&data.month,&data.year);
{
printf("\n\n\nDisplay Data of police \n");
printf("Name : %s\n",data.name);
printf("Lastname : %s\n",data.lastname);
printf("sex : %s\n",data.sex);
printf("Age : % d\n",data.age);
printf("address : %s\n",data.address);
printf("birthday : %d/%d/%d \n",data.day,data.month,data.year);
}
}


DTS 02-01-07-2552

วันพุธที่ 24 มิถุนายน พ.ศ. 2552

Lecture 2 (Array and reccord)

1. ได้ทราบวิธีการของอะเรย์ และ องค์ประกอบของอะเรย์

2. ได้ทำความเข้าใจและทบทวน อะเรย์

3. ได้เรียนรู้อะเรย์ 1 มิติ อะเรย์ 2 มิติ และอะเรย์หลายมิติ

4. ได้รู้วิธีการจัดเก็บอะเรย์ 1 มิติ และ อะเรย์หลายมิติ

5. การกำหนดค่าให้กับตัวแปรชุด ชนิด Character

6. ได้เรียนรู้การส่งอะเรย์ให้ฟังก์ชัน

7. ได้เรียนรู้ Reccord or Structure ว่าเป็นโครงสร้างข้อมูลที่ประกอบขึ้นมาจากข้อมูลพื้นฐานที่ต่างประเภทกัน รวมกันเป็นชุดข้อมูลเดียวกัน

8. ได้รู้การผ่าน Structure ให้ฟังก์ชัน โดยการ ส่งสมาชิกแต่ละตัวของ Structure และ การส่งทั้ง Structure ให้กับฟังก์ชัน

9. นักศึกษาได้ทดสอบความรู้ที่มีอยู่ มาตอบปัญหาอาจารย์ในชั้นเรียน



DTS 02-24-06-2552

ประวัติส่วนตัว


ชื่อนายอภิชัย โมกขะรัตน์

MR.APICHAI MOKKHARUT

รหัสนักศึกษา 50152792052

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

คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏสวนดุสิต

E-mail address
u50152792052@gmail.com



DTS 01-24-06-2552