วันอังคารที่ 28 ธันวาคม พ.ศ. 2553

Discreate และ Continuous Data

ด้วยความสับสนเกี่ยวกับข้อมูลที่เป็นเป็นข้อมูลต่อเนื่อง หรือไม่ต่อเนื่อง เลยลองหาคำตอบ และได้คำตอบประมาณนี้คือ

ชุดข้อมูลแบบตัวเลขสามารถแบ่งออกได้เป็น 2 กลุ่ม คือ discrete และ continuous

Discrete

ชนิดข้อมูลที่เป็นแบบไม่ต่อเนื่องปกติชุดข้อมูลจะเป็นแบบจำกัด หรือ มีจำนวนห่างของช่องวห่างระหว่างชุดข้อมูลที่คงที่


ตัวอย่าง มีคำถาม 5 ข้อในการสอบวิชาคณิตศาสตร์ ตัวเลือกที่ถูกต้องของคำตามในการตอบคำถามของนักเรียนเป็นข้อมูลแบบไม่ต่อเนื่อง คือ ตัวเลขของคำตอบที่ถูกต้องที่เป็นไปได้ประกอบด้วย : 0, 1, 2, 3, 4, หรือ 5 เป็นค่าที่มีขอบเขต ดังนั้นถ้าต้องการที่วาดตัวเลขลงบนเส้นจำนวน ก็สามารถวาดระยะห่างระหว่างตัวเลขได้อย่างคงที่


ตัวอย่าง ในการสอบใบขับขี่ของ Las Vegas กับจำนวนคนที่สอบผ่านในแต่ละเมือง ถามว่าจำนวนครั้งที่แต่ละคนมาสอบเพื่อให้ผ่านและได้รับใบขับขี่เป้นกี่ครั้ง 1 หรือ 2 หรือ 3 หรือ 4 หรือมากกว่านั้น ดั้งนั้นจำนวนที่เป็นไปได้คือ 1, 2, 3, … ซึ่งเป็นตัวเลขที่ไม่มีขอบเขต แต่เป็นระบบตัวเลขที่มีระยะห่างที่แน่ระหว่างตัวเลข เวลาเขียนลงบนเส้นจำนวนก็สามารถทำได้เช่นกัน ก็ถือว่าเป็นข้อมูลที่ไม่ต่อเนื่องด้วย


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


Continuous data

มักจะกล่าวถึงส่วนที่เหลือจากตัวเลขปกติ เช่น ทศนิยม หรือเป็นตัวเลขเกี่ยวกับการประมาณค่าทางด้านกายภาพ


ตัวอย่าง ความสูงของต้นไม้เกี่ยวข้องกับข้อมูลแบบต่อเนื่อง ซึ่งสามารถเป็นไปได้ว่าต้นไม้จะสูงครั้งละ 76.2"  หรือ ประมาณ 76.29 หรือประมาณ 76.2914563782  คุณเชื่อได้หรือไม่ว่ามันจะสูงเท่าไหร่ เป็นไปได้ว่าขึ้นอยู่กับเครื่องมือที่ใช้ในการวัดก็ได้


มีทางเดียวที่จะบอกว่าเป็นข้อมูลแบบต่อเนื่องหรือไม่ ต้องถามตัวเองว่า เป็นไปได้ไหมที่ตัวเลขที่จะเขียนจะต้องติดเศษส่วน หรือทศนิยมด้วย ถ้าใช่ ข้อมูลนั้นจะเป็นข้อมูลแบบต่อเนื่อง


ตัวอย่าง ความยาวของอายุการใช้งานของหลอดไฟ ก็เป็นตัวอย่างหนึ่งของข้อมูลแบบต่อเนื่อง เนื่องจากเป็นได้ว่าอายุการใช้งานของหลอดไฟจะเป็น 800 hours? หรือประมาณ 800.7? หรือประมาณ 800.7354? เพราะบางครั้งอายุของหลอดไฟก็ไม่ได้ 800 hours ตรง ๆ แต่อาจจะมี มากกว่า หรือน้อยกว่าได้ และมากกว่า หรือน้อยกว่าเท่าไหร่ก็ยากต่อการบอกเป็นค่าตัวเลข ก็ถือว่าข้อมูลแบบนี้เป็นข้อมุลแบบต่อเนื่องด้วย


วันพุธที่ 10 พฤศจิกายน พ.ศ. 2553

Windows cannot find 'csrcs.exe'

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

Windows cannot find 'csrcs.exe'. Make sure you typed the name correctly, and then try again. To search for a file, click the start butto, and then click search.


ใช้งานเครื่องปกตินะครับ ปิดเครื่องแล้วเปิดขึ้นมาใหม่ กับเจอปัญหาตามข้างบน เหมือนหาไฟล์อะไรสักอย่างไม่เจอ งง ไปนาน

แต่เอาวิธีการแก้ไขบอก เผื่อจะแก้ไขปัญหาได้ครับ เพราะตอนนี้ของผมหายแล้ว

1. เข้าไปที่ start->run แล้วพิมพ์ regedit
2. เลือกที่ My Computer ตัวเลือกแรกสุดของ ลำดับด้ายซ้าย แล้วค้นหาด้วยคำว่า csrcs จะเจอประมาณ 2 จุดครับ

หนึ่งในนั้นคือ ตำแหน่งนี้นะครับ แต่กดค้นหาไปเรื่อยๆ ครับ เจอแล้วลบทิ้ง

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run

และจะเจออันที่ 3 อีกครับ


แล้วแก้ไขค่า


เป็นดังนี้


คลิก OK แล้วก็ restart เครื่อง ก็หายแล้วครับ ....


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

Signal และ Slots ที่ใช้ใน Qt


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


       Signal                                            
เป็น method ที่เรียกใช้งานแล้วทำหน้าที่ส่งออกข้อมูลมากกว่าจะทำการประมวลผล จากมุมมองของ programmer ต้องประกาศ prototype ของ signals เป็นแบบส่งออกเท่านั้น และประกาศเอาไว้ในส่วนของ signals of Class



        Slots                                               
เป็นสมาชิกของ function ที่สามารถเรียกเป็นคำตอบของ signal ที่จะเป็นผลลัพธ์ส่งออกไป คุณจะบอก compiler ด้วยการนำ slots ไปไว้ในส่วนของ public slots, protected slots | private slots ระดับการเข้าถึง slots จะปกป้อง slots เมื่อมีการเรียกใช้ method ดังนั้นเราสามารถอ้างถึง slots ที่เป็น private | protected จากคลาสอื่น ได้ผ่านทาง signal


ยกตัวอย่างการใช้งานดังนี้

เปิดโปรแกรมขึ้นมา
Open Qt Creator


ทำการสร้าง Project แบบ Qt C++ Project -> Qt Console Application แล้วก็เลือกที่ Choose...

Create New Project

New Project
แล้วสร้างไฟล์ แบบ C++ Source File และ C++ Header File และจะได้โครงสร้างไฟล์ดังภาพด้านล่าง

New Files and Classes
C++ Header File
MyClass.cpp
main.cpp


หลังจากนั้นก็ทดสอบคำสั่งและได้ผลลัพธ์ดังนี้

ผลการรันโปรแกรม
โปรแกรมนี้เป็นการทดสอบการฟังก์ชัน Setter and Getter เพื่อให้เห็นระดับการเข้าถึงตัวแปร และหน้าที่และความสำคัญของ Signal and Slots โอกาสหน้าเดี๋ยวหาเรื่องใหม่มาพูดครับ ...

วันพฤหัสบดีที่ 4 พฤศจิกายน พ.ศ. 2553

ทดลองเขียน Hello world! โดยใช้ Library ของ Qt ด้วยการใช้ Console

 จากที่สนในมานานแล้วว่า Qt นี้มันคืออะไร ทำงานอย่างไร แต่ก็ยังไม่ได้จริงจังสักที แค่เปิด ๆ ปิด ๆ อยากอ่านก็เปิด ๆ อ่านไม่เข้าใจก็ปิด ๆ ออกไป ตอนเช้ากับบรรยากาศหนาวในวันนี้ทำให้อยากลองเขียนจริง ๆ ขึ้นมาสักทีก็เลยลงมือเขียน จนสำเร็จออกมาได้ ถึงแม้จะเป็นโปรแกรม Hello world แต่ สิ่งที่ได้ไม่ได้แค่นั้นครับ อย่างน้อย ๆ ก็ได้วิธีการ compile และ run และ การติดตั้งเบื้องต้น ซึ่งจะนำเราไปสู่โปรแกรมที่ใหญ่ ๆ ขึ้นไป ด่านแรกและอยากคือการตั้งสภาพแวดล้อมในการทำงานนั้นเอง 



ขั้นตอนครับ 

1. ประกอบด้วยคำสั่งอย่างง่ายครับให้โปรแกรมมันแสดงข้อความออกมา ตามด้านล่าง

example source code

ตัวอย่าง Folder ที่จัดเก็บ


folder contain cpp fiile

2. เปิด qt console แล้วสร้าง Project สำหรับ Qt โดยใช้คำสั่ง qmake –project
menu open Qt console

start Qt console

ใช้คำสั่ง

use qmake -porject
จะมีไฟล์เพิ่มขึ้นมาใน Folder ที่จัดเก็บ

use qmake -porject and result

แล้วเพิ่มบรรทัดสำหรับแสดงผลแบบ console เข้าไปในไฟล์ .pro


edit project config to support console application

3. เตรียมสภาพแวดล้อมของการ compile ด้วย qmake จะได้ไฟล์ Makefile, Makefile.Release,Makefile.Debug และ Folder 2 อัน คือ degug and release

ดังภาพด้านล่าง

use qmake



file after qmake

4. build Project จาก Makefile ด้วยคำสั่ง mingw32-make –w และทดสอบ run คำสั่ง พร้อมผลลัพธ์ดังภาพด้านล่าง


ผลการ build

ผลการรัน



อันนี้แบบลุยหน่อยจัดการเองหมด แต่จริง ๆ Qt ก็มีส่วนใช้งานที่เป็น Graphics ให้สามารถเรียกใช้งานได้อย่างง่ายด้วยครับ เอาไว้แสดงในหัวข้อต่อไป

ติดตั้งสภาพแวดล้อมสำหรับเขียน C++ ด้วย Qt

C++ ก็เป็นอีกหนึ่งภาษาคอมพิวเตอร์ที่มีความน่าสนใจ และมีความสามารถในการทำงานที่หลากหลายครับ ที่ผมเคยเห็นแต่ก่อนก็จะมี Borland C++, Visual C++, Turbo C++ เหล่านี้เป็นต้นครับ มาวันหนึ่งก็ได้รู้ว่ามีไลบรารี่สำหรับการเขียน C++ ที่มีความน่าสนใจ คือ Qt เลยอยากจะลองศึกษาดูว่ามีการทำงานอย่างไร แต่ก็จนแล้วจนเล่า ไม่ได้สำเร็จสักที อาจจะเพราะอยากมากสำหรับตัวเองตอนนั้น อะไร ๆ ก็มีแต่ภาษาอังกฤษ ผ่านมาเป็นเวลานาน ก็เลยตัดใจจะเริ่มศึกษาจริง ๆ สักที่ก็เลยเิริ่มต้นด้วยการเขียนประสบการณ์จากการติดตั้ง Qt ก่อนเลยครับ

ขั้นตอน

ดาวโหลดไฟล์ได้จากเว็บไซต์นี้ http://qt.nokia.com/products/qt/downloads มีทั้งแบบ Open source และ แบบ Commercial ความสามารถก็แตกต่างกันออกไปครับ



ผมเลือกโหลดแบบ LGPL ครับ


หากไม่ให้บันทึกอัตโนมัติคลิกที่ลิงค์ได้เลย

หลังจากนั้นก็ทำการติดตั้งก็เป็นอันเรียบร้อย คงไม่ต้องเลือก option ใด ๆ ติดตั้งแบบ Next ตลอดเลย ^_^ 





ผลที่ได้จากการติดตั้งแสดงได้ดังนี้ครับ



เท่านี้ก็พร้อมจะเขียนสคริปง่าย ๆ แล้วละครับ เอาไว้เรื่องจะไปจะอับเดตการเขียนคำสั่งสำหรับ Hello world!

วันเสาร์ที่ 9 ตุลาคม พ.ศ. 2553

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

หาพิกัด latitude และ longtitude บน google map

หาตำแหน่ง ปักหมุด ตัว A สีแดงได้แล้ว ก็รัน สคริป นี้ที่ address bar ของ browser ได้เลย

javascript:void(prompt('',gApplication.getMap().getCenter()));