วันเสาร์ที่ 3 กันยายน พ.ศ. 2554

Queue



  คิวเป็นโครงสร้างข้อมูลแบบลำดับ (Sequential) ลักษณะของคิวเราสามารถพบได้ในชีวิตประจำวัน เช่น การเข้าแถวตามคิวเพื่อรอรับบริการต่างๆ ลำดับการสั่งพิมพ์งาน เป็นต้น ซึ่งจะเห็นได้ว่าลักษณะของการทำงานจะเป็นแบบใครมาเข้าคิวก่อน จะได้รับบริการก่อน เรียกได้ว่าเป็นลักษณะการทำงานแบบ FIFO (First In , First Out)

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

การกระทำกับคิว
  • การเพิ่มข้อมูลเข้าไปในคิว
    การจะเพิ่มข้อมูลเข้าไปในคิว จะกระทำที่ตำแหน่ง REAR หรือท้ายคิว และก่อนที่จะเพิ่มข้อมูลจะต้องตรวจสอบก่อนว่าคิวเต็มหรือไม่ โดยการเปรียบเทียบค่า REAR ว่า เท่ากับค่า MAX QUEUE หรือไม่ หากว่าค่า REAR = MAX QUEUE แสดงว่าคิวเต็มไม่สามารถเพิ่มข้อมูลได้ แต่หากไม่เท่า แสดงว่าคิวยังมีที่ว่างสามารถเพิ่มข้อมูลได้ เมื่อเพิ่มข้อมูลเข้าไปแล้ว ค่า REAR ก็จะเป็นค่าตำแหน่งท้ายคิวใหม่ 
  • การนำข้อมูลออกจากคิว
    การนำข้อมูลออกจากคิวจะกระทำที่ตำแหน่ง FRONT หรือส่วนที่เป็นหัวของคิว โดยก่อนที่จะนำข้อมูลออกจากคิวจะต้องมีการตรวจสอบก่อนว่ามีข้อมูลอยู่ในคิวหรือไม่ หากไม่มีข้อมูลในคิวหรือว่าคิวว่าง ก็จะไม่สามารถนำข้อมูลออกจากคิวได้
     
คิวแบบวงกลม (Circular Queue)
       คิวแบบวงกลมจะมีลักษณะเหมือนคิวธรรมดา คือ มีตัวชี้ FRONT และ REAR ที่แสดงตำแหน่งหัวคิวและท้ายคิวตามลำดับ โดย FRONT และ REAR จะมีการเลื่อนลำดับทุกครั้งเมื่อมีการนำข้อมูลเข้าและออกจากคิว แต่จะแตกต่างจากคิวธรรมดาก็คือ คิวธรรมดาเมื่อ REAR ชี้ที่ตำแหน่งสุดท้ายของคิว จะทำให้เพิ่มข้อมูลเข้าในคิวอีกเมื่อไม่ได้ เนื่องจาก ค่า REAR=MAX QUEUE ซึ่งแสดงว่าคิวนั้นเต็ม ไม่สามารถเพิ่มข้อมูลเข้าไปได้อีก ทั้งๆ ที่ยังมีเนื้อที่ของคิวเหลืออยู่ก็ตาม ทำให้การใช้เนื้อที่ของคิวไม่มีประสิทธิภาพ 
 
จากรูป แสดงคิวที่ค่า REAR ชี้ที่ตำแหน่งสุดท้ายของคิว ทำให้ไม่สามารถนำข้อมูลเข้าได้อีก

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

คิวแบบวงกลมจากที่กล่าวมาสามารถเพิ่มข้อมูลได้อีก จนกว่าคิวจะเต็มซึ่งแสดงดังรูป

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

การพูดในที่ชุมชน


การพูดในที่ชุมชน


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

ใบ้ย่อมพูดได้ แต่บางคนเท่านั้นที่พูดเป็น เพราะการพูดเป็นทั้งศาสตร์
และศิลป์ ไม่จำเป็นต้องอาศัยพรสวรรค์เสมอไปแต่สามารถพูดได้ เพราะการศึกษา การฝึกฝน 

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

นายกรัฐมนตรี การให้โอวาทของผู้อำนวยการโรงเรียนในวันปฐมนิเทศ
การพูดสุนทรพจน์ของรัฐมนตรีกระทรวงการต่างประเทศ การอภิปรายในรัฐสภา ฯลฯ
         2. การพูดอย่างไม่เป็นทางการ 
            เป็นการพูดที่ให้บรรยากาศเป็นกันเอง เช่น พูดเพื่อนันทนาการในกิจกรรมต่าง ๆ 

การพูดสังสรรค์งานชุมนุมศิษย์เก่า การพูดเรื่องตลกในที่ประชุม
การกล่าวอวยพรตามโอกาสต่าง ๆ ในงานสังสรรค์
         3. การพูดกึ่งทางการ 
            เป็นการพูดที่ลดความเป็นแบบแผนลง เช่น พูดอบรมนักเรียนในคาบจริยธรรม 

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

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


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

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

พิธีกรไม่ใช่ตัวตลก พิธีกรไม่ใช่ผู้โฆษณา พิธีกรไม่ใช่ผู้ทำหน้าที่ประชาสัมพันธ์
และพิธีกรไม่ใช่ผู้พูดสลับฉากบนเวที แต่ พิธีกรเป็นที่รวมของบทบาทหน้าที่อย่างน้อย 4 ประการ คือ
                   •  เป็นเจ้าของเวที (Stage Owner)
                   •  เป็นผู้ดำเนินรายการ (Program Monitor)
                   •  เป็นผู้แก้สถานการณ์เฉพาะหน้า (Situation Controller)
                   •  เป็นผู้ประสานงานบันเทิงและสังคม (Social Linkage)
              ดังนั้น พิธีกร จึงต้องมีความรู้พื้นฐาน 4 อย่าง คือ
                   •  รู้ลำดับรายการ
                   •  รู้รายละเอียดของแต่ละรายการ
                   •  รู้จักผู้เกี่ยวข้องในแต่ละรายการ ( ใครจะมารับช่วงเวทีต่อไป )
                   •  รู้กาลเทศะ ( ไม่เล่นหรือล้อเลียนจนเกินขอบเขต ต้องมีความพอดี )
โอกาสต่าง ๆ ในการเป็นพิธีกร ได้แก่
•  ผู้ดำเนินรายการบนเวทีในงานแสดงต่างๆ เช่น ดนตรี ละคร โชว์ ฯลฯ|
•  เป็นผู้ดำเนินการอภิปราย โต้วาที ยอวาที แซววาที
•  แนะนำองค์ปาฐก ผู้บรรยายรับเชิญ
•  จัดรายการทางวิทยุกระจายเสียง
•  จัดรายการทางโทรทัศน์
•  ดำเนินรายการในงานพระราชพิธี งานพิธี และงานมงคลต่างๆ
•  เป็นโฆษกของพรรคการเมืองในการปราศรัยหาเสียง หรือในงานต่างๆ 

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

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

Stack


สแต็ก
สแต็กเป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์(linear list) ที่สามารถนำข้อมูลเข้าหรือออกได้ทางเดียวคือส่วนบนของสแต็กหรือ หรือเรียกว่า ท๊อปของสแต็ก (Top Of Stack)  ซึ่งคุณสมบัติดังกล่าวเรียกว่า ไลโฟลิสต์ (LIFO list: Last-In-First-Out list)
1. การดำเนินการพื้นฐานของสแต็ก
1.1 ฟังก์ชัน Push การเพิ่มข้อมูลในสแต็ก ในการเพิ่มข้อมูลในสแต็ก (pushing) สามารถทำได้โดยให้ทับบนข้อมูลสุดท้ายในสแต็ก และจะสามารถเพิ่มเข้าได้เรื่อย ๆ จนกว่าสแต็กจะเต็ม (Overflow State)
1.2 ฟังก์ชัน Pop การเอาข้อมูลที่อยู่บนสุดในสแต็ก หรือที่ชี้ด้วย Top ออกจากสแต็ก
1.3 ฟังก์ชัน Stack Top จะคืนค่าไปยังผู้ใช้งานเท่านั้น โดยไม่มีการลบข้อมูลออกจากสแต็กแต่อย่างใด
2. การสร้างสแต็ก
2.1 การสร้างสแต็กด้วยอาร์เรย์ การสร้างสแต็กด้วยอาร์เรย์ต้องมีการจัดสรรพื้นที่หน่วยความจำที่แน่นอนไว้ล่วงหน้า
2.2 การสร้างสแต็กด้วยลิงก์ลิสต์ จะเป็นการจัดสรรหน่วยความจำแบบไดนามิก (Dynamic) ไม่จำเป็นต้องกำหนดขนาดของหน่วยความเหมือนกับอาร์เรย์ หน่วยความจำจะถูกจัดสรรเมื่อมีการใช้งานจริงเท่านั้น
3. อัลกอริทึมการสร้างสแต็กด้วยลิงก์ลิสต์
3.1 Create stack สร้าง stack head node
3.2 Push stack เพิ่มรายการใน stack
3.3 Pop stack ลบรายการใน stack
3.4 Stack top เรียกใช้รายการข้อมูลที่อยู่บนสุดของ stack
3.5 Empty stack ตรวจสอบว่า stack ว่างเปล่าหรือไม่
3.6 Full stack ตรวจสอบว่า stack เต็มหรือไม่        
3.7 Stack count ส่งค่าจำนวนรายการใน stack
3.8 Destroy stack คืนหน่วยความจำของทุก node ใน stack ให้ระบบ
4. การประยุกต์ใช้งานสแต็ก
4.1    การเรียงลำดับข้อมูลแบบย้อนกลับ (Reversing data) คือการจัดเรียงลำดับข้อมูลใหม่
4.2    การแตกข้อมูลออกเป็นส่วนๆ (Parsing) เป็นการแตกข้อมูลออกเป็นส่วนๆ ให้เป็นอิสระต่อกัน เพื่อส่งไปประมวลผล
4.3    การหน่วงเวลา (Postponement) เป็นการหน่วงเวลาของข้อมูลไว้ชั่วขณะหนึ่งเพื่อรอการประมวลผลในช่วงจังหวะเวลาที่เหมาะสม ซึ่งกรณีดังกล่าว จะนำไปใช้กับการแปลงนิพจน์ Infix มาเป็น Postfix
4.4    การย้อนรอย (Backtracking Steps) คือวิธีการหาคำตอบโดยเดินหน้าไปยังเป้าหมาย เมื่อถึงทางแยกก็จะต้องตัดสินใจเลือกเส้นทางใดเส้นทางหนึ่งเดินหน้าต่อไปเพื่อหาเป้าหมาย หากเดินไปจนสุดเส้นทางแล้วยังไม่พบเป้า ก็จะเดินย้อนกลับมายังจุดแยกครั้งสุดท้ายแล้วเลือกเส้นทางใหม่ที่ยังไม่เคยไป ทำเช่นนี้ไปเรื่อยๆจนกว่าจะพบเป้าหมาย หรือจนครบทุกเส้นทาง
5.รูปแบบนิพจน์ทางคณิตศาสตร์ แบ่งเป็น ประเภทคือ
5.1 นิพจน์ Infix คือ นิพจน์ที่มีเครื่องหมายดำเนินการอยู่กึ่งกลางตัวถูกดำเนินการ (operand)
5.2 นิพจน์ Postfix คือ นิพจน์ที่มีเครื่องหมายดำเนินการอยู่ด้านหลังตัวถูกดำเนินการ (operand)
5.3 นิพจน์ Prefix คือ นิพจน์ที่มีเครื่องหมายดำเนินการอยู่ด้านหน้าตัวถูกดำเนินการ (operand)

Infix     : A+B
Postfix : AB+
Prefix   : +AB


6. การแปลงนิพจน์ Infix เป็น Postfix มีขั้นตอนดังนี้
6.1 ให้ทำการใส่เครื่องหมายวงเล็บให้กับทุกๆ นิพจน์ด้วยการคำนึงถึงลำดับการคำนวณ เช่น เครื่องหมายคูณและหารต้องมาก่อนเครื่องหมายบวกและลบ
6.2 ทำการเปลี่ยนสัญลักษณ์ Infix ในแต่ล่ะลงเล็บให้มาเป็นสัญลักษณ์แบบ Postfix โดยให้เริ่มต้นจากนิพจน์ที่อยู่วงเล็บในสุดก่อน จากนั้นก็ดำเนินการแปลงให้เป็นนิพจน์ Postfix ด้วยการย้ายโอเปอเรเตอร์ตรงตำแหน่งวงเล็บนั้นไปยังตำแหน่งวงเล็บปิดของคู่นั้นๆ
6.3 ถอดเครื่องหมายวงเล็บทิ้งออกไปให้หมด
7. รีเคอร์ชัน (Recursion)
                7.1 การวนรอบ
                7.2 การเรียกตัวเอง







วันพฤหัสบดีที่ 28 กรกฎาคม พ.ศ. 2554

ลิงกลิสต์

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

ลิงค์ลิสต์เดี่ยว

รูปแบบการเก็บข้อมูลโดยการใช้โครงสร้างแบบ Linked -List อาจมีการเชื่อมต่อกันเป็นเส้นตรง(linear) หรือไม่เรียงเป็นเส้นตรง ติดต่อกันไป (nonlinear) ในจำนวนที่ไม่แน่นอน เรียกสมาชิก ของลิงค์ลิสต์ว่า "โหนด" (node) แต่ละโหนดไม่จำเป็นต้องมีสมาชิกในตำแหน่งที่ประชิดกัน โครงสร้างของแต่ละโหนดจะประกอบด้วย 2 ส่วน ส่วนแรกบรรจุสารสนเทศของสมาชิก (INFO) ส่วนที่สองบรรจุตำแหน่งของโหนดถัดไป หรือ โหนดที่ตามมาหลัง (LINK) โหนดสุดท้ายของลิงค์ลิส จะไม่มีโหนดตามหลัง หรือลิงค์ไม่มีการเก็บตำแหน่งของโหนดใด ๆ แต่จะเก็บ ค่า NULL แทน (แทนด้วยเครื่องหมาย / ) ซึ่งเป็นสัญญาณว่าสิ้นสุดลิงค์ลิสต์ ลิงค์ลิสต์เดี่ยวจึงหมายถึง ลิงค์ลิสต์ที่ แต่ละโหนดมีลิงค์ตัวเดียว ส่วนลิงค์ลิสต์ใดที่ไม่มีโหนดเลยเรียกว่า ลิสค์ว่าง (empty)

การท่องลิงค์ลิสต์

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

การแทรกข้อมูลและการลบข้อมูล

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

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

ลิสต์พร้อมใช้งาน

ในทางความคิดโหนดทั้งหมด จะเก็บอยู่ ในรายการอิสระ ซึ่งเราเรียกว่า ลิงค์ลิสต์พร้อมใช้งาน (availability list ) หรือ หน่วยเก็บรวม (storage pool ) เมื่อต้องการนำโหนดมาแทรกในลิงค์ลิสต์ ก็จะมีพอยเตอร์ 1 ตัวในการที่จะชี้ไปยังสมาชิกตัวแรกของลิสต์พร้อมใช้งาน แล้วนำหนดอิสระมาจากลิงค์ลิสต์พร้อมใช้งาน และเชื่อมกับ ลิสต์ในตำแหน่งที่ต้องการในขณะเดียวกัน ถ้ามีการลบโหนดออกจากลิสต์ เราก็จะต้องมีการคืนโหนดไปยังลิสต์พร้อมใช้งาน เพื่อให้สามารถจะนำมาใช้ได้ในภายหลัง

ลิงค์ลิสวงกลม

ลิงค์ลิสต์ชนิดนี้ เกิดจากการปรับปรุงค่าลิงค์ลิสต์ เพื่อให้การประมวลผลที่ดีขึ้น โดยการแทนค่าลิงค์ที่เป็น NULL ของโหนดสุดท้ายของลิงค์ลิสต์ด้วยตำแหน่ง ที่อยู่ของโหนดแรก ลิงค์ลิสต์ในลักษณะนี้เราเรียกว่า ลิงค์ลิสต์วงกลม (circular linking linear list ) หรือ ลิสต์วงกลม ( circular list)

ลิงค์ลิสต์วงกลม มีประโยชน์กว่าลิงค์ลิสต์ธรรมดามาก


กล่าวคือ
1. ในการเข้าถึงข้อมูล ของโหนดลิงค์ลิสต์วงกลมโหนดทุกโหนด สามารถเข้าถึงได้จากโหนดใด ๆ ที่กำหนดให้ โดยผ่านทางสายโซ่ (ลิงค์ ) ของลิสต์
2. ในการลบโหนด ในการค้นหาโหนดที่มาก่อนโหนดใด ๆ สามารถเริ่มต้นค้นหาในโหนดนั้นได้เลย

ข้อเสียของลิงค์ลิสต์วงกลม

1. ในการประมวลผลหากไม่ระมัดระวัง อาจทำให้การประมวลผลวนรอบซ้ำไม่รู้จบ (infinite loop )จึงต้อง รู้จุดสิ้นสุดของการทำงาน โดยเราจะแทนจุดสุดท้ายของลิงค์ด้วยโหนดพิเศษ ที่ง่ายต่อการจำแนกโหนดในลิสต์วงกลม ซึ่งเราเรียกโหนดพิเศษนี้ว่า " โหนดหัว" (head node) หรือ "หัวลิสต์" (head list ) ของลิสต์วงกลม เทคนิคนี้จะทำให้ ลิสต์ไม่สามรถเป็นลิสต์ว่างได้

ลิงค์ลิสต์คู่

ในลิงค์ลิสต์ประเภทนี้จะมีโหนดซึ่งประกอบด้วยลิงค์ลิสต์ 2 ส่วน เพื่อแสดงโหนดที่มาก่อน และโหนดที่มาที หลัง โหนดที่มาก่อนเราเรียกว่า ลิงค์ซ้าย (left link) ซึ่งแทนด้วยพอยเตอร์ LLINK และลิงค์ที่แทนโหนดที่มาหลังเรา เรียกว่า ลิงค์ขวา(rigth ilnk) ซึ่งแทนด้วยพอยเตอร์ RLINK ซึ่งลิงค์ลิสต์ที่ประกอบด้วย คุณสมบัติดังกล่าวเราเรียกว่า "ลิงค์ลิสต์เชิงเส้นคู่ "(double linked linear list) หรือลิงค์ลิสต์คู่ (double linked list) ในแต่ละทิศทาง ไม่ว่าขวาสุด หรือซ้ายสุด จะมีค่า NULL เพื่อแสดงว่าสิ้นสุดลิสต์ในแต่ละทิศทาง

การแทรกข้อมูลในลิงค์ลิสต์คู่

การพิจารณาแทรกโหนดในลิงค์ลิสต์คู่มีดังกรณีที่จะเป็นไปได้ดังนี้
1. เมื่อลิงค์ลิสต์ว่าง ให้แทนโดยการกำหนดให้ พอยเตอร์ L และพอยเตอร์ R ชี้ไปยังตำแหน่งโหนดใหม่ และกำหนดให้ลิงค์ซ้ายและลิงค์ขวาของโหนดใหม่มีค่า NULL
blockquote>2.เมื่อแทรกโหนดใหม่ลงในกึ่งกลางของลิงค์ลิสต์ ลิงค์ลิสต์ก่อนการแทรกและหลังการแทรก ลำดับการเปลี่ยน พอยเตอร์มีความสำคัญมาก หากเปลี่ยนในลำดับที่ไม่ถูกต้องอาจทำให้โหนดที่บรรจุค่าเดิมสูญหายไป
3. เมื่อมีการแทรกโหนดใหม่ทางด้านซ้ายของโหนดซ้ายสุดของลิสต์ จะทำให้พอยเตอร์ L มีค่าเปลี่ยนไป

การลบข้อมูลอกจากลิงค์ลิสต์คู่

ในการลบโหนดประเภทนี้ แตกต่างจากการลบโหนดในลิงค์ลิสเดี่ยวคือไม่จำเป็นต้องมีการค้นหาโหนดที่มาก่อน โหนดที่จะลบ เพียงกำหนดตำแหน่งของโหนดที่จะลบก็สามารถทราบตำแหน่งของโหนดที่มาก่อน และโหนดที่มาทีหลังโหนดนั้น
ถ้าลิงค์ลิสต์มีโหนดเพียงโหนดเดียว การลบโหนดออกจากลิงค์ลิสต์จะทำให้ได้ลิงค์ลิสต์ว่าง คือพอยเตอร์ซ้ายสุด และขวาสุดจะถูกกำหนดให้มีค่าเป็น NULL หากพิจารณาขั้นตอนการลบข้อมูลและแทรกข้อมูลในลิงค์ลิสต์ แบบลิงค์ลิสต์คู่ สามารถทำให้ง่ายขึ้นได้ คือในกรณีที่ลิงค์ลิสต์ว่าง สามารถกำหนดให้ลิงค์ลิสต์ไม่เคยว่างได้ โดยการกำหนดโหนดพิเศษ ขึ้นมา 1 โหนด ซึ่งจะเป็นโหนดที่มีอยู่ในลิงค์ลิสต์ตลอดเวลา จึงทำให้ลิงค์ลิสต์ว่างมีเพียง 1 โหนด ที่เป็นโหนดพิเศษเท่านั้น ซึ่งเรียกว่าโหนดหัว (Head node)ของลิงค์ลิสต์ และนอกจกนั้นยังสามารถสร้างลิงค์ลิสคู่เป็นลิงค์ลิสต์วงกลมได้ ขั้นตอนวิธีในการแทรกและลบโหนดตามหลังโหนดที่กำหนดให้ใด ๆ จะลดลำดับขั้นตอนให้น้อยล

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

Resume

RESUME
Personal Detail
Name :  Miss. Khamwai   Phakphilai
Address :  222  M.3  T.Kanchong  A.Wadbot  Phitsanulok 65160
Age :   22  Years
Height :  157  Cm.
Weight :  63  Kg.
Dete of birth :  7  Apr.  1989
Telephone :  0-83960-0242
E-mail :  pakpilai_may@hotmail.com
Educational Background
        2008 – 2011   Suan Dusit Ratjabhat University.   GPA : 3.04
        2005 – 2007   Kanchongphitayacom School.   GPA : 3.42
Tranining Background
        Nov  2011 – Feb  2012
Specal Abilities
        Can Speak, Write, Reading English
        Can type 30 word perminute in Thai and 25 word per minute in English
Interests
        Gardening
References
                Mr. Khamwai   Chob


จดหมายสมัครงาน
Dear Sir / Madam.
            Referring to your advertize in Job Thai Hotel.com in position of Computer graphics. I would appreciate to apply for this position.
I very ensure that my background and experience as serve you will. Here with my resume with file attached.
I look forward to hearing from you soon or your convenience time. My contact number is 0-83960-0242. Personal Email : pakpilai_may@hotmail.com.

Sincerely Yours,

( Phakphilai   Khamwai ) 

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

conversation

Good moring. How doyoudo?.
Good moring. How doyoudo.
I’m fine , very well
How are you ?
Nice to meet you.
Glad to meet you.

เริ่มต้นการแนะนำตัว
May I introduce myself?
My name is …ชื่อ… หรือ I’m …ชื่อ-สกุล..
หรือถ้าถามว่า
Could you please introduce youself briefly?
Would you mind telling me about youself briefly?

การแนะนำตัว
My name is …ชื่อ … I,’m now …อายุ.. year old. I have …จำนวน.. brother and …จำนวน… sister.   หรือ I’m only one child (ลูกคนเดียว)   หรือ I have no brother and sister.
I graduated from Suan Dusit Rajabhat University.   หรือ กำลังรัยน I ‘m studing Suan Dusit Rajabhat University.
I did a bachelor in managementscince. my major wos business computer.

การถามตอบ
A: Where did you greduate?
B: I graduated from Suan Dusit Rajabhat University
A: What course did you take?
B: I did a bachelor in management scince.

A: What are you doing now ?
ในกรณีทำงานตอบ
B: I’m working at …ชื่อบริษัท… company.   หรือ 
กรณียังหางานทำไม่ได้ หรือหางานอยู่
B: I’m still out of work.

คุณทำงานที่ไหน
A: What company are you working for?
B: I’m working for …ชื่อบริษัท… company.

ทำงานตำแหน่งงอะไร
A: What is your position there?
B: I’m working as a …ตำแหน่ง…

คุณจะเริ่มทำงานเมื่อไหร่
A: when are you going to start?
B: May 1,2011.

คุณคาดหวังเงินเดือนเท่าไร
A: What salary do you expect?
B: 15',000 bhat.

เวลาว่างคุณทำอะไร
A:What do you do during your free time?
B: – Playing sport
- Reading A book.
- Gradening. (ทำสวน)
- Collecting stemp.

คุณเคยไปไหนมา
A: Have you been to abroad?
B: No,I haven’t.
B: Yes,I have been to …ที่ไปมา…

คุณสามารถพูดอังกฤษได้ไหม
A: Can you speak English?
B: Yes,I can speak abite.

คุณสามารถขับรถได้ไหม
A: Can you drive a car?
B: Yes,I’m drive a car.

คุณได้เกรดอะไร
A: What wos you Grage Point Average?
B: Tree point oh four.

คุณสามารถพิมพ์ได้เร็วเท่าไร
A: Can you type?
B: Yes,I can type 35  words per minute in thai and 30 words per minute in English.

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

Joomla

สร้างฐานข้อมูลใหม่ พิมพ์ Joomla

เปลี่ยน font   กดสร้าง
เปิดหน้าต่างใหม่ขึ้นมาพิมพ์ http://localhost/joomla  (แต่ต้องมีการย้าย จุมลา ไปอยู่ใน www ก่อน)
หากไม่ขึ้นหน้า joomla ให้ทำการ Copy อีกครั้ง
การติดตั้ง joomla --->เลือก --->เลือกถัดไปเรื่อยๆจนถึงการใส่ข้อมูลให้ใส่ข้อมูลดังนี้

ชนิดฐานข้อมูล
mysql โดยมากใช้ 'mysql'

ชื่อโฮสต์
localhost ค่าทั่วไปคือ 'localhost'

ชื่อผู้ใช้ฐานข้อมูล
root ชื่อผู้ใช้งานดาต้าเบส อาจจะใส่เป็น 'root' หรือชื่อผู้ใช้ที่ได้รับ จากผู้ให้บริการโฮสของท่าน

รหัสผ่าน
root เพื่อความปลอดภัยท่านควรกำหนดรหัสผ่าน สำหรับเข้าใช้งานฐานข้อมูล

ชื่อฐานข้อมูล
joomla โฮสบางแห่งมีเพียงดาเบสเดียวให้ท่านใช้งาน กรณีนี้ท่านสามารถใช้ชื่อนำหน้า (prefix) ตารางเพื่อติดตั้งมากกว่าหนึ่งไซต์.

จากนั้นคลิกถัดไป ถัดไป
ตั้งชื่อเว็บไซต์ว่า joomla program
ใส่อีเมล์ปลอม
ใส่รหัสผ่าน addmin
ยืนยันเหมือนกัน คลิกถัดไป  คลิกตกลง เท่านี้ก็ติดตั้งเรียบร้อยแล้ว
เปลี่ยนชื่อที่ joomla   ที่ตัว  installation เป็น installation-1  (ถ้าทำจริงต้องลบทิ้ง)
คลิกดูหน้าเว็บไซต์
เปิดแท็บใหม่พิมพ์http://localhost/joomla/administrator/เพื่อเข้าสู่ระบบadmin (Username : admin   , Password: addmin)

ติดตั้ง font ภาษาไทย Extensions เลือก install  ---> เลือกไฟล์   แล้วทำการอัฟโหลด
ไปเช็ค ที่ตัว Languages เพื่อดูภาษาเป็นภาษาไทย
กลับไป Extensions    Languages Manager
เลือกไทย  Default  เพื่อพิมพ์ภาษาไทย
ไปส่วนขยาย  การจัดการเทมเพลต   เพื่อเปลี่ยนพื้นหลังให้กับเว็บ
โมดูล เป็ฯตัวเสริมข้อมูลต่างๆ  บลั๊กอินก็เช่นกัน

บทความ   -->การจัดการบทความ     --> สร้างใหม่--->พิมพ์ ชื่อเรื่อง เกี่ยวกับการทำเว็บ--->about-web--->section เป็น  un...