วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2552
ลูกแรดเตรียมพร้อมล่าเหยื่อ
วันศุกร์ ที่ 26 เดือน มิถุนายน พ.ศ. 2552
วันปฐมนิเทศน์
- ได้รู้จักการเตรียมความพร้อมก่อนที่จะเข้าเรียนในรายวิชาเตรียมฝึกประสบการณ์วิชาชีพ
- ได้รู้กฏระเบียบของการเข้าเรียน การมาเรียนในรายวิชาเตรียมฝึกประสบการณ์วิชาชีพ
- ได้รู้การปฏิบัติตัวที่ดีให้อยู่ในกฏระเบียบที่วางไว้
- ได้รู้เกณฑ์การตัดสินคะแนนในรายวิชาเตรียมฝึกประสบการณ์วิชาชีพ
วันศุกร์ ที่ 3 เดือน กรกฏาคม พ.ศ. 2552
หลักการประกันคุณภาพ
- รู้จักความหมายของหลักการประกันคุณภาพ
- รู้ว่ามหาวิทยาลัยใช้หลักการประกันคุณภาพอย่างไร
- รู้จักการวางแผนในการทำงาน
วันศุกร์ ที่ 10 เดือน กรกฏาคม พ.ศ. 2552
คุณธรรมจริยธรรม
- ได้รับความรู้เกี่ยวกับเรื่องของคุณธรรม จริยธรรม
- รู้จักหลักการดำเนินชีวิตในชีวิตประจำวัน
- ได้นำหลักธรรมที่เรียนมาปรับใช้ในชีวิตประจำวัน
- ได้พัฒนาความรู้เกี่ยวกับการใช้ปัญญาแก้ปัญหา
วันศุกร์ ที่ 17 เดือน กรกฏาคม พ.ศ. 2552
การเงินส่วนบุคคล
- ได้ความรู้เกี่ยวกับแหล่งการเ งิน
- ได้จัดทำการบันทึกรายรับ-รายจ่ายให้ทราบเกี่ยวกับการใช้เงิน รู้จักการอดออม และการประหยัด
- ได้ความรู้เรื่องการบริหารการเงิน
วันศุกร์ ที่ 24 เดือน กรกฏาคม พ.ศ. 2552
การพัฒนาบุคคลิกภาพ
- รู้จักการแต่งกายให้ถูกระเบียบ ถูกกาละเทศะ และตามโอกาสต่างๆ
- รู้เรื่องการแต่งหน้าตามโอกาสต่างๆ
- ได้เรียนรู้เรื่องการพัฒนาบุคคลิกภาพตนเอง
วันศุกร์ ที่ 7เดือน สิงหาคม พ.ศ2552
กิจกรรมแขนงคอมพิวเตอร์
- ได้รู้จักการทำงานอย่างเป็นกระบวนการของแขนง
- ได้ช่วยงานอาจารย์ทำให้มีความรู้ในเรื่องของการทำงาน
- ได้ความรู้เรื่องเกี่ยวกับการทำงานของคอมพิวเตอร์
- ได้รู้ว่าหลังจากจบการศึกษาในแขนงวิชาคอมพิวเตอร์แล้วจะไปทำงานอะไรต่อไปใน
อนาคต
วันศุกร์ ที่ 14 เดือน สิงหาคม พ.ศ. 2552
กิจกรรมแขนงธุรกิจระหว่างประเทศ
- รู้จักในเรื่องของวัฒนธรรม ความเชื่อ แนวความคิดระหว่างประเทศ
วันศุกร์ ที่ 21 เดือน สิงหาคม พ.ศ. 2552
กิจกรรมแขนงการตลาด
- รู้จักเส้นทางแห่งความสำเร็จ
- รู้วิธีการดำเนินชีวิตที่ดี การทำงานอย่างมีประสิทธิภาพ
วันศุกร์ ที่ 11 เดือน กันยายน พ.ศ. 2552
ภาษาไทยในชีวิตประจำวัน
-รู้จักประเภทของภาษาไทย
- การใช้ภาษาไทยที่ถูกต้อง
- การรักษาวัฒนธรรมการใช้ภาษาไทย
- การใช้ภาษาไทยในโอกาสต่างๆ
วันศุกร์ ที่ 18 เดือน กันยายน พ.ศ. 2552
วันปัจฉิมนิเทศ
- รู้จักการกตัญญูกตเวทีต่อผู้มีพระคุณ
- การอยู่ร่วมกันอย่างเป็นสุข สงบสุขในสังคม
- การแก้ปัญหาเมื่อปัญหาเกิดขึ้นอย่างถูกต้อง
วันพุธที่ 16 กันยายน พ.ศ. 2552
DTS10-16/09/52
เป็นวิธีการเรียงลำดับที่ใช้เวลาน้อยเหมาะสำหรับข้อมูลที่มีจำนวนมากที่ต้องการความรวดเร็วในการทำงาน วิธีนี้จะเลือกข้อมูลจากกลุ่มข้อมูลขึ้นมาหนึ่งค่าเป็นค่าหลัก แล้วหาตำแหน่งที่ถูกต้องให้กับค่าหลักนี้ เมื่อได้ตำแหน่งที่ถูกต้องแล้ว ใช้ค่าหลักนี้เป็นหลักในการแบ่งข้อมูลออกเป็นสองส่วนถ้าเป็นการเรียงลำดับจากน้อยไปมาก ส่วนแรกอยู่ในตอนหน้าข้อมูล ทั้งหมดจะมีค่าน้อยกว่าค่าหลักที่อีกส่วนหนึ่งจะอยู่ในตำแหน่งตอนหลังข้อมูลทั้งหมด จะมีค่ามากกว่าค่าหลัก แล้วนำแต่ละส่วนย่อยไปแบ่งย่อยในลักษณะเดียวกันต่อไปจนกระทั่งแต่ละส่วนไม่สามารถแบ่งย่อยได้อีกต่อไปจะได้ข้อมูลที่มีการเรียงลำดับตามที่ต้องการถ้าเป็นการเรียงลำดับจากน้อยไปมากการเปรียบเทียบเพื่อหาตำแหน่งให้กับค่าหลักตัวแรกเริ่มจากข้อมูลในตำแหน่งแรกหรือสุดท้ายก็ได้ ถ้าเริ่มจากข้อมูลที่ตำแหน่งที่ 1เป็นค่าหลัก พิจารณาเปรียบเทียบค่าหลักกับข้อมูลในตำแหน่งสุดท้าย ถ้าค่าหลักมีค่าน้อยกว่าให้เปรียบเทียบกับข้อมูลในตำแหน่งรองสุดท้ายไปเรื่อย ๆ จนกว่าจะพบค่าที่น้อยกว่าค่าหลัก แล้วให้สลับตำแหน่งกันหลังจากสลับตำแหน่งแล้วนำค่าหลักมาเปรียบเทียบกับข้อมูล ในตำแหน่งที่ 2, 3,ไปเรื่อย ๆ จนกว่าจะพบค่าที่มากกว่าค่าหลักสลับตำแหน่งเมื่อเจอข้อมูลที่มากกว่าค่าหลัก ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งได้ตำแหน่งที่ถูกต้องของค่าหลักนั้น ก็จะแบ่งกลุ่มข้อมูลออกเป็นสองส่วน ส่วนแรกข้อมูลทั้งหมดมีค่าน้อยกว่าค่าหลักและส่วนที่สองข้อมูลทั้งหมดมีค่ามากกว่าค่าหลัก
การเรียงลำดับแบบแทรก (insertion sort)
เป็นวิธีการเรียงลำดับที่ทำการเพิ่มสมาชิกใหม่เข้าไปในเซต ที่มีสมาชิกทุกตัวเรียงลำดับอยู่แล้ว และทำให้เซตใหม่ที่ได้นี้มีสมาชิกทุกตัวเรียงลำดับด้วย วิธีการเรียงลำดับจะ1. เริ่มต้นเปรียบเทียบจากข้อมูลในตำแหน่งที่ 1 กับ 2หรือข้อมูลในตำแหน่งสุดท้ายและรองสุดท้ายก็ได้ถ้าเป็นการเรียงลำดับจากน้อยไปมาก2. จะต้องจัดให้ข้อมูลที่มีค่าน้อยอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก และถ้าเรียงจากมากไปน้อยจะก็จะจัดให้ข้อมูลที่มีค่ามากอยู่ในตำแหน่งก่อน
การเรียงลำดับแบบฐาน (radix sort)
เป็นการเรียงลำดับโดยการพิจารณาข้อมูลทีละหลัก
1. เริ่มพิจารณาจากหลักที่มีค่าน้อยที่สุดก่อน นั่นคือถ้าข้อมูลเป็นเลขจำนวนเต็มจะพิจารณาหลักหน่วยก่อน
2. การจัดเรียงจะนำข้อมูลเข้ามาทีละตัว แล้วนำไปเก็บไว้ที่ซึ่งจัดไว้สำหรับค่านั้น เป็นกลุ่ม ๆตามลำดับการเข้ามา
3. ในแต่ละรอบเมื่อจัดกลุ่มเรียบร้อยแล้ว ให้รวบรวมข้อมูลจากทุกกลุ่มเข้าด้วยกัน โดยเริ่มเรียงจากกลุ่มที่มีค่าน้อยที่สุดก่อนแล้วเรียงไปเรื่อย ๆ จนหมดทุกกลุ่ม
4. ในรอบต่อไปนำข้อมูลทั้งหมดที่ได้จัดเรียงในหลักหน่วยเรียบร้อยแล้วมาพิจารณาจัดเรียงในหลักสิบต่อไป ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งครบทุกหลักจะได้ข้อมูลที่เรียงลำดับจากน้อยไปมากตามต้องการ
วันพุธที่ 9 กันยายน พ.ศ. 2552
DTS09-09/09/52
Sorting
DTS08-02/09/52
Graph
วันพฤหัสบดีที่ 27 สิงหาคม พ.ศ. 2552
DTS07-26/08/52
Tree
2. แทนทรีด้วยไบนารีทรีเป็นวิธีแก้ปัญหาเพื่อลดการ สิ้นเปลืองเนื้อที่ในหน่วยความจำก็คือกำหนดลิงค์ฟิลด์ให้มีจำนวนน้อยที่สุดเท่าที่จำเป็นเท่านั้น
โดยกำหนดให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์สองลิงค์ฟิลด์
-ลิงค์ฟิลด์แรกเก็บที่อยู่ของโหนดลูกคนโต
-ลิงค์ฟิลด์ที่สองเก็บที่อยู่ของโหนดพี่น้องที่เป็นโหนดถัดไป
โหนดใดไม่มีโหนดลูกหรือไม่มีโหนดพี่น้องให้ค่าพอยน์เตอร์ในลิงค์ฟิลด์มีค่าเป็น Null
วันพฤหัสบดีที่ 20 สิงหาคม พ.ศ. 2552
DTS06-05/08/52
คิวเป็นโครงสร้างข้อมูลแบบลำดับ (Sequential) ลักษณะของคิวเราสามารถพบได้ในชีวิตประจำวัน เช่น การเข้าแถวตามคิวเพื่อรอรับบริการต่างๆ ลำดับการสั่งพิมพ์งาน เป็นต้น ซึ่งจะเห็นได้ว่าลักษณะของการทำงานจะเป็นแบบใครมาเข้าคิวก่อนจะ ได้รับบริการก่อน เรียกได้ว่าเป็นลักษณะการทำงานแบบ FIFO (First In , First Out)
ลักษณะของคิว จะมีปลายสองข้าง ซึ่งข้างหนึ่งจะเป็นช่องทางสำหรับข้อมูลเข้าที่เรียกว่า REAR และอีกข้างหนึ่งซึ่งจะเป็นช่องทางสำหรับข้อมูลออก เรียกว่า FRONT
ในการทำงานกับคิวที่ต้องมีการนำข้อมูลเข้าและออกนั้น จะต้องมีการตรวจสอบว่าคิวว่างหรือไม่ เมื่อต้องการนำข้อมูลเข้า เพราะหากคิวเต็มก็จะไม่สามารถทำการนำข้อมูลเข้าได้ เช่นเดียวกัน เมื่อต้องการนำข้อมูลออกก็ต้องตรวจสอบด้วยเช่นกัน ว่าในคิวมีข้อมูลอยู่หรือไม่ หากคิวไม่มีข้อมูลก็จะไม่สามารถนำข้อมูลออกได้เช่นกัน
การแทนที่ข้อมูลของคิว มี 2 วิธี คือ
1.การ แทนที่ข้อมูลของคิวแบบอะเรย์ ซึ่งเป็นการจัดสรรเนื้อที่หน่วยความจำแบบสแตติก นั่นคือ มีการกำหนดขนาดของคิวล่วงหน้าว่ามีขนาดเท่าใดและจะมีการจัดสรรเนื้อที่หน่วย ความจำให้เลย
2.การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์ ประกอบไปด้วย 2 ส่วน
2.1. Head Node มี 3 ส่วน มีพอยเตอร์ 2 ตัว และ จำนวนสมาชิก
2.2. Data Node จะมีข้อมูล และ พอยเตอร์ชี้ตัวถัดไป
การดำเนินการเกี่ยวกับคิว
1.Create Queue คือการสร้างคิวขึ้นมา แล้วจัดสรรหน่วยความจำให้กับ Head Node และพอยเตอร์มีค่าเป็น Null
2.Enqueue คือ การเพิ่มข้อมูลลงไปในคิวโดยการเพิ่มจะเพิ่มจากส่วนท้าย
3.Dequeue คือ การนำข้อมูลในคิวออก จะออกโดยข้อมูลที่เข้าไปตัวแรกจะออกก่อน
4.Queue Front คือ การนำข้อมูลตัวแรกที่เข้าไปในคิวออกมาแสดง
5.Queue Rear คือ การนำข้อมูลตัวสุดท้ายที่เข้ามาในคิวออกมาแสดง
6.Empty Queue คือ เป็นการตรวจสอบว่าคิวนั้นยังคงว่างอยู่หรือไม่
7.Full Queue คือ เป็นการตรวจสอบว่าคิวนั้นเต็มหรือไม่
8.Queue Count คือ เป็นการนับจำนวนข้อมูลที่อยูในคิว ว่ามีจำนวนเท่าไร
9.Destroy Queue คือ การลบข้อมูลที่อยูในคิวทิ้ง
การเพิ่มข้อมูลเข้าไปในคิว
การจะเพิ่มข้อมูลเข้าไปในคิว จะกระทำที่ตำแหน่ง REAR หรือท้ายคิว และก่อนที่จะเพิ่มข้อมูลจะต้องตรวจสอบก่อนว่าคิวเต็มหรือไม่ โดยการเปรียบเทียบค่า REAR ว่า เท่ากับค่า MAX QUEUE หรือไม่ หากว่าค่า REAR = MAX QUEUE แสดงว่าคิวเต็มไม่สามารถเพิ่มข้อมูลได้ แต่หากไม่เท่า แสดงว่าคิวยังมีที่ว่างสามารถเพิ่มข้อมูลได้ เมื่อเพิ่มข้อมูลเข้าไปแล้ว ค่า REAR ก็จะเป็นค่าตำแหน่งท้ายคิวใหม่
การนำข้อมูลออกจากคิว
การนำข้อมูลออกจากคิวจะกระทำที่ตำแหน่ง FRONT หรือส่วนที่เป็นหัวของคิว โดยก่อนที่จะนำข้อมูลออกจากคิวจะต้องมีการตรวจสอบก่อนว่ามีข้อมูลอยู่ในคิว หรือไม่ หากไม่มีข้อมูลในคิวหรือว่าคิวว่าง ก็จะไม่สามารถนำข้อมูลออกจากคิวได้
DTS05-29/07/52
การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสตจะประกอบไปด้วย 2 ส่วน คือ
1. Head Node จะประกอบไปด้วย 2ส่วนคือ top pointer และจำนวนสมาชิกในสแตก
2. 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 เป็นการลบข้อมูลทั้งหมดที่อยู่ใน สแตก
8.Destroy Stack เป็นการลบข้อมูลทั้งหมดที่อยู่ใน สแตก
การใช้ สแตค เพื่อแปลรูปนิพจน์ทางคณิตศาสตร์
รูปแบบนิพจน์ทางคณิตศาสตร์
• นิพจน์ Infix คือ นิพจน์ที่เครื่องหมายดำเนินการ (Operator) อยู่ระหว่างตัวดำเนินการ (Operands) เช่น A+B-C
• นิพจน์ Prefix คือ นิพจน์ที่เครื่องหมายดำเนินการ (Operator) อยู่หน้าตัวดำเนินการ (Operands) เช่น +-AB
• นิพจน์ Postfix คือ นิพจน์ที่เครื่องหมายดำเนินการ (Operator) อยู่หลังตัวดำเนินการ (Operands) เช่น AC*+
ลำดับการทำงานของตัวดำเนินการทางคณิตศาสตร์ (Operator Priority)
มีการลำดับความสำคัญของตัวดำเนินการจากลำดับสำคัญมากสุดไปน้อยสุด คือ ลำดับที่มีความสำคัญมากที่ต้องทำก่อน ไปจนถึงลำดับที่มีความสำคัญน้อยสุดที่ไว้ทำทีหลัง ดังนี้
เครื่องหมายบวก ( + ) , ลบ ( - )
เครื่องหมายคูณ ( * ) , หาร ( / )
เครื่องหมายวงเล็บเปิด (
เครื่องหมายวงเล็บปิด )
ขั้นตอนการแปลงจากนิพจน์ Infix เป็นนิพจน์ Postfix
1. อ่านอักขระในนิพจน์ Infix เข้ามาทีละตัว
2. ถ้าเป็นตัวถูกดำเนินการจะถูกย้ายไปเป็นตัวอักษรในนิพจน์ Postfix
3. ถ้าเป็นตัวดำเนินการ จะนำค่าลำดับความสำคัญของตัว ดำเนินการที่อ่านเข้ามาเทียบกับค่าลำดับความสำคัญของตัวดำเนินการที่อยู่บนสุดของสแตก
- ถ้ามีความสำคัญมากกว่า จะถูก push ลงในสแตก
- ถ้ามีความสำคัญน้อยกว่าหรือเท่ากัน จะต้อง pop ตัวดำเนินการที่อยู่ในสแตกขณะนั้นไปเรียงต่อกับตัวอักษรในนิพจน์ Postfix
4. ตัวดำเนินการที่เป็นวงเล็บปิด “)” จะไม่ push ลงในสแตกแต่มีผลให้ตัวดำเนินการอื่น ๆ ถูก pop ออกจากสแตกนำไป เรียงต่อกันในนิพจน์ Postfix จนกว่าจะเจอ “(” จะ popวงเล็บเปิดออกจากสแตกแต่ไม่นำไปเรียงต่อ
5. เมื่อทำการอ่านตัวอักษรในนิพจน์ Infix หมดแล้ว ให้ทำการ Pop ตัวดำเนินการทุกตัวในสแตกนำมาเรียงต่อในนิพจน์Postfix
เช่น
*** เครื่องหมายดำเนินการ (operand) ได้แก่เครื่องหมาย + - * ^ ตัวถูกดำเนินการ ได้แก่ สัญลักษณ์แทนค่าตัวเลข เช่น A B C Dหรือตัวแปรอื่น
สำหรับการดำเนินการด้านการคำนวณนั้น ในระบบคอมพิวเตอร์ไม่สามารถที่จะจัดลำดับของการคำนวณในรูปแบบของ infix ได้ แต่จะแปลงเป็นนิพจน์ของ infix หรือ prefix เสียก่อน โดยลักษณะของการแปลงนิพจน์จะใช้การเปรียบเทียบความสำคัญของตัวดำเนินการ
ลำดับความสำคัญของตัวดำเนินการ
+ -
* /
(
)
ขั้นตอนการแปลง infix เป็น postfix
1.อ่านอักขระใน infix
2.ถ้าเป็น operand ย้ายไปใส่ใน postfix
3.ถ้าเป็น operator จะต้องดูลำดับความสำคัญของตัวดำเนินการด้วยแล้วใส่ลงในสแตกที่เก็บตัวดำเนินการ ถ้ามีค่ามากกว่าให้ push ถ้ามีค่าน้อยกว่าหรือเท่ากันให้ pop ออกแล้วไปเรียงต่อตัวอักษรใน postfix
4.ตัวดำเนินการที่เป็น ) จะไม่ถูก push แต่จะทำให้ตัวดำเนินการตัวอื่นถูก pop ออกมาแล้วไปเรียงต่อใน postfix
5.เมื่ออ่านอักขระใน infix หมด ให้ pop ตัวดำเนินการทุกตัวมาเรียงต่อใน postfix
*** ถ้าเจอเครื่องหมาย + - หลังเครื่องหมาย * / ให้ pop เครื่องหมายในสแตกออก
ถ้าเจอเครื่องหมาย * / หลังเครื่องหมาย + - ให้ push ลงในสแตก
การคำนวณค่า postfix
1.อ่านตัวอักษรจาก postfix ที่ละตัว
2.ถ้าเป็น operand ให้ push ไปเรื่อยๆ
3.ถ้าเป็น operator ให้ pop ตัวอักษรออก 2 ตัว แล้วทำการคำนวณตัวที่ถูก pop ที่หลังจะเป็นตัวตั้งแล้วนำ push ผลลัพธ์ลงไป
วันอังคารที่ 28 กรกฎาคม พ.ศ. 2552
DTS04-22/07/52
ในการในการอ่านข้อมูลออกจากสแต็กนั้น จะทำการเพิ่มค่าของ SP ขึ้นครั้ง 2 ไบต์ในการอ่านแต่ละครั้ง เพราะว่าในการอ่านแต่ละครั้งจะทำการอ่านครั้งละ 16 บิต ซึ่งต้องใช้หน่วยความจำ 2 ไบต์ และในอ่านข้อมูลออกจากสแต็ก นั้นใน 80x86 จะทำการอ่านไบต์ต่ำก่อน สมมุตว่าที่แอดเดรสที่ SS:1234Hมีข้อมูลดังนี้ 12H และที่ตำแหน่ง SS:1235Hมีข้อมูล 24Hตามลำดับ เมื่อเราใช้คำสั่ง POP AX ข้อมูลในรีจีสเตอร์ AX จะได้ดังนี้ AH=24H และAL=12H
ตัวอย่างสแตกที่เราเห็นในชีวิตประจำวันทั่วไป
1.เทปกาวสองหน้า = มันพันข้างในก่อนเวลาใช้ก็ต้องดึงข้างนอกออกใช้ก่อน
2.กล่องคุ๊กกี้ชิ้นใหญ่ๆที่มีคุ๊กกี้ = กล่องคุ๊กกี้ที่เรียงกันสวยๆจะเรียงอันล่างก่อนเวลากินก็ต้องกินจากข้างบน
ก่อน
3.ตู้ ATM = เงินที่เก็บอยู่ในตู้วางล่างสุดก่อนแล้วเวลาจะออกมาก็ใบบนออกมาก่อน
การบ้าน
แบบ Stdio.h
#include
void main()
{
int N1, N2, Sum;
printf("please input an integer number : ");
scanf("%d",&N1);
printf("please input another integer number : ");
scanf("%d",&N2);
Sum = N1 + N2;
printf("%d + %d = %d",N1,N2,Sum);
}
...................................................................................................................................
แบบ iostream.h
#include
void main()
{
int N1, N2, Sum;
cout<<"please input an integer number : "; cin>>N1;
cout<<"please input another integer number : "; cin>>N2;
Sum = N1 + N2;
cout
................................................................................................
0utput
แบบ Stdio.h
please input an integer number :......
please input another integer number :.......
เป็นผลรวม
แบบ iostream.h
please input an integer number :......
please input another integer number :.......
เป็นผลรวม
วันอังคารที่ 7 กรกฎาคม พ.ศ. 2552
DTS03-02/07/52
Pointer
เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่(Address) ของตัวแปรที่อยู่ในหน่วยความจำ
การประกาศชนิดของตัวแปรพอยน์เตอร์
รูปแบบ
type *variable-name
* หมายถึง เป็นเครื่องหมายที่แสดงว่า ตัวแปรที่ตามหลังเครื่องหมายนี้เป็นตัวแปรพอยน์เตอร์
type หมายถึง ชนิดของตัวแปร
variable-name
เป็นชื่อของตัวแปรที่ต้องการประกาศว่าเป็นชนิดพอยน์เตอร์
เครื่องหมายที่ใช้ทำงานกับตัวแปรพอยน์เตอร์
1. & หมายถึง เป็นเครื่องหมายที่ใช้เมื่อต้องการให้เอาค่าตำแหน่งที่อยู่ของตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้
ตัวอย่าง
char *prt;
หมายความว่า ประกาศค่าตัวแปร prt เป็นตัวแปรพอยน์เตอร์ ที่เก็บใช้ตำแหน่งเริ่มต้นที่จะเก็บ character
int *a;
หมายความว่า ประกาศค่าตัวแปร a เป็นตัวแปรพอยน์เตอร์ที่ใช้เก็บตำแหน่งเริ่มตนที่จะใช้เก็บ integer
2. เครื่องหมาย * มีการใช้สองลักษณะ คือ
- ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์ เช่น
void swap(int *p,int *q)
{
.........................
}
- ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำค่าที่อยู่ในตำแหน่งที่ตัวแปรพอยน์เตอร์นั้นชี้อยู่ออกมาแสดง
การใช้ตัวแปรพอยน์เตอร์กับอะเรย์
ตัวแปรพอยน์เตอร์จะใช้อ้างถึค่าที่เก็บไว้ในตัวแปรชุดได้ ดังนี้
ตัวอย่าง char str[80], *pl;
pl = str;
บรรทัดที่ 1 เป็นการประกาศว่า หะพ เป็นตัวแปรชุดชนิด character 1 มิติ มีขนาดสมาชิก 80 สมาชิกและpl เป็นตัวแปรพอยน์เตอร์
บรรทัดที่ 2 เป็นการอ้างถึงข้อมูลที่เก็บไว้ในตัวแปรชุด str โดยการนำตำแหน่งที่อยู่ของตัวแปร str[0] ซึ่งเป็นสมาชิกตัวแรกไปเก็บไว้ใน ตัวแปรพอยน์เตอร์ pl เหมือนกันใช้คำส่ง
pl = &str[0]
การอ้างถึงตัวแปรชุด สามารถอ้างถึงโดยการเพิ่มหรือลดตัวแปรพอยน์เตอร์ได้ เช่น ต้องการอ้างถึงตัวแปร
str[4] ทำได้โดย *(pl+4)
โครงสร้างข้อมูลแบบเซ็ต
เป็นโครงสร้างข้อมูลที่ข้อมูลแตละตัวไม่มีความสัมพันธ์กัน ในภาษาซีจะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับภาษาปาสคาล
โครงสร้างข้อมูลแบบสตตริง
สตริง หรือ สตริงของอักขระ เป็นข้อมูลที่ประกอบบไปด้วย ตัวอักษร ตัวเลขหรือเครื่องหมายเรียงติดต่อกันไป รวมทั้งช่องว่าง
การประยุกต์ใช้คอมพิวเตอร์ที่เกี่ยวกับข้อมูลที่เป็นสตริงมีการนำไปใช้สร้างโปรแกรมประเภทบรรณาธิการข้อความ หรือโปรแกรมประเภทประมวลคำ ซึ่งมีการทำงานที่อำนวยความสะดวกหลายอย่าง เช่น การตรวจสอบข้อความ การจัดแนวข้อความ ในแต่ละย่อหน้า และการค้นหาคำ เป็นต้น
เช่น "This is String !" จะเป็นข้อมูลแบบสตริงยาว 16 อักขระ
สตริงกับอะแรย์
สตริง คือ อะเรย์ของอักขระ เช่น char a[6]
อาจจะเป็นอะเรย์ขนาด 6 ช่องอักขระ หรือ เป็นสตริงขนาด 5 อักขระก้อได้ โดยจุดสิ้นสุดของ string จะจบด้วย \0 หรือ null character เช่น
char a[]={'H','E','L','L','o','\0'};
char a[]="hello";
วันเสาร์ที่ 27 มิถุนายน พ.ศ. 2552
DTS02-27/06/52
อาร์เรย์ เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า Linear List ซึ่งมีจำนวนรายการ ( Element) จำกัด และข้อมูลที่เก็บอยู่ในอาร์เรย์แต่ละช่องจะต้องเป็นข้อมูลชนิดเดียวกัน อยู่ภายใต้ตัวแปรชื่อเดียวกัน โดยขนาดของแต่ละช่องต้องเท่ากันหมด การอ้างถึงข้อมูลในแต่ละช่องของของอาร์เรย์ ต้องอาศัยตัวห้อย Subscript เช่น กำหนดให้ Array A มีขนาด 100 รายการ A[5] จะหมายถึง ค่าของอาร์เรย์ตำแหน่งที่ 5 ในอาร์เรย์นั้น ซึ่ง Subscript ก็คือ เลข 5 จำนวน Subscript ที่ต้องการใช้เวลาเรียกใช้ค่าใน Array เรียกว่า มิติ ไดเมนชั่น ( Dimention) ของ Array นั้น
ความหมายของอาร์เรย์
โครงสร้างข้อมูลแบบอาร์เรย์ (Array) หรือตัวแปรชุด มี 2 ความหมาย คือ
1. ความหมายโดยทั่วไปอาร์เรย์ หมายถึงโครงสร้างที่นำข้อมูลชนิดเดียว กันมาจัดเรียงกันเป็น n มิติเป็นโครงสร้าง ตารางรูปสี่เหลี่ยมผืนผ้า
2. ความหมายทางคอมพิวเตอร์อาร์เรย์ หมายถึง กลุ่มของช่วงความจำ ในหน่วยความที่ใช้เก็บข้อมูลชนิดเดียวกันและ ทุกช่องต้องมีขนาดเท่ากัน ภายใต้ตัวแปรเดียวกัน การสร้าง Array ขึ้นมาใช้งานนั้น ต้องคำนึงถึง 1. ชื่อของ Array 2. ขนาดของ Array แต่ละช่อง และมิติของ Array 3. ค่าสูงสุด ( Upper Bound) และค่าต่ำสุด (Lower Bound) ในแต่ละมิติ
ARRAY 1 มิติ
คือ Array ที่มีลักษณะเป็นตารางแถวเดียว Array 1 มิติ จะมีลักษณะโดยทั่วไปดังนี้
ถ้า Lower Bound = 1 สามารถเขียน Array เป็น A [u] ก็ได้ เช่น Ex1 ถ้าต้องการสร้าง Array N เพื่อเก็บตัวเลขประเภท Integer ให้มีขนาด 5 ช่อง N [1 : 5 ] สามารถเขียนเป็น N [5]
เนื่องจาก Integer 1 ตัวจะใช้เนื้อที่ในหน่วยความจำ 2 Bytes ดังนั้น Array N จะใช้เนื้อที่ในหน่วยความจำ ทั้งหมด 10 Bytes
หมายเหตุ ในภาษาซี ช่องแรกของอาร์เรย์จะเริ่มจาก 0
อาร์เรย์ 2 มิติ
ชื่อของอาร์เรย์ [ l1 : u1 , l2 : u2 ]
l1 คือ lower bound ของมิติที่ 1 u1 คือ upper bound ของมิติของที่ 1 l2 คือ lower bound ของมิติที่ 1 u2 คือ upper bound ของมิติของที่ 1
เช่น ARO [ 5 : 20 , 30 : 50 ] คือ การกำหนดให้ อาร์เรย์ 2 มิติ ชื่อ ARO มีจำนวน 16 ช่องทางด้านแนวนอน ( ROW) เริ่มที่ 5 ถึง 20 และ 21 ช่องทางด้านแนวตั้ง ( COLUMN) เริ่มที่ 30 ถึง 50 เช่นเดียวกับอาร์เรย์ 1 มิติ คือ ถ้า l1 หรือ l2 เป็น 1 ก็สามารถกำหนดโดยไม่ใส่ l1 หรือ l2 ก็ได้ เช่น STR [ 20 , 50 ] กำหนดให้ อาร์เรย์ 2 มิติ ชื่อ STR มีจำนวนช่อง 20 ช่องทางด้านแนวนอน ( ROW) โดยเริ่มที่ 1 ถึง 20 และ 50 ช่องทางด้านแนวตั้ง ( Column) เริ่มที่ 1 ถึง 50 หมายเหตุ ในภาษาซี การกำหนดอาร์เรย์ 2 มิติ ต้องประกาศดังนี้ ชื่อของอาร์เรย์ [ u1 ] [ u2 ] เช่น int num[5][10];
การคำนวณหาจำนวนช่องของ ARRAY 2 มิติ
m = u1 - l1 + 1
Structure
ประเภทของตัวแปร
• ตัวแปรเดี่ยว คือตัวแปรที่ขณะใดขณะหนึ่ง จะเก็บ
ข้อมูลได้ค่าเดียว เช่น
– char ch1;
– int x;
• ตัวแปรชุด คือตัวแปรที่เก็บข้อมูลประเภทเดียวกัน ได้
หลายค่า เช่น
– int num[ ] = {5, 7, 1, 18, 20};
– float f[10];
• ตัวแปรชนิด Structure คือตัวแปรที่สามารถเก็บ
ข้อมูลหลายประเภท ภายใต้ชื่อเดียวกัน
การประกาศตัวแปรแบบ Structure
แบบที่ 1
struct student
{
char name[30] ;
float score ;
float score ;
} ;
struct student st1,st2 ;
การประกาศทั้งสองแบบ จะได้ตัวแปร st1 และ st2
เป็นตัวแปรโครงสร้างชนิด student
แบบที่ 2
struct student
{
char name[30] ;
float score ;
float score ;
} st1,st2;
ความหมายของ Structure
• Structure หรือโครงสร้าง คือ กลุ่มของ
ข้อมูลที่มีชนิดเหมือนกันหรือต่างกันก็ได้
ซึ่งนำมารวมกลุ่มแล้วเรียกเป็นชื่อเดียวกัน
• Structure มีประโยชน์มากในการสร้างและ
จัดการโครงสร้างข้อมูลที่ซับซ้อน
การประกาศชนิดข้อมูลแบบ Structure
รูปแบบ
struct struct_name
{
type1 variable1;
type2 variable2;
...
typeN variableN;
} ;
จากตัวอย่าง เป็นการสร้างโครงสร้างข้อมูลชนิดใหม่ ชื่อว่า
student ซึ่งประกอบด้วยข้อมูล 3 ตัว คือ name (string) ,
score (float) และ grade (float)
ตัวอย่าง
struct student
{
char name[30];
float score;
float grade;
} ;
การกำหนดค่าเริ่มต้นให้กับตัวแปรแบบ Structure
• หลักการคล้ายกับการกำหนดค่าเริ่มต้นให้กับ
อาร์เรย์
• จะทำการกำหนดค่าเริ่มต้นไว้ในเครื่องหมาย { }
และแยกแต่ละค่าออกจากกันด้วยเครื่องหมาย ,
struct student
{
char name[30] ;
float score ;
float grade ;
} ;
struct student st1 = { “somchai”, 78.5, 3.5 } ;
name somchai
score 78.5
grade 3.5
st1
struct employee
วันศุกร์ที่ 26 มิถุนายน พ.ศ. 2552
ประวัติ
ประวัติ
ชื่อ นางสาว นิภาพร ใจโปร่ง
Name Nipaporn Jaiprong
ชื่อเล่น อ้อม
รหัส 50152792095
คณะวิทยาการจัดการ
แขนง บริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)
เกิด วันเสาร์ ที่ 3 เดือน กันยายน พ.ศ. 2531
ที่อยู่ในทะเบียนบ้าน
30/1 ม.7 ต.เทพราช อ.สิชล จ.นครศรีธรรมราช 80340
ที่อยุ่ปัจจุบัน
422/476 บ้านพักข้าราชการโรงพยาบาลพระมงกุฎ
ถนนราชวิถี แขวงทุ่งพญาไท เขตราชเทวี กรุงเทพมหานคร
10400
งานอดิเรก ดูหนัง ฟังเพลง
คลิปแนะนำตัวเอง