For Newbie Programmer with C# Language.... มาเรียนเขียนโปรแกรมภาษา C# เบื้องต้นกันเถอะ ที่นี่จะทำให้มุมมองของการโปรแกรมมิ่งของคุณเปลี่ยนไป
วันพุธที่ 20 พฤษภาคม พ.ศ. 2552
Next Chapter 'bout Magic Math.....!!!
สำหรับเลขยกกำลัง 2 หลักนะครับ (จะไม่พูดถึงที่ลงท้ายหลักหน่วยด้วย 5 )
เช่น 76กำลัง2 เชื่อไหม รู้เทคนิคก็คิดได้ 10 วิ เนี่ย โอ๊คคิดได้ 5776
สำหรับเทคนิค ให้ทำให้ 76 เป็นจำนวนเต็มสิบโดยการลบนะ ยังไง เอ้าเช่น
76-6 = 70
เก็บ 70 ไว้ในหัวก่อนครับ จากนั้นบวกเพิ่มไปจากที่ลบไป 76+6 = 82 เก็บไว้ครับ
จากนั้นนำ 82 x 70 เลย จะได้เท่ากับ 5740 นั่นเอง แต่เก็บไว้ครับยังไม่เสร็จ
จากนั้นให้ดูว่าจำนวนที่นำไปบวกไปลบคืออะไร (ในตย.นี้คือ 6) ให้นำ 6ยกกำลัง2 บวกเข้าไปกับ 5740
คำตอบสุดท้ายคืออะไรครับ 5740+36 = 5776 ตรงกันพอดี !!! (ใครไม่เชื่อกดเครื่องคิดเลขตามได้ไม่ผิด)
สำหรับคนที่ไม่เข้าใจ โอ๊คขอเขียนเป็นสมการคร่าวๆให้ดูครับ
76^2 = (76-6) x (76+6) + 6^2 มันง่ายขึ้นตรงที่ เราจะคูณได้ง่ายขึ้น ไม่เชื่อลองฝึกคิดในหัวดูครับ ถ้าใช้วิธีธรรมดามันคงทำได้ยากแน่นอนอยู่แล้ว
มาดูเลข 3 หลักกันบ้าง
158 กำลัง2 ได้เท่ากับเท่าไหร่เอยย 24964 ถูกไหม
สำหรับวิธีคิดก็ไม่ต่างกันมาก เพียงแต่จะคิดได้ช้าหน่อยครับ เพราะเลขเยอะ แหะๆ
ขั้นแรกให้นำ 158-58 = 100 เก็บไว้ และ 158+58 = 216 เก็บไว้ แล้วจับ คูณกันครับ 216 x 100 = 21600 เก็บไว้ครับ จากนั้นเอาตัวที่บวกลบมาคิดนะครับ (ในตย.นี้คือ 58 ให้ทำเหมือนกานยกกำลังสอง 58 ใช้เทคนิคยกกำลังเลขสองหลัก) ให้นะ 58+8 = 66 เก็บไว้ และ 58-8 = 50 เก็บไว้ จับมาคูณกันจะได้
50 x 66 = 3300 ยังไม่เสร็จครับ จากนั้น นำตัวที่บวกลบมากำลังสอง คือ
8^2 = 64 นำไปบวกกับ 3300 จะได้ 3300+64 = 3364 แล้วจากนั้นนำไปบวกกับ 21600 จะได้ 21600+3364 = 24964 !!!
สำหรับใครที่ยังคิดไม่ทัน ตอนนี้โอ๊คก็กำลังฝึกอยู่ครับ (ข้อนี้ประมาณ 30 วินาที) ลองเอาส่วนนี้ไปคิดเล่นก็ดีครับ บริหารสมอง ก็หวังว่าผู้อ่านจะได้อะไรติดหัวบ้างนะครับ แหะๆ ปัญหาของการคิดวิธีนี้ในหัวโอ๊คคิดว่าเป็นปัญหาของเรื่องการจำตัวเลขที่คิดไว้ชั่วครู่ แล้วไปคิดคำนวณอีกอย่างนึง พอกลับมาก็ลืมเสียแล้ว ปัญหานี้ถ้าฝึกบ่อยๆก็จะคล่องเองครับ ยังไงก็เอาไปฝึกๆกันครับ ไม่มีใครทำได้ถ้าไม่หมั่นฝึกฝนนะครับ
วันพฤหัสบดีที่ 14 พฤษภาคม พ.ศ. 2552
First Time in WPF "SpeechSample"

ไหนๆขอโชว์ผลงานแรกใน WPF ก่อนแล้วกัน สำหรับโปรแกรม "SpeechSample" เป็นโปรแกรมที่เขียนในรูปแบบ WPF แต่ขอบอกเอาไว้ก่อนว่า หน้าตาโปรแกรมยังไม่สวยงามดังที่ได้กล่าวยกยอไปจากย่อหน้าบนนะครับ เพราะว่าโอ๊คใช้ปุ่มจากที่โปรแกรมได้เตรียมมาให้ ยังไม่ได้ออกแบบเอง (กำลังอยู่ในระหว่างศึกษา) SpeechSample เป็นโปรแกรมที่สามารถอ่านออกเสียงข้อความที่เราพิมพ์ลงไปได้ครับ (หรือจะโหลด text file มาให้มันอ่านก็ได้ครับ)
วิธีการใช้ SpeechSample
- เปิดไฟล์ .txt หรือพิมพ์ข้อความลงในกล่องข้อความ
- กด Speak โปรแกรมจะทำการออกเสียงคำที่เราพิมพ์ (ได้เฉพาะภาษาอังกฤษ)
- สามารถปรับเสียงและความเร็วในการพูดได้
วันพุธที่ 13 พฤษภาคม พ.ศ. 2552
Still working on My New Project BrainSaving...!!!!
โอ๊คเคยได้ยินผลงานวิจัยของญี่ปุ่น เกี่ยวกับการป้องกันและรักษาโรคสมองเสื่อมและอัลไซเมอร์ ซึ่งได้ผลการวิจัยเป็นที่แน่ชัดว่า สมองเราเมื่อไม่ได้ถูกใช้งานบ่อยๆ มันก็จะเสื่อมไปตามอายุขัย แต่หากใช้งานมันทุกๆวัน บริหารทุกๆวัน มันก็จะอยู่กับเราได้นานขึ้น สำหรับโรคสมองเสื่อมและอัลไซเมอร์จะพบมาในผู้ใหญ่และคนสูงอายุ ซึ่งบางคนที่เป็นโรคนี้อาจได้รับผลกระทบอย่างอื่น แต่... ส่วนใหญ่ก็มาจากการไม่ค่อยได้บริหารสมองหรือมีความเครียดสูงนั่นเอง สำหรับใครๆที่เคยเข้าร้านหนังสือแล้วไปเจอะกับหนังสือ "เลขคณิตพิชิตสมองเสื่อม" แล้วล่ะก็จะร้องอ๋อทันที เพราะหนังสือเล่มนี้ได้อธิบายผลการวิจัยไว้อย่างละเอียด เช่นว่า เมื่อคุณดูทีวีสมองส่วนไหนบ้างที่ทำงาน เวลานั่งอ่านหนังสือในใจเอย เวลาเล่นเอย แต่ผลการวิจัยที่น่าแปลกใจก็คือ การคิดเลขบวกลบเลขง่ายๆ สมองกลับถูกใช้งานมากกว่าการคิดเลขยากๆเสียอีก ด้วยความที่อยากฝึกอย่างในหนังสือแต่ก็ไม่อยากเสียเงิน (น้าน) ก็เลยคิดโปรเจค โปรแกรมรักษาสมองซะเลย เอ้ารักษายังไงบางคนยังงง ก็อย่างที่กล่าวไปข้างบนนั่นแหละ คิดเลขง่ายๆช่วยกระตุ้นสมองให้เสื่อมช้าลงได้ครับ โดยตัวโปรแกรมจะคล้ายกับการฝึกในหนังสือแต่จะมีเพิ่มเติมในสิ่งทีหนังสือทำไม่ได้ครับ (ยังไม่ขอเปิดเผย) โดยสามารถเลือกระดับความยากง่ายได้น่ะ สำหรับใครที่คิดว่าควรเพิ่มเติมอะไรก็ช่วยแนะนำได้ครับ โดยโปรแกรมนี้จะปล่อยให้เป็น Freeware ไปเลยเมื่อพัฒนาเสร็จครับ ที่บ้านใครมีผู้ใหญ่หรือคุณตาคุณยายที่เรารัก ก็เป็นการเหมาะที่จะให้ท่านได้บริหารสมองกับ
โปรแกรม BrainSaving นะครับ ........
Magic in Math.....!!!
การคูณจำนวน 2 หลัก ด้วย 11
32 x 11 = 352
56 x 11 = 616
ให้สังเกตุคำตอบในหลักสิบครับ เกิดจากการนำ จำนวนของตัวตั้งบวกกันนั่นเอง (ถ้าเกิดเก้าต้องทดในหลักถัดไป)
เช่น 97 x 11 = 1067
เทคนิคการยกกำลัง (ใช้ได้กับเลขสองหลักที่ลงท้ายด้วย 5)
35^2 = 1225
มันอาจไม่แปลกถ้าคิดเครื่องคิดเลข หรือทดในกระดาษ แต่ถ้าคิดในใจล่ะ ....... ไม่ยากครับ มีเทคนิคมาฝากอีกเช่นกัน
ให้สังเกตุคำตอบนะครับ แล้วแยกจำนวนออกเป็นคู่ เช่น 12 กับ 25 (จริงๆ 2 หลักหลังจะเป็น 25 ตลอดเพราะลงท้ายด้วย 25)
12 เกิดจาก 3 x (3+1) = 12
25 เกิดจาก 5 x 5 = 25
เอ้าเพื่อความมั่นใจโอ๊คจะยกตัวอย่างเพิ่มครับ
75^2 = ......... 5625 ถูกไหมครับ ไม่เชื่อกดเครื่องคิดเลขดูเลยเอ้า !
ยังไม่จบครับ มีเทคนิคการคูณมาฝากด้วย
สำหรับเลข 2 หลักมาคูณกัน แล้วเลขหลักสิบมีค่าเท่ากัน หลักหน่วย รวมกันได้สิบ
เช่น 56 x 54 = 3024
30 เกิดจาก 5 x (5+1)
24 เกิดจาก 6 x 4
เห็นไหมครับ มันไม่ใช่เรื่องยากอีกต่อไป ก็หวังว่าเกร็ดความรู้เล็กๆนี้จะเป็นประโยชน์กับทุกคนที่ได้อ่านนะครับ
วันจันทร์ที่ 11 พฤษภาคม พ.ศ. 2552
Advance Timer my Second Project....!!!

เวลาไม่เคยรอใครครับ ทุกชีวิตบนโลกต้องทำงานแข่งกับเวลา ลมหายใจเราเพียงไม่กี่วินาทีโลกก็มีสิ่งใหม่ๆก็ขึ้นมาตลอด พอโปรเจคแรกเสร็จโอ๊คก็เลยลองทำโปรเจคใหม่ทันที หลังจากพ่อโอ๊คสอนใช้ Timer ก็เลยลองเอามาคิดเล่นๆว่าจะทำอะไรต่อ คิดไปคิดมาก็มาลงเอยที่เจ้านาฬิกาจับเวลาตัวนี้ เพียงแต่พัฒนามาเรื่อยๆจากที่เป็นเพียง Timer ก็เลยเปลี่ยนชื่อซะเลยเป็น Advance Timer เพราะว่าเป็นนาฬิกาจับเวลาที่มีออฟชั่นเพิ่มขึ้นมาจากที่คิดเอาไว้เยอะเหมือนกัน (ใครคิดว่าควรมีอะไรเพิ่มเติมแนะนำโอ๊คได้เลยครับ) สำหรับตัวนี้เป็นเพียงเวอร์ชั่น BETA ที่ไม่เคยเอาไปปล่อยที่ไหนเลย (เพราะว่าไปปล่อยกลัวไม่มีคนสนใจน่ะ) สำหรับฟีเจอร์ของนาฬิกานะครับ โอ๊คจะลิสให้ดูง่ายๆนะครับ (ฟีเจอร์อาจเปลี่ยนแปลงเมื่อ Version เต็มออกนะครับ อันนี้เป็นเพียง BETA เท่านั้น)


ความสามารถหลักของโปรแกรม Advance Timer (Version BETA)
- จับเวลาเดินหน้า และถอยหลัง
- คำนวณวันและเวลา แบบแจกแจง (วัน/ชม/นาที/วินาที)
- คำนวณวันและเวลา แบบแยกประเภท
- ปรับแต่งสีของเวลา
- ปรับแต่งข้อความที่ใช้บันทึกในนาฬิกาจับเวลา
- ปรับแต่งข้อความเตือน เมื่อหมดเวลาของนาฬิกานับถอยหลัง
ความสามารถที่คาดว่าจะมีในอนาคต
- ตั้งเวลาปิดเครื่องคอมพิวเตอร์
- ใช้จัดเวลาทำงาน
- รองรับธุรกิจร้านเกม(อันนี้คิดเล่นๆครับแหะๆ คงเป็นจริงยาก แต่จะลองดู)
- ปรับแต่งพื้นหลังของโปรแกรมได้ตามใจชอบ
- ใช้เตือนความจำสำหรับสิ่งที่ต้องทำในแต่ละวัน
สำหรับเวอร์ชั่นตัวเต็มยังไม่มีกำหนดออกครับ จึงอยากให้ออกความเห็นกันว่าควรเพิ่มอะไรลงไปหรือแก้ไขตรงไหนเพิ่มเติมดีครับ สำหรับโปรเจคนี้จะเปิดให้เป็น OpenSource ครับ สำหรับ OpenSource ก็คือโค้ดที่ปล่อยให้โหลดไปใช้ฟรีๆ หรือจะเอาไปพัฒนาต่อได้ครับ เพื่อให้ตรงตามความต้องการของผู้ใช้ (โปรแกรมนี้เขียนด้วย Visual C# 2008)
สำหรับผู้ต้องการโหลดไปใช้งาน Download Here
สำหรับกรณีต้องการโหลดไปศึกษา Download OpenSource
วิธีใช้งาน Advance Timer (Version Beta 0.805)
- การใช้งานในส่วนของนาฬิกาจับเวลา จะมีปุ่มเริ่มจับเวลา เมื่อทำการคลิกที่ปุ่มจะทำให้นาฬิกาเริ่มจับเวลา แล้วตัวปุ่มนี้จะเปลี่ยนเป็นหยุดเวลา เพื่อให้สะดวกในสถานการณ์ที่ต้องการหยุดเวลาทันที
- ในส่วนของนาฬิกาจับเวลา สามารถบันทึกเวลาที่ได้จับเอาไว้ได้ (ข้อความที่ใช้สื่อข้อมูลเวลาสามารถปรับเปลี่ยนได้ใน tab ปรับแต่ง)
- ในส่วนของนาฬิกานับถอยหลัง ผู้ใช้สามารถตั้งเวลาได้ตามต้องการ แล้วโปรแกรมจะคำนวณให้เวลาออกมาในรูปแบบที่เข้าใจง่าย เช่น 99 วินาที คือ 1 นาที 30 วินาที
- ปุ่มเริ่มนับถอยหลังจะคล้ายคลึงกับส่วนของนาฬิกาจับเวลา
- ในส่วนของการคำนวณวันเวลานั้น เราสามารถเลือกที่จะคำนวณเวลาด้วยหรือไม่ก็ได้ (ขึ้นกับว่าเราสนใจเวลาเริ่มต้นและสิ้นสุดหรือไม่)
- การคำนวณวันแบบแจกแจงจะคำนวณออกมาในรูปแบบ วัน/ชม/นาที/วินาที
- การคำนวณวันแบบแยกประเภทผลลัพท์จะออกมาเป็นรูปแบบใดๆ แยกกันอย่างอิสระ เช่น 1 วัน 24 ชม 1440 นาที 86400 วินาที
Level of Programming Language...!!!
ใช่แล้วตัวแปรภาษา หรือ Compiler เนี่ยก็มีระดับภาษา แต่ระดับภาษานั้นมันบ่งบอกถึงความใกล้เคียงกับภาษาเครื่องนั่นเอง โดยแบ่งได้เป็น 3 ประเภทหลักๆก็คือ
- ภาษาระดับต่ำ
- ภาษาระดับกลาง
- ภาษาระดับสูง
ก็คือถ้าตัวแปรภาษานั้นจัดอยู่ในภาษาระดับต่ำ ตัวแปรภาษานั้นก็จะมีความใกล้เคียงกับภาษาเครื่องมาก แต่ถ้าตัวแปรภาษานั้นจัดอยู่ในภาษาระดับสูง ตัวแปรภาษานั้นก็จะมีความใกล้เคียงกับภาษามนุษย์เราๆกันมากขึ้น(ช่างสะดวกเสียจริง) มาดูระดับภาษาของภาษาคอมพิวเตอร์ที่เราพอจะคุ้นเคยหรือเคยได้ยินกันบ้างก็คือ ภาษา C ,Java, Basic, Pascal จัดเป็นภาษาระดับสูง ส่วนภาษาระดับต่ำก็คือ Assembly ซึ่งมีความใกล้เคียงภาษาเครื่องมาก มีสัญลักษณ์มาช่วยให้เขียนโปรแกรมได้ง่ายขึ้น แต่ก็ยังยากอยู่ดีนั่นล่ะ ฮ่าๆ ภาษาเขียนโปรแกรมนั้นในปัจจุบันมีเยอะมาก(หลายร้อยหลายพัน) เป็นสิ่งที่ทำให้รู้ว่าเราไม่มีทางชำนาญได้ทุกภาษาแน่นอน (เพราะมันมีเยอะมากนั่นแล) แต่อย่างที่เคยบอกไปคือ ถ้าเราชำนาญในภาษาใดภาษาหนึ่งแล้ว การจะกระโดดไปเล่นอีกภาษาหนึ่งๆนั้น ไม่ใช่เรื่องยาก การลำดับการทำงานของภาษาโปรแกรมต่างๆมีความคล้ายคลึงกันแต่อาจต่างกันแค่การใช้คำสั่งเท่านั้นเอง ด้วยเหตุนี้โปรแกรมเมอร์จึงต้องยืดหยุ่น สามารถปรับตัวได้เมื่อมีการเปลียนความนิยมหรือประสิทธิภาพของโปรแกรม ในตัวแปรภาษา
