วันอังคารที่ 5 เมษายน พ.ศ. 2554

ข้อมูลการทำงาน

1. ตำแหน่ง - พนักงานขาย
2. เงือนเดือนที่ได้ - 10000 บาท
3. ลักษณะงานที่ทำ - ไม่ตรงกับสายงานที่เรียนมา

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

สรุปผลการปฏิบัติงานการฝึกประสบการณ์วิชาชีพ ณ หน่วยเวชสารสนเทศ โรงพยาบาลศิริราช

1. รู้จักการทำงานเป็นระบบ
2. มีความรับผิดชอบต่อหน้าที่เพิ่มมากขึ้น
3. ได้เรียนรู้ระบบคอมพิวเตอร์มากขึ้น
4. รู้จักการแก้ปัญหาเฉพาะหน้า
5. ได้เรียนรู้การทำงานร่วมกับผู้อื่น และเพื่อนร่วมงาน
6. สามารถนำประสบการณ์ฝึกงานไปใช้ในการทำงานจริงได้
7. รู้จักการทำงานเป็นทีม
8. รู้จักกาลเทศะ
9. รู้จักการใช้โปรแกรมใหม่ ๆ

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

สัปดาห์ที่ 18 : 28 กุมภาพันธ์ 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 5 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 4 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 26 กุมภาพันธ์ พ.ศ. 2554

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

สัปดาห์ที่ 17 : 21 - 25 กุมภาพันธ์ 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 15 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 10 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 8 เครื่อง
5. ลง window เครื่องคอมพิวเตอร์ จำนวน 2 เครื่อง
6. Sharing Printer จำนวน 5 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 19 กุมภาพันธ์ พ.ศ. 2554

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

สัปดาห์ที่ 16 : 14 - 17 กุมภาพันธ์ 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 10 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 5 เครื่อง
5. ติดตั้งเครื่อง Scanner จำนวน 1 เครื่อง
6. ลง Window เครื่องคอมพิวเตอร์ จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 13 กุมภาพันธ์ พ.ศ. 2554

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

สัปดาห์ที่ 15 : 7 - 11 กุมภาพันธ์ 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 4 เครื่อง
5. ดูแลเครื่องคอมพิวเตอร์ระหว่างการประชุม จำนวน 3 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 6 กุมภาพันธ์ พ.ศ. 2554

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

สัปดาห์ที่ 14 : 31 มกราคม - 4 กุมภาพันธ์ 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 8 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 5 เครื่อง
5. ติดตั้งเครื่อง Scanner จำนวน 2 เครื่อง
6. ลงโปรแกรมเครื่อง Scanner จำนวน 1 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 30 มกราคม พ.ศ. 2554

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

สัปดาห์ที่ 13 : 24 - 28 มกราคม 2554

สรุปผลปฏิบัติงาน
1. Updtae เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 8 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 5 เครื่อง
5. ลงโปรแกรม Microsoft office จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 23 มกราคม พ.ศ. 2554

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

สัปดาหืที่ 12 : 17 - 21 มกราคม 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 8 เครื่อง
3. ติดตั้งเครื่อง Printer จำนวน 3 เครื่อง
4. Scan Virus เครื่องคอมพิวเตอร์ จำนวน 2 เครื่อง
5. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 10 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 15 มกราคม พ.ศ. 2554

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

สัปดาห์ที่ 11 : 10 - 14 มกราคม 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
3. ติดตั้งเครื่อง Printer จำนวน 3 เครื่อง
4. ติดตั้งเครื่อง Scanner จำนวน 2 เครื่อง
5. ติดตั้งโปรแกรม Microsoft office จำนวน 1 เครื่อง
6. ตรวจเช็คปัญหาของเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
7. Scan Virus เครื่องคอมพิวเตอร์ จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์
2. ไวรัสบางตัวไมสามารถถอนออกไปจากเครื่องคอมได้

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง
2. ขอคำแนะนำจากพี่ที่ทำงาน

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 9 มกราคม พ.ศ. 2554

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

สัปดาห์ที่ 10 : 4 - 7 มกราคม 2554

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 3 เครื่อง
5. ติดตั้งโปรแกรม Microsoft office จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 1 มกราคม พ.ศ. 2554

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

สัปดาห์ที่ 9 : 27 - 30 ธันวาคม 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจสอบปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 5 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 2 เครื่อง
5. ติดตั้งโปรแกรม Microsoft office จำนวน 1 เครื่อง
6. ลงWindowsใหม่ จำนวน 1 เครื่อง
7. Scan Virus จำนวน 1 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์
2. ลงwindowไม่ได้
3. ถอนโปรแกรม Microsoft office ไม่ได้

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง
2. ให้พี่สอนการลงwindow

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 25 ธันวาคม พ.ศ. 2553

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

สัปดาห์ที่ 8 : 20 - 24 ธันวาคม 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 10 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
4. ติดตั้งเครื่องPrinter จำนวน 3 เครื่อง
5. ติดตั้งเครื่อง Scanner จำนวน 1 เครื่อง
6. ติดตั้งโปรแกรม Microsoft office จำนวน 1 เครื่อง
7. ScanVirus จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. ลงโปรแกรมเครื่อง Scanner ไม่ได้
2. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. ให้พี่มาลงโปรแกรมและสอนให้
2. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการลงโปรแกรมของเครื่อง Scanner
3. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 19 ธันวาคม พ.ศ. 2553

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

สัปดาห์ที่ 7 : 13 - 17 ธันวาคม 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 3 เครื่อง
5. ติดตั้งโปรแกรม Microsoft office จำนวน 1 เครื่อง
6. Sharing Printer จำนวน 3 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์
2. User ไม่มีพื้นฐานเกี่ยวกับเครื่อง Printer

การแก้ไขปัญหา :
1. อธิบายให้ user ฟังเกี่ยวกับเครื่องคอมพิวเตอร์และเครื่องPrinter

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 11 ธันวาคม พ.ศ. 2553

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

สัปดาห์ที่ 6 : 7 - 9 ธันวาคม 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 10 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 5 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 3 เครื่อง
5. ติดตั้งโปรแกรม Microsoft office จำนวน 1 เครื่อง

ปัญหาและอุปสรรค :
1. ไม่สามารถลงโปรแกรมเครื่อง Printer
2. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. ให้พี่มาทำการสอนและลงโปรแกรมให้
2. อธิบายปัญหาให้ user ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการลงโปรแกรมของเครื่อง Printer
3. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันเสาร์ที่ 4 ธันวาคม พ.ศ. 2553

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

สัปดาห์ที่ 5 : 29 พฤศจิกายน - 3 ธันวาคม 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 12 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 5 เครื่อง
5. ติดตั้งโปรแกรม Microsoft office จำนวน 2 เครื่อง
6. Sharing Printer จำนวน 5 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

วันอาทิตย์ที่ 28 พฤศจิกายน พ.ศ. 2553

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

สัปดาห์ที่ 4 : 22-26 พฤศจิกายน 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์
3. ติดตั้งเครื่องคอมพิวเตอร์
4. ติดตั้งเครื่อง Printer
5. ติดตั้งโปรแกรม Microsoft office

ปัญหาและอุปสรรค :
1. ซ่อมเครื่องprinterไม่ได้
2. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. ให้พี่ที่ดูแลสอนการซ่อมprinterเบื้องต้น
2. อธิบายปัญหาให้ user ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการซ่อมเครื่อง printer
3. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

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

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

สัปดาห์ที่ 3 : 15-19 พฤศจิกายน 2553

สรุปผลปฏิบัติงาน
1. Update เซิร์ฟเวอร์
2. ตรวจเช็คปัญหาเครื่องคอมพิวเตอร์ จำนวน 8 เครื่อง
3. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 6 เครื่อง
4. ติดตั้งเครื่อง Printer จำนวน 4 เครื่อง
5. ติดตั้งโปรแกรม Microsft office จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ user ฟัง

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

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

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

สัปดาห์ที่ 2 : 8-12 พฤศจิกายน 2553

สรุปผลปฏิบัติงาน
1. ตรวจเช็คเครื่องคอมพิวเตอร์ จำนวน 7 เครื่อง
2. ติดตั้งโปรแกรม Microsoft office 2 เครื่อง
3. Scan Virus เครื่องคอมพิวเตอร์ จำนวน 1 เครื่อง
4. Update เซิร์ฟเวอร์
5. ติดตั้งเครื่องฉาย Video conference จำนวน 1 เครื่อง
6. ติดตั้งเครื่อง Printer จำนวน 2 เครื่อง

ปัญหาและอุปสรรค :
1. ยังติดตั้งโปรแกรมของโรงพยาบาลไม่ได้

การแก้ไขปัญหา :
1. ให้พี่ที่ดูแลสอนการลงโปรแกรมของโรงพยาบาล

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการติดตั้งเครื่อง Printer
3. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์
4. ได้รู้จักติดตั้งเครื่องฉาย Video conference

วันอาทิตย์ที่ 7 พฤศจิกายน พ.ศ. 2553

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

สัปดาห์ที่ 1 : 1-5 พฤศจิกายน 2553

สรุปผลปฏิบัติงาน
1. นำจดหมายมารายงานตัว ที่โรงพยาบาลศิริราช
2. ตัวเช็คเครื่องคอมพิวเตอร์ที่มีปัญหา จำนวน 5 เครื่อง
3. Scan Virus เครื่องคอมพิวเตอร์ จำนวน 2 เครื่อง
4. ซ่อมเครื่องปริ้นใบชำระเงิน จำนวน 2 เครื่อง
5. ลง Windows ให้กับเครื่องคอมพิวเตอร์ใหม่ 2 เครื่อง
6. ติดตั้งเครื่องคอมพิวเตอร์ จำนวน 4 เครื่อง
7. ติดตั้งระบบ Video Conference จำนวน 2 เครื่อง
8. Update เซิร์ฟเวอร์

ปัญหาและอุปสรรค :
1. User ไม่มีพื้นฐานเกี่ยวกับเครื่องคอมพิวเตอร์

การแก้ไขปัญหา :
1. อธิบายปัญหาให้ User ฟังเกี่ยวกับเครื่องคอมพิวเตอร์

ประโยชน์ที่ได้รับ :
1. ได้รู้จักการทำงานเป็นระบบ
2. ได้รู้จักการซ่อมเครื่อง Printer
3. ได้รู้จักการซ่อมเครื่องคอมพิวเตอร์
4. ได้รู้จักการแก้ไขปัญหาของเครื่องคอมพิวเตอร์

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

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

สิ่งที่ได้รับจากการฝึกประสบการณ์วิชาชีพ3
1.ได้รู้จักการทำงานที่ดี
2.ได้รู้จักระเบียบวินัยในการทำงาน
3.มีความรับผิดชอบในการทำงาน
4.มีความตรงต่อเวลาในการทำงาน
5.มีความรอบคอบในการทำงาน
6.มีความรู้รอบตัวมาขึ้นในการทำงาน

DTS 12-15/09/2009

สรุปเรื่อง sorting (ต่อ)
การเรียงลำดับแบบเร็ว (quick sort)
เป็นวิธีการเรียงลำดับที่ใช้เวลาน้อยเหมาะ สำหรับข้อมูลจำนวนมากที่ต้องการความรวดเร็วในการทำงาน การจัดเรียงลำดับแบบเร็วเป็นวิธีที่ซับซ้อน แต่ประสิทธิภาพการทำงานค่อนสูง กรณีที่ดีที่สุด คือ กรณีที่ค่าหลักที่เลือกแบ่งแล้วข้อมูลอยู่ตรงกลางกลุ่มพอดี และในแต่ละส่วนย่อยก็เช่นเดียวกัน กรณีที่แย่ที่สุด คือ กรณีที่ข้อมูลมีการเรียงลำดับ อยู่แล้ว อาจจะเรียงจากน้อยไปมากหรือจากมากไปน้อย หรือค่าหลักที่เลือกในแต่ละครั้งเป็นค่าหลักที่น้อยที่สุดหรือมากที่สุด จำนวนครั้งของการ
การเรียงลำดับแบบฐาน (radix sort)
เป็นการเรียงลำดับโดยการพิจารณาข้อมูลทีละหลัก มีวิธีการที่ไม่ซับซ้อนแต่ค่อนข้างใช้เนื้อที่ในหน่วยความจำมาก เนื่องจากการจัดเรียงแต่ละรอบจะต้องเตรียมเนื้อที่สำหรับสร้างที่เก็บข้อมูลในแต่ละกลุ่ม เช่นถ้ามีจำนวนข้อมูล n ตัว และในแต่ละกลุ่มใช้วิธีจัดเก็บข้อมูลในแถวลำดับ ต้องกำหนดให้แต่ละกลุ่มมีสมาชิกได้

วันจันทร์ที่ 14 กันยายน พ.ศ. 2552

DTS 11-08/09/2009

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

วันจันทร์ที่ 7 กันยายน พ.ศ. 2552

DTS 10-01/09/2009

เรื่อง Graph
กราฟ (Graph) เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อน นิยามของกราฟ กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
(1) โหนด (Nodes) หรือ เวอร์เทกซ์(Vertexes)
(2) เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edges)
การเขียนกราฟเพื่อแสดงให้เห็นความสัมพันธ์ ของสิ่งที่เราสนใจแทนโหนดด้วย จุด (pointes) หรือวงกลม (circles) ที่มีชื่อหรือข้อมูลกำกับ เพื่อบอกความแตกต่างของแต่ละโหนดและเอ็จแทนด้วยเส้นหรือเส้นโค้งเชื่อมต่อระหว่างโหนดสองโหนด
กราฟแบบไม่มีทิศทางเป็นเซตแบบจำกัดของโหนดและเอ็จ โดยเซตอาจจะว่างไม่มีโหนดหรือเอ็จเลยเป็นกราฟว่าง (Empty Graph)แต่ละเอ็จจะเชื่อมระหว่างโหนดสองโหนด หรือเชื่อมตัวเอง เอ็จไม่มีทิศทางกำกับ ลำดับของการเชื่อมต่อกันไม่สำคัญ นั่นคือไม่มีโหนดใดเป็นโหนดแรก (First Node) หรือไม่มีโหนดเริ่มต้น และไม่มีโหนดใดเป็นโหนดสิ้นสุด
กราฟแบบมีทิศทาง เป็นเซตแบบจำกัดของโหนดและเอ็จ โดยเซตอาจจะว่างไม่มีโหนดหรือเอ็จเลยเป็นกราฟว่าง (Empty Graph) แต่ละเอ็จจะเชื่อมระหว่างโหนดสองโหนด เอ็จมีทิศทางกำกับแสดงลำดับของการเชื่อมต่อกัน โดยมีโหนดเริ่มต้น (Source Node) และ โหนดสิ้นสุด (Target Node)รูปแบบต่าง ๆ ของกราฟแบบมีทิศทางเหมือนกับรูปแบบ ของกราฟไม่มีทิศทาง ต่างกันตรงที่กราฟแบบนี้จะมีทิศทางกำกับด้วยเท่านั้น

DTS 09-25/08/2009

สรุปเรื่อง Treeทรี (Tree)
Tree เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น เช่น แผนผังองค์ประกอบของหน่วยงานต่างๆ เป็นต้นโหนดมีความสัมพันธ์กับโหนดในระดับต่ำลงมา หนึ่งระดับได้หลายๆ โหนด เรียกว่าโหนดว่า โหนดแม่ (Parent or Mother Node)โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก (Child or Son Node) โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก (Root Node) โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings) โหนดที่ไมมีโหนดลูกเรียกว่า โหนดใบ (Leave Node) เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนดเรียกว่า กิ่ง (Branch)
นิยามที่เกี่ยวข้องกับทรี
1.ฟอร์เรสต์ (Forest) หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือเซตของทรีที่แยกจากัน (Disjoint Trees)
2.ทรีที่มีแบบแผน (Ordered Tree) หมายถึง ทรีที่โหนดต่างๆ ในทรีนั้นมีความสัมพันธ์ที่แน่นอน เช่น ไปทางขวา ไปทางซ้าย เป็นต้น
3.ทรีคล้าย (Similar Tree) คือ ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มีรูปร่างของทรีเหมือนกัน โดยไม่คำนึงถึงข้อมูลที่อยู่ในแต่ละโหนด
4.ทรีเหมือน (Equivalent Tree) คือ ทรีที่เหมือนกันโดยสมบูรณ์ โดยต้องเป็นทรีที่คล้ายกันและแต่ละโหนดในตำแหน่งเดียวกันมีข้อมูลเหมือนกัน
5.กำลัง (Degree) หมายถึง จำนวนทรีย่อยของโหนดนั้นๆ
6.ระดับของโหนด (Level of Node) คือ ระยะทางในแนวดิ่งของโหนดนั้นๆ
การแทนที่ทรีในหน่วยความจำหลัก
การแทนที่โครงสร้างข้อมูลแบบทรีในความจำหลักจะมีพอยเตอร์เชื่อมโยงจากโหนดแม่ไปยังโหนดลูก การแทนที่ทรี แต่ละโหนดมีจำนวนลิงค์ฟิลด์ไม่เท่ากัน วิธีการแทนที่ง่ายที่สุด คือ ทำให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์ที่เท่ากัน โดย
1.โหนดแต่ละโหนดเก็บพอยเตอร์ชี้ไปยังโหนดลูกทุกโหนด
2.แทนทรีด้วยไบนารีทรี โดยกำหนดให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์สองลิงค์ฟิลด์
- ลิงค์ฟิลด์แรกเก็บที่อยู่ของโหนดลูกคนโต
- ลิงค์ฟิลด์ที่สองเก็บที่อยู่ของโหนดพี่น้องที่เป็นโหนดถัดไป โหนดใดไม่มีโหนดลูกหรือไม่มีโหนดพี่น้องให้ค่าพอยเตอร์ในลิงค์ฟิลด์มีค่าเป็น Null
โครงสร้างทรีที่แต่ละโหนดมีจำนวนโหนดลูดไม่เกินสองหรือแต่ละโหนดมีจำนวนทรีย่อยไม่เกินสองนี้ว่า ไบนารีทรี (Binary Tree)
ไบนารีทรีที่ทุกๆ โหนดมีทรีย่อยทางซ้ายและทรีย่อยทางขวา ยกเว้นโหนดใบ และโหนดใบทุกโหนดจะต้องอยู่ที่ระดับเดียวกัน
การแปลงทรีทั่วไปให้เป็นไบนารีทรี
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 มีชั้นตอนการเดิน
1.เยือนโหนดราก
2.ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
3.ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
2.)การท่องไปแบบอินออร์เดอร์ (Inorder Traversal)
ในวิธี LNR มีขั้นตอนการเดิน
1.ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
2.เยือนโหนดราก
3.ท่องไปในทรีย่อยทางขวาแบบอินออร์เดอร์
3.)การท่องไปแบบโพสออร์เดอร์ (Postorder Traversal)
ในวิธี LRN มีขั้นตอนการเดิน
1.ท่องไปในทรีย่อยทางซ้ายแบบโพสต์ออร์เดอร์
2.ท่องไปในทรีย่อยทางขวาแบบโพสต์ออร์เดอร์
3.เยือนโหนดราก

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

DTS 08-11/08/2009

สรุปเรื่อง คิว (Queue)
คิวหรือแถวคอย (อังกฤษ: queue) เป็นประเภทข้อมูลอย่างย่อที่มีลักษณะการเรียงลำดับข้อมูล ในการเข้า-ออกในลักษณะเข้าก่อนออกก่อน FIFO (First In First Out) กล่าวคือข้อมูลที่เข้าแรกๆจะได้ออกก่อน คล้ายคนต่อคิวที่มาก่อนจะได้ซื้อของก่อน จึงเรียกว่า แถวคอย หรือ คิว
แถวคอย หรือ คิว จึงจัดเป็นวิธีการจัดการเข้า-ออกของข้อมูลอีกแบบหนึ่ง เป็นโครงสร้างข้อมูลที่นำมาใช้ในการทำงานของโปรแกรมคอมพิวเตอร์หลายประการ อาทิการเข้าคิวในการทำงานของเครือข่าย การออกแบบการทำงานระบบท่อ (pipeline) เป็นต้น
จุดเด่นของคิว
คิวสามารถจัดการการเข้า-ออกของข้อมูล ใช้เก็บข้อมูลที่ต้องการจัดเรียงเป็นระบบ โดยพิจารณาข้อมูลตามลำดับ ในทำนอง ใครถึงก่อนมีสิทธิ์ได้ใช้ก่อน จึงใช้ในการเรียงลำดับในการแบ่งปันทรัพยากรที่มีอยู่จำกัดในการทำงาน เช่น การรอคิวการทำงานของเครื่องพิมพ์ในสำนักงาน เป็นต้น
บริการที่มักจะมีเอาข้อมูลใหม่เข้าท้ายคิว (enqueue)
เอาข้อมูลออกจากหัวคิว (dequeue)
ดูข้อมูลที่อยู่หัวคิว (peek) ทำคิวว่าง ตรวจสอบความว่างของคิว (empty)
ความเร็วที่ใช้ในการทำงานการทำงานของคิว
ไม่จำเป็นต้องไล่พิจารณาสมาชิกทุกตัว เป็นเพียงแต่การพิจารณาข้อมูลที่เข้าแรกสุดออกจากคิว และเอาข้อมูลใหม่เข้าท้ายคิว การทำงานของคิวจึงมีความเร็วคงที่ (O (1))
วิธีการสร้างคิวการสร้างคิวทำได้โดยแถวลำดับประกอบกับจำนวนเต็ม ที่เก็บดัชนีของหัวคิวและท้ายคิว สองตัว หรือใช้ รายการโยงสองชั้นวน(circular doubly linked list)
คิวแถวลำดับสำหรับการใช้แถวลำดับในการทำคิวนั้น (array queue) ตอนเริ่มต้นเราจะให้ดัชนีของหัวคิวและท้ายคิวชี้ที่ศูนย์ เมื่อเข้าคิว (enqueue) ก็จะเก็บข้อมูลตรงดัชนีท้าย พร้อมทั้งเพิ่มค่าดัชนีท้ายคิวจะไปอีกหนึ่ง (increament) ในทางตรงกันข้ามหากเอาข้อมูลตัวแรกออกจากคิว (dequeue) ก็คืนค่าสมาชิกตัวที่ดัชนีหัวคิวชี้อยู่พร้อมทั้งเพิ่มค่าดัชนีหัวคิวไปอีกหนึ่ง (decrement) หากดัชนีหัวคิววิ่งไล่ทับดัชนีท้ายคิวแสดงว่า คิวนั้นเป็นคิวว่าง (empty queue) ไม่ควร dequeue อีกเพราะจะทำให้การทำงานรวนได้ (ควรตรวจสอบก่อน dequeue)
เนื่องจากแถวลำดับมีขนาดจำกัดในบางครั้งอาจมีการทำคิววนรอบ (circular array queue) กล่าวคือบางครั้งคิวอาจมีการ enqueue และ dequeue สลับกันทำให้ดัชนีหัวคิวเลื่อนๆออกไปจนจะตกขอบขวาของแถวลำดับ ทำให้มีเนื้อที่ของแถวลำดับด้านหน้าเหลือไม่ได้ใช้จึงมีการวนเอาหางคิว มาแทนส่วนหน้าของแถวลำดับ กล่าวคือเมื่อท้ายคิวตกขอบขวาของแถวลำดับ ก็จะมีการเริ่มดัชนีท้ายคิวที่ศูนย์ใหม่และต่อท้ายคิวมาเรื่อยๆ ข้อด้อยของวิธีนี้คือ เมื่อท้ายคิวมาทับหัวคิวอีกครั้งจะตีความไม่ได้ว่าคิวเต็มแถวลำดับ หรือคิวว่างกันแน่ จึงอาจใช้ตัวแปรขนาด (size) หรือตัวแปรอื่นๆช่วยในการบอกว่าคิวว่างหรือไม่
คิวรายการโยงสองชั้นวนสำหรับการใช้รายการโยงสองชั้นวน(circular doubly linked list) ในการทำนั้น โดยหัวคิวจะอยู่ที่ปมสุดท้ายนี้ (กล่าวคือเป็นปมก่อนที่จะชี้ปมหัว เพราะว่าเป็นรายการวน) ส่วนท้ายคิวอยู่ที่ปมแรก เมื่อเข้าคิว (enqueue) ก็เพิ่มปมใหม่หลังปมหัว เมื่อจะเอาข้อมูลแรกออกจากคิว (dequeue) ก็จะเอาข้อมูลก่อนปมหัวออก ก็คือข้อมูลที่เข้าแรกๆสุด เมื่อใดที่รายการหรือคิวว่าง ก็คือตอนที่ปมหัวชี้มาที่ตัวเองนั่นเอง

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

DTS 07-04/08/2009

สรุปเรื่อง Stack
สแตก (Stack) เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก (Top Of Stack) และ ลักษณะที่สำคัญของสแตก คือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา จากสแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า LIFO (Last In First Out)
การดำเนินงานพื้นฐานของสแตก
การทำงานต่าง ๆ ของสแตกจะกระทำที่ปลายข้างหนึ่งของ สแตกเท่านั้น ดังนั้นจะต้องมีตัวชี้ตำแหน่งข้อมูลบนสุดของสแตกด้วยการทำงานของสแตกจะประกอบด้วย
กระบวนการ 3 กระบวนการที่สำคัญ คือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตก เช่น สแตก s ต้องการใส่ข้อมูล i ในสแตก จะได้ push (s,i) คือ ใส่ข้อมูล i ลงไปที่ทอปของสแตก s ในการเพิ่มข้อมูลลงในสแตก จะต้องทำการตรวจสอบว่าสแตก เต็มหรือไม่ ถ้าไม่เต็มก็สามารถเพิ่มข้อมูลลงไปในสแตกได้ แล้วปรับตัวชี้ตำแหน่งให้ไปชี้ที่ตำแหน่งข้อมูลใหม่ ถ้า
สแตกเต็ม (Stack Overflow) ก็จะไม่สามารถเพิ่มข้อมูลเข้าไปในสแตกได้อีก
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก เช่น ต้องการนำข้อมูลออกจากสแตก s ไปไว้ที่ตัวแปร i จะได้ i = pop (s) การนำข้อมูลออกจากสแตก ถ้าสแตกมีสมาชิกเพียง 1 ตัว แล้วนำสมาชิกออกจากสแตก จะเกิดสภาวะสแตกว่าง (Stack Empty) คือ ไม่มีสมาชิกอยู่ในสแตกเลย แต่ถ้าไม่มีสมาชิกในสแตก แล้วทำการ pop สแตก จะทำให้ เกิดความผิดพลาดที่เรียกว่า Stack Underflow เพราะฉะนั้นก่อนนำข้อมูลออกจากสแตกจะต้องตรวจสอบ ก่อนว่าสแตกว่างหรือเปล่า จึงจะนำข้อมูลออกจากสแตกได้และ ปรับตัวชี้ตำแหน่งให้ไปชี้ตำแหน่งของข้อมูลที่ต่อจากข้อมูลที่ถูกนำ ออกไป
3. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตกการแทนที่ข้อมูลของสแตก
การแทนที่ข้อมูลของสแตกสามารถทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์จะประกอบไปด้วย 2 ส่วน คือ ส่วนของ Head Node จะประกอบไปด้วย 2 ส่วนคือ top pointer และจำนวนสมาชิกในสแตก และ Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ ที่ชี้ไปยังข้อมูลตัวถัดไป
การดำเนินการเกี่ยวกับสแตก
การดำเนินการเกี่ยวกับสแตก ได้แก่
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 เป็นการลบข้อมูลทั้งหมดที่อยู่ในสแตก
2. การแทนที่ข้อมูลของสแตกแบบอะเรย์
การดำเนินการเกี่ยวกับสแตก ได้แก่
1. Create Stack
2. Push Stack
3. Pop Stack
4. Stack Top
5. Empty Stack
6. Full Stack
7. Stack Count
8. Destroy Stack
การคำนวณนิพจน์ทางคณิตศาสตร์
ในการเขียนนิพจน์ทางคณิตศาสตร์เพื่อการคำนวณ จะต้องคำนึงถึงลำดับความสำคัญของเครื่องหมาสำหรับการคำนวณด้วย โดยทั่วไปนิพจน์ทางคณิตศาสตร์สามารถเขียนได้ 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

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

DTS06-28/07/2009

#include"iostream.h"

#include"iomanip.h"



int main()

{
cout << setw(6) << 1 << endl;

cout << setw(6) << 15 << endl;

cout << setw(6) << 378 << endl;

cout << setw(6) << 4600 << endl;

cout << setw(6) << 666666 << endl;

cout << "============================" << endl;

cout << "Name Score Grade" << endl;

cout << "============================";

cout << endl;

cout << setw(6) << "Krirk" << setw(10) << 90 << setw(6) << "A";

cout << endl;

cout << setw(6) << "Pung" << setw(10) << 78 << setw(6) << "B";

cout << endl;

cout << setw(6) << "Tum" << setw(10) << 17 << setw(6) << "F";

cout << endl;

cout << setw(6) << "Keakai" << setw(10) << 100 << setw(6) << "A";


return 0;

}

DTS 05-28/07/2009

สรุปเรื่อง 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)

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

DTS04-15/07/2009

สรุป set and string มีโครงสร้างอยู่ 2 แบบ คือ โครงสร้างข้อมูลแบบเซ็ตและโครงสร้างข้อมูลแบบสตริง
โครงสร้างข้อมูลแบบเซ็ต เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กัน ในภาษาซีจะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับในภาษา ปาสคาล แต่สามารถใช้หลักการของการดำเนินงานแบบเซ็ตมาใช้ได้
ตัวดำเนินการของเซ็ต (Set operators)ประกอบด้วย
- set intersection
- set union
- set difference เป็นต้น
โครงสร้างข้อมูลแบบสตริง สตริง (String) หรือ สตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตั;อักษร ตัวเลขหรือ เครื่องหมายเรียงติดต่อกันไป รวมทั้งช่องว่างการประยุกต์ใช้คอมพิวเตอร์ที่เกี่ยวกับข้อมูลที่เป็นสตริงมีการนำไปใช้สร้างโปรแกรมประเภทบรรณาธิการข้อความ(text editor) หรือโปรแกรมประเภทประมวลผลคำ (word processing) ซึ่งมีการทำงานที่อำนวยความสะดวกหลายอย่างเช่น การตรวจสอบข้อความ การจัดแนวข้อความในแต่ละย่อหน้า และการค้นหาคำ เป็นต้น
สตริงกับอะเรย์ สตริง คือ อะเรย์ของอักขระ เช่น char a[6] อาจจะเป็นอะเรย์ขนาด 6 ช่องอักขระ หรือ เป็นสตริงขนาด 5 อักขระก็ได้ โดยจุดสิ้นสุดของ string จะจบด้วย \0 หรือ null character เช่น
char a[ ]={‘H’, ‘E’, ‘L’, ‘L’, ‘O’, ‘\0’};
char a[ ]=“HELLO”;
การกำหนดตัวแปรสตริง ในการกำหนดตัวแปรของสตริง อาศัยหลักการของอะเรย์ เพราะ สตริงก็คืออะเรย์ของอักขระที่ปิดท้ายด้วย null character (\0) และมีฟังก์ชันพิเศษสำหรับทำงานกับสตริงโดยเฉพาะเช่น ต้องการสตริงสำหรับเก็บชื่อบุคคลยาวไม่เกิน 30อักขระ ต้องกำหนดเป็นอะเรย์ขนาด 31 ช่อง เพื่อเก็บ null character อีก 1 ช่อง
อะเรย์ของสตริง ถ้าหากมีสตริงจำนวนมาก ก็ควรจะทำให้เป็นอะเรย์ของสตริง เพื่อที่จะเขียนโปรแกรมได้สะดวก การสร้างอะเรย์ของ
สตริง สามารถสร้างได้ทั้งแบบที่ให้ค่าเริ่มต้นและแบบที่กำหนดเป็นตัวแปร
อะเรย์ของสตริงที่ยาวเท่ากัน อะเรย์ในลักษณะนี้จะถือว่าเป็นอะเรย์ที่แท้จริง และสามารถกำหนดได้ทั้งเมื่อมีการให้ค่าเริ่มต้น และเมื่อกำหนดเป็นตัวแปร โดยดำเนินการตามแบบการกำหนดอะเรย์ 2 มิติ การกำหนดตัวแปรในลักษณะนี้ จะแตกต่างจากการกำหนดตัวแปรแบบความยาวไม่เท่ากัน คือ ในแบบความยาวไม่เท่ากัน ท้ายของสตริงจะเครื่องจะเติม null character ให้เพียงตัวเดียว แต่ในแบบความยาวเท่ากัน จะเติม null character ให้จนครบทุกช่อง
การดำเนินการเกี่ยวกับสตริง ในการดำเนินการเกี่ยวกับสตริง จะมีฟังก์ชันที่อยู่ในแฟ้ม ข้อมูล stdio.h เก็บอยู่ใน C Library อยู่แล้วสามารถนำมาใช้ได้ โดยการใช้คำสั่ง #include ในการเรียกใช้ เช่น
- ฟังก์ชัน strlen(str) ใช้หาความยาวของสตริง
- ฟังก์ชัน strcpy (str1,str2) ใช้คัดลอกข้อมูลจาก string หนึ่งไปยังอีก string หนึ่ง
- ฟังก์ชัน strcat(str1,str2) ใช้เชื่อมต่อข้อความ2 ข้อความเข้าด้วยกัน
- ฟังก์ชัน strcmp(str1,str2 ) ใช้เปรียบเทียบข้อความ 2 ข้อความว่ามีค่าเท่ากันหรือไม่ ถือหลักการเปรียบเทียบแบบพจนานุกรม เช่น abcda จะมีค่าน้อยกว่า abcde และ abcdf จะมีค่ามากกว่า abcde ค่าที่เท่ากัน คือ ค่าที่เหมือนกัน เช่น abcd กับ abcd สำหรับอักษรตัวเล็กตัวใหญ่ จะถือว่าอักษรตัวใหญ่มีค่าน้อยกว่าอักษรตัวเล็ก ตามลำดับรหัส ASCII

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

DTS 03-30/06/2009

สรุปย่อ บทที่2
อะเรย์เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มีลักษณะคล้ายเซ็ตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจำนวนคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บที่มีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลักการกำหนด Arrayการกำหนดอะเรย์จะต้องกำหนดชื่ออะเรย์ พร้อมsubscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้
มากกว่า 1 ตัวจำนวน subscript จะเป็น ตัวบอกมิติของอะเรย์นั้น อะเรย์ที่มี subscript มากกว่า 1 ตัวขึ้นไป จะเรียกว่า อะเรย์หลายมิติ การกำหนด subscript แต่ละตัวจะประกอบไปด้วย ค่าสูงสุดและ ค่าต่ำสุดของ subscript
ข้อกำหนดของการกำหนดค่าต่ำสุดและค่าสูงสุดของ subscript คือ
1. ค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
2. ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound)
3. ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound)
ค่า subscript ที่ใช้อ้างอิงถึงสมาชิก จะต้องมีค่ามากกว่า หรือเท่ากับขอบเขตล่าง และน้อยกว่า หรือเท่ากับขอบเขตบนจำนวนสมาชิกหรือขนาดของอะเรย์ n มิติ หาได้จาก ขนาดของอะเรย์ = ผลคูณของขนาดของsubscript แต่ละตัว
การส่งอะเรย์ให้ฟังก์ชันสามารถกำหนดอะเรย์เป็นพารามิเตอร์ส่งให้กับฟังก์ชันได้ 2 ลักษณะ
1. การกำหนด array element เป็นพารามิเตอร์ส่งค่าให้กับฟังก์ชัน ทำได้โดยอ้างถึงชื่ออะเรย์พร้อมระบุ subscript
2. ส่งอะเรย์ทั้งชุดให้ฟังก์ชันทำได้โดยอ้างถึงชื่ออะเรย์โดยไม่มี subscript
การประกาศอาร์กิวเมนต์ในฟังก์ชันเป็นอะเรย์ถ้าเป็นอะเรย์มิติเดียว สามารถทำได้ทั้งหมด 3 วิธี
1. มีการประกาศขนาดของอะเรย์ที่ทำหน้าที่ในการรับค่า
2. ไม่ต้องมีการประกาศขนาดของอะเรย์ที่ทำหน้าที่ในการรับค่า
3. ตัวแปรที่ทำหน้าที่รับค่าถูกกำหนดเป็นพอยน์เตอร์
การประกาศอาร์กิวเมนต์ในฟังก์ชันเป็นอะเรย์
1. มีการประกาศขนาดของอะเรย์ที่ทำหน้าที่ในการรับค่า
2. ไม่ต้องมีการประกาศขนาดของอะเรย์ที่ทำหน้าที่ในการรับค่า
3. ตัวแปรที่ทำหน้าที่รับค่าถูกกำหนดเป็นพอยน์เตอร์
Record or Structureเป็นโครงสร้างข้อมูลที่ประกอบขึ้นมาจากข้อมูลพื้นฐานต่างประเภทกัน รวมเป็น 1 ชุดข้อมูล คือจะประกอบด้วย data element หรือ field ต่างประเภทกันอยู่รวมกัน ในภาษา C ก็คือการกำหนดข้อมูลเป็นรูปแบบของStructure
Structure คือ โครงสร้างที่สมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้ โดยที่ใน structure อาจมีสมาชิกเป็นจำนวนเต็ม ทศนิยม อักขระ อะเรย์ หรือพอยเตอร์ หรือแม้แต่ structure ด้วยกันก็ได้การประกาศสมาชิกแต่ละตัวของ structure
สมาชิกแต่ละตัวของ structure จะเป็นตัวแปรธรรมดา พอยน์เตอร์ อะเรย์หรือ structure ตัวอื่นก็ได้ โดยชื่อของสมาชิกแต่ละตัวต้องแตกต่างกันการกำหนดค่าเริ่มต้นให้กับสมาชิกของ structure สามารถกำหนดค่าเริ่มต้นให้กับสมาชิกของ structure ได้โดยค่าเริ่มต้นที่จะกำหนดให้กับสมาชิกตัวใด จะต้องอยู่ในตำแหน่งที่ตรงกับสมาชิกตัวนั้นค่าเริ่มต้นจะต้องอยู่ในวงเล็บปีกกาและข้อมูลค่าเริ่มต้นแต่ละตัวแยกกันด้วยเครื่องหมาย ,
Structure กับ pointerเราสามารถที่จะอ้างถึงที่อยู่เริ่มต้นของ structure ได้เหมือนกับตัวแปรอื่น ๆ โดยใช้ตัวดำเนินการ & ดังนั้น ถ้า variable เป็นตัวแปรประเภท structure & variable จะเป็นเลขที่อยู่เริ่มต้นของตัวแปร นอกจากนี้ยัง
สามารถประกาศตัวแปรพอยน์เตอร์สำหรับ structure ดังนี้
type *ptvar
type คือ ประเภทข้อมูลที่เป็น structure
ptvar คือ ชื่อของตัวแปรพอยน์เตอร์
การผ่าน structure ให้ฟังก์ชัน
1. ส่งสมาชิกแต่ละตัวของ structure สมาชิกแต่ละตัวของ structure สามารถส่งเป็นอาร์กิวเมนต์ ของฟังก์ชันและส่งกลับจากฟังก์ชันได้โดยใช้คำสั่ง return ซึ่งมีทั้งการส่งค่าของตัวแปรที่อยู่ในตัวแปรstructure และก็ส่งตำแหน่งที่อยู่ของตัวแปรนั้น ๆ ไปยังฟังก์ชัน
2. ส่งผ่านทั้ง structure ให้กับฟังก์ชันจะส่งผ่านในลักษณะของพอยน์เตอร์ไปยัง structure โดยหลักการจะเหมือนกับการส่งผ่านอะเรย์ไปให้ฟังก์ชัน ซึ่งเป็นลักษณะที่เรียกว่า
Pass by reference

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

DTS02-23/06/2009

สรุป

โครงสร้างข้อมูล

  • โครงสร้างข้อมูล คือ ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างนั้นๆ รวมทั้งกระบวนการในการจัดการข้อมูลในโครงสร้าง หน่วยข้อมูลย่อย (Data Elements) ที่ถูกจัดวางได้อย่างเหมาะสม

  • วัตถุประสงค์

1. เพื่อให้เข้าใจในโครงสร้างข้อมูล

2. เพื่อให้ประเภทของโครงสร้างข้อมูล

3. เพื่อให้เข้าใจในการจัดสรรหน่วยความจำหลัก

4. เพื่อให้เข้าใจและเขียนขั้นตอนได้

  • ลักษณะของการทำงานแบบทำซ้ำ มีลักษณะการทำงานอยู่ 2 ลักษณะคือ

1. ทำการตรวจสอบเงื่อนไขก่อนการทำซ้ำหรือ ทำในขณะที่ ( Do – While )

2. ทำการตรวจสอบเงื่อนไขหลังจากการทำซ้ำหรือทำจนกระทั่ง ( Do – Until )

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

DTS02-23/06/2009

#include<stdio.h>
#include<string.h>
int main(void)
{
struct MyMobilePhone{
char mobile_phone[10];
char generation[70];
char system[70];
char operatingsystem[70];
char thesystemshakes[70];
int weight;
int high;
float price;
}data;
strcpy(data.mobile_phone,"Nokia");
strcpy(data.generation,"5800 express music");
strcpy(data.system,"Quadband GSM 850/900/1800/1900 MHz");
strcpy(data.operatingsystem,"Symbian OS version 9.4 - S60 5th edition");
strcpy(data.thesystemshakes,"Vibration in Phone");
data.weight=109;
data.high=111;
data.price=13500;

printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n");
printf("<<<<<<<<<<< My MobilePhone >>>>>>>>>> \n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n");
printf(" mobilephone : %s\n",data.mobile_phone);
printf(" generation : %s\n",data.generation);
printf(" system : %s\n",data.system);
printf(" operatingsystem : %s\n",data.operatingsystem);
printf(" thesystemshakes : %s\n",data.thesystemshakes);
printf(" weight : %d\n",data.weight);
printf(" high : %d\n",data.high);
printf(" price : %.2f\n",data.price);
}

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

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

ประวัติ

นายวิรัตน์ สระทองอ่อน รหัสประจำตัว 50132792046

Mr.Wirat Sathongoon

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

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

E-mail : u50132792046@gmail.com