Articles

การฉายภาพของมอนิเตอร์

07 พ.ค 2559 | By attapong

      การแสดงผลของภาพบนมอนิเตอร์จะอาศัยการทำงานร่วมกันระหว่างการ์ดแสดงผลกับมอนิเตอร์แสดงผลโดยมอนิเตอร์จะทำการดึงข้อมูลภาพจากการแสดงผลมาวาดลงบนจอรับภาพ ภาพกราฟิกที่ปรากฏขึ้นบนจอจะประกอบไปด้วยจุดสีเล็กๆ ที่เรียกว่าพิกเซล (Pixel) การสร้างสีของพิกเซลจะประกอบไปด้วยจุดเล็กๆ จำนวนสามจุดได้แก่ สีแดง สีเขียว และสีน้ำเงินซึ่งมีคุณสมบัติเป็นแม่สีแสงแต่เนื่องจากจุดของพิกเซลมีขนาดเล็กมากดังนั้นเราจึงมองเห็นเพียงสีเดียวบนหน้าจอ

Read More...| 0 Comments

การแก้ปัญหา ไม่สามารถ Remove External Harddrive ได้

15 เม.ย 2559 | By mickeyzy

      โดยปรกติเมื่อใช้งาน External Harddrive หรือ Thumb drive ก่อนจะทำการถอดอุปกรณ์เหล่านั้นออกเราควรเลือกใช้คำสั่งจากเมนู "Safely remove hardware and eject media" เพื่อป้องกันความเสียหายของอุปกรณ์และข้อมูลที่อยู่ภายใน แต่จะทำอย่างไรเมื่อไม่สามารถถอดอุปกรณ์เหล่านี้ได้จากเมนู "Safely remove hardware and eject media" ของวินโดวส์ บทความนี้จะนำเสนอวิธีแก้ปัญหาดังกล่าวโดยไม่ใช้โปรแกรมเสิรมใดๆ

Read More...| 0 Comments

การหลีกเลี่ยงข้อผิดพลาดจากการแจ้งเตือน MSVCR100.dll, MSVCP100D.dll หรือ MSVCR100D.dll is missing

18 มี.ค 2559 | By attapong

       เมื่อทำการเขียนโปรแกรมด้วย Microsoft Visual Studio จนได้ Execute file หรือไฟล์ exe ของโปรเจกต์แล้วเมื่อต้องการนำไปทดสอบการทำงานบนเครื่องอื่นที่ไม่ได้ติดตั้ง Visual Studio หรือได้ทำการติดตั้งไว้แต่เป็นคนละเวอร์ชันกัน มักจะพบปัญหาการแจ้งเตือนข้อผิดพลาด MSVCR100.dll หรือ MSVCP100D.dll หรือ MSVCR100D.dll อยู่เสมอ ถึงแม้ได้ทำการ Build โปรเจกต์ในโหมด Release แล้วก็ตาม บทความนี้ได้นำเสนอวิธีแก้ปัญหาและทำความเข้าใจกับข้อผิดพลาดที่เกิดขึ้นซึ่งมีรายละเอียดต่อไปนี้ 

Read More...| 0 Comments

การ Forward port

04 ก.พ 2559 | By mickeyzy

      Port Forwarding คือ การกำหนดเส้นทางของข้อมูลสำหรับติดต่อกับเครื่องคอมพิวเตอร์ที่อยู่ในระบบ LAN ซึ่งเส้นทางนี้จะช่วยให้ข้อมูลจากภายนอกหรือจากระบบ Internet สามารถสื่อสารและส่งข้อมูลเข้ามายังอุปกรณ์ต่างๆ ในระบบ ที่มีการระบุค่าของ Port ไว้บน Router ในที่นี้จะยกตัวอย่างการ Forward port ของ Router ZTE F660 สำหรับเราเตอร์ยี่ห้ออื่นจะมีลักษณะที่แตกต่างกันไปแต่ลักษณะการกำหนดค่าต่างๆ จะใช้หลักการที่ใกล้เคียงกัน 

Read More...| 0 Comments

บทที่ 14. องค์ประกอบหลักของการเขียนโปรแกรมเชิงวัตถุ

15 ธ.ค 2558 | By attapong

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

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

      ในตำราบางเล่มอาจเพิ่มการดักจับข้อผิดพลาด ( Exception Handling) เป็นปัจจัยที่ห้าในองค์ประกอบหลักของการเขียนโปรแกรมเชิงวัตถุเช่นกัน

Read More...| 0 Comments

บทที่ 13. เริ่มต้นกับการเขียนโปรแกรมเชิงวัตถุ

10 พ.ย 2558 | By attapong

      ภาษา C มีแนวคิดในการเขียนโปรแกรมแบบโครงสร้างที่เรียกว่า Structure programming หรือแบบกระบวนการ (Procedure programming) โดยมีจุดประสงค์หลักในการเขียนโปรแกรมให้เครื่องคอมพิวเตอร์สามารถประมวลผลและวิเคราะห์ข้อมูล ซึ่งชุดคำสั่งของโปรแกรมที่เขียนขึ้นมาเพื่อใช้ในการแก้ปัญหาเฉพาะด้าน โดยจะทำการแยกปัญหาใหญ่ ๆ ออกเป็นส่วนย่อย ๆ เรียกว่าโมดูล (Module) ซึ่งอาจประกอบไปด้วยเฮดเดอร์ไฟล์ (Hrader file) หลาย ๆ ไฟล์ (*.h) และ ซอร์สไฟล์ (Source file) หลาย ๆ ไฟล์ (*.c) แล้วค่อยแก้ไขไปทีละส่วนจนกว่าจะได้ผลลัพธ์ที่ต้องการ ซึ่งประยุกต์มาจากวิธีคิดของมนุษย์นั่นเอง

Read More...| 0 Comments

บทที่ 12. โครงสร้างข้อมูล

24 ต.ค 2558 | By attapong

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

Read More...| 0 Comments

บทที่ 11. ตัวชี้ (Pointer)

01 ก.ย 2558 | By attapong

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

Read More...| 0 Comments

บทที่ 10. อาร์เรย์ (Array)

11 ส.ค 2558 | By attapong

จากความรู้ที่ผ่านมาจะเห็นได้ว่าเราจะใช้ตัวแปรในการเก็บหรือพักค่าที่ต้องการ เช่น int a = 5, b= 2; เป็นต้น จะเป็นอย่างไรหากเราต้องการเขียนโปรแกรมเพื่อเก็บค่า 100 ค่า ด้วยเหตุผลนี้จึงทำให้มีการนำเอาอาร์เรย์มาใช้งาน

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

Read More...| 0 Comments

บทที่ 9. ฟังก์ชันและเทคนิคการใช้งาน

15 ก.ค 2558 | By attapong

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

Read More...| 0 Comments

บทที่ 8. ไลบรารีและฟังก์ชันพื้นฐานใน C/C++

14 มิ.ย 2558 | By attapong

      ฟังก์ชัน (Function) จะถือว่าเป็นโปรแกรมย่อย (Sub program) ถูกสร้างขึ้นมาเพื่อลดความซับซ้อน ทำให้โปรแกรมมีใน C และ C++ เราสามารถแบ่งฟังก์ชันได้ออกเป็นสองลักษณะได้แก่

  • ฟังก์ชันมาตรฐานของตัวภาษาเอง โดยมีการเรียกใช้จากไลบรารีพื้นฐานของ C และ C++ เช่นคำสั่ง printf(), rand(), pow(), sqrt() เป็นต้น
  • ฟังก์ชันที่โปรแกรมเมอร์เขียนขึ้นมาใช้งานเองซึ่งเป็นการรวมกลุ่มกันของคำสั่งพื้นฐานต่าง ๆ ของ C++ มาประกอบขึ้นใหม่เพื่อให้ทำงานอย่างใดอย่างหนึ่ง โดยเฉพาะอย่างยิ่งหากงานนั้นมีการเรียกใช้งานซ้ำมากกว่าหนึ่งครั้ง ซึ่งฟังก์ชัน main() ก็ถือเป็นฟังก์ชันประเภทนี้ด้วยเช่นกัน
Read More...| 0 Comments

บทที่ 7. การทำงานแบบวนรอบภายในโปรแกรม

05 พ.ค 2558 | By attapong

      ในบางครั้งเราจำเป็นต้องการให้โปรแกรมทำงานเดิมซ้ำหลาย ๆ ครั้ง ตัวอย่าง เช่น การเขียนโปรแกรมหาค่า factorial ของตัวเลขที่รับเข้ามา เช่น  5! = 5x4x.x2x1 จากตัวอย่างนี้จะเห็นได้ว่าความรู้ที่ผ่านมาไม่เพียงพอต่อการคำนวณหาค่าในลักษณะนี้ ดังนั้นในที่นี้เราจะพูดถึงการเขียนโปรแกรมเพื่อวนรอบการทำงานซ้ำ ซึ่งมีกลุ่มคำสั่งที่เกี่ยวข้องด้วยกันหลายคำสั่ง โดยมีหลักการร่วมกันดังต่อไปนี้

  • ต้องกำหนดค่าเริ่มต้นในการวนรอบ
  • อาจจะมีการเพิ่มหรือลดค่าของตัววนรอบในบางกรณี
  • ต้องมีเงื่อนไขที่ทำให้หลุดจากการวนรอบ ไม่เช่นนั้นการทำงานของโปรแกรมจะกลายเป็นลูปอนันต์ (Infinity loop) ไป
Read More...| 0 Comments

บทที่ 6. การสร้างการตัดสินใจภายในโปรแกรม

11 เม.ย 2558 | By attapong

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

Read More...| 0 Comments

บทที่ 5. การจัดการอินพุตและเอาท์พุตมาตรฐาน

19 มี.ค 2558 | By attapong

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

Read More...| 0 Comments

บทที่ 4. ตัวดำเนินการใน C++

15 ก.พ 2558 | By attapong

      C++ Operator หรือตัวดำเนินการ ในตอนนี้เราได้รู้จักตัวแปรและค่าคงที่แล้ว ซึ่งสามารถนำมาใช้งานผ่านตัวกระทำการทางคณิตศาสตร์ +, -, *, / และ % ได้ดังที่ได้กล่าวไว้แล้วในเนื้อหาก่อนหน้า

Read More...| 0 Comments