วันเสาร์ที่ 23 พฤษภาคม พ.ศ. 2552

Prepare for C# Language learning...!!!

ก่อนที่เราจะทำการเรียนเขียนโปรแกรมภาษา C# นั้น เราควรทำความรู้จักกับมันก่อนครับ เอ้าไม่รอช้า ไปดูกันเลยครับ
ภาษา C# (C# Programming Language) จะเขียนว่า C Sharp (ซี-ชาร์พ) ก็ได้ไม่ผิด เราๆอาจจะเคยได้ยินภาษาอื่นๆที่คล้าย C# เช่น ภาษา C, Java, C++ ซึ่งแน่นอนมันเป็นที่มาของ C# นั่นเอง (ตัว C เป็นตัวบ่งบอกให้รู้ว่า C# มีต้นกำเนิดมาจาก C นั่นเอง) เครื่องหมาย # ดังที่เคยพูดคือ เป็นสิ่งที่แสดงถึงความก้าวหน้ากว่า C++ ไปอีกระดับนึง (มอง # ให้เป็นเครื่องหมาย + ซ้อนกันสี่มุมสิครับ อาจมองแบบ C++++ ก็ได้ไม่ผิด) ถ้าจะให้พูดกันเข้าใจง่ายๆอีกก็คือ C# ได้รวบรวมข้อดีของภาษาต่างๆเช่น Java, Delphi, C++ เข้าไว้ด้วยกัน อีกทั้งยังมีความเรียบง่ายกว่า


จะดูไม่ดีเลยถ้าเราจะไม่พูดถึงบิดาของภาษา C# กันซักหน่อย (C# เวอร์ชั่นต่างๆทั้งหลายที่ Microsoft พัฒนา ก็มีท่านคนนี้แหละครับเป็นต้นแบบที่มั่นคงของภาษาที่ได้รับความนิยมนี้)ท่านคือ Anders Hejlsberg (แอนเดรส ฮาเยสเบิร์ก)จะให้พูดกันจริงๆก็คือ ใครๆก็สามารถสร้างภาษาใหม่ๆขึ้นได้ แต่ความเรียบง่าย และสวยงามของ C# ที่ Hejlsberg ได้บรรจงสร้างมาให้เหล่าโปรแกรมเมอร์ยุคใหม่ใช้กันอย่างสะดวกสบาย เป็นอะไรที่หาที่เปรียบไม่ได้อีกแล้ว

แม้ต้นกำเนิดจะมาจาก Anders Hejlsberg นั้น แต่ไมโครซอร์ฟต้องการให้ภาษานี้ "อยู่ไปอีกนาน" จึงได้พัฒนา C# เรื่อยมาจนปัจจุบันเป็นเวอร์ชั่น C# 2008 แล้ว (2010 ก็ใกล้จะออกมาแล้วเหมือนกันนะ) อีกประการที่ควรเลือก C# ของไมโครซอร์ฟเพราะ เราสามารถมั่นใจได้ว่า ถ้าเราศึกษาตรงนี้ไปจะไม่เสียเปล่า เพราะจะมีการพัฒนาต่อไปเรื่อยๆ (ไม่ตกยุคนั่นเอง ไม่ต้องกลัวว่าไมโครซอร์ฟจะทิ้งเรา)

ฟรีครับฟรี ไมโครซอร์ฟเค้าใจดีปล่อย Visual C# 2008 Express Edition ซึ่งเป็นเวอร์ชั่นสำหรับการศึกษา แม้จะขาด component และคำสั่งบางส่วนไป แต่ในระดับเริ่มต้นก็ยังไม่ต้องใช้ครับ (นอกจาก C# แล้วภาษาอื่นก็มีเช่น Basic, C++) สำหรับลิ้งดาวโหลด โอ๊คได้ทำไว้ให้ข้างล่างแล้วครับ

Download Visual C# 2008 Express Edition

เมื่อเข้าลิ้งไปจะเห็นเป็นช่องๆ มีทั้ง Visual Basic , Visual C++ แต่ให้เราเลือก Visual C# (เลือกภาษาอังกฤษ)แล้วคลิกที่ Download ครับ

วันพฤหัสบดีที่ 21 พฤษภาคม พ.ศ. 2552

Chapter 3 'bout Magic Math...!!!

ในบทความนี้จะบอกเทคนิคการบวกเลขแบบคล่องๆครับ โดยก่อนอื่นต้องบอกตามตรงว่าธรรมชาติของเรา จะคิดเลขจากขวาไปซ้าย ในเทคนิคนี้จะให้ลองทำกลับกันครับ คือเวลาบวกเลขให้บวกจากซ้ายไปขวา (อาจจะงงว่าทำยังไง กลัวผิด...เราไปดูกัน) ปัญหาในการบวกเลขของคนเราส่วนใหญ่จะเกิดจากตัวเลขที่มีจำนวนมาก พอบวกกันแล้วเกินต้องทดในหลักต่อไป (จริงไหมครับ?) แต่กลับกันเราจะถนัดในการบวกเลขที่ไม่มีการทด 89+95 โอยบวกน่ะบวกได้นะ แต่ให้ทำเร็วๆนี่คงยากและอาจผิดพลาด (ในบางสถานการณ์ที่คับขันเช่นเวลาทำข้อสอบ) แต่ถ้าเป็น 20+19 โอว มันช่างสบายๆสมองอะไรเช่นนี้

สำหรับเทคนิคนะครับเวลาเจอการบวกเลขที่มีจำนวนมากๆอย่างเช่นการบวก

456+975 = ? นะครับ

การบวกเลขจากซ้ายไปขวาจะมีประโยชน์ต่อเมื่อเจอตัวเลขมากๆหลักเข้า ขั้นตอนคือให้บวกเลขจากซ้ายไปขวาโดยที่สายตาควรเหล่ดูว่าหลักถัดไปมีตัวทดหรือไม่ ถ้ามีให้บวก ผลบวกกับตัวทดไปเลยอัตโนมัติ (เช่นในตัวอย่าง 9+4 = 13 แต่เหล่เห็นว่า 7+5 มันมีตัวทด ก็บวก 13 ด้วย 1 = 14 ครับ) ทำเช่นนี้จากซ้ายไปขวา

สำหรับวิธีนี้บางคนทำครั้งแรกอาจจะยังไม่ชิน แต่ต้องฝึกฝนอย่างต่อเนื่องครับ ก็หวังว่าบทความนี้จะเป็นประโยชน์กับผู้อ่านทุกคนครับ

วันพุธที่ 20 พฤษภาคม พ.ศ. 2552

Next Chapter 'bout Magic Math.....!!!

เอาอีกแล้ว หลังจาก 5 วันที่หายหน้าไป ก็ไปร้านหนังสือบ่อยมาก ไม่ได้ซื้อไรติดมือไม้มานะ ไปยืนอ่านฟรี (แป่ว) แหะๆ เลยมีอะไรติดหัวมาบ้าง เอาเป็นว่าเริ่มเลยล่ะกัน จะพูดถึงการคิดเลขให้เร็ว(โดยมีเทคนิคมาให้เหมือนเดิม) ก่อนเริ่มทำให้นึกถึงเวลาเรายกกำลังเลข 2 หลัก และ 3 หลัก ด้วยวิธีทดในกระดาษครับ มันช่างเป็นอะไรที่แสนน่าเบื่อมาก (จริงมั้ย?) แล้วถ้าให้คิดในหัวเรอะ ! ไม่ต้องพูดถึง แต่เทคนิคที่โอ๊คจะเล่าสู่กันฟังต่อไปนี้ แค่คิดในหัวเพียงไม่กี่วินาที ก็สามารถให้คำตอบแบบตรงเป๊ะ ! ชัวร์ๆเลยครับ ถึงขนาดที่เครื่องคิดเลขยังต้องเรียกพี่.... เอ้าไปดูกันครับ

สำหรับเลขยกกำลัง 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 หรือ Window Presentation Foundation เป็นอีกรูปแบบของการเขียนโปรแกรมครับ แต่มันต่างกันยังไงน่ะหรอครับ งั้นให้คุณผู้อ่านลองนึกภาพโปรแกรมหน้าตาธรรมดาๆที่โอ๊คเคยเขียนดูสิ กับโปรแกรมที่มีรูปแบบ ปุ่มคำสั่งต่างๆสวยงามแพรวพราว (ใครที่ใช้ Vista นั่นเป็นอีกตัวอย่างหนึงของเทคโนโลยีนี้ครับ) หัวใจหลักของ WPF ก็คือ การทำโปรแกรมที่มี User Interface (หน้าตาของโปรแกรม) สวยงามน่าใช้นั่นเอง ถ้าเขียนโปรแกรม ในรูปแบบ Window Application (ซึ่งในสมัยก่อนก็ถือว่าหรูแล้ว) มันก็เหมือนกับเราเขียนโปรแกรมที่ไม่ให้ความสำคัญกับความสวยงามของรูปร่างหน้าตาของโปรแกรม แต่ปัจจุบันมันเปลี่ยนไปแล้วครับ โอ๊คอยากถามว่า คุณชอบใช้โปรแกรมที่มีรูปร่างหน้าตาสวยงาม (คำตอบส่วนใหญ่คงชอบถูกไหม ?) ฉะนั้นเทคโนโลยี WPF จึงถูกสร้างขึ้น แนวคิดของมันก็คือ ตัวเรามีความสามารถในสองด้าน 1.ออกแบบหน้าตาโปรแกรม 2.เขียนโค้ดควบคุมโปรแกรม ซึ่ง 2 อย่างนี้ให้คุณทำหน้าที่ของมันได้อย่างอิสระแยกจากกันสิ้นเชิง คิดดูแล้วกันเพราะมันทำให้เราได้สร้างสรรค์หน้าตาของโปรแกรมได้อย่างอิสระ แล้วเพียงแค่มาใส่โค้ดเอาที่หลังก็ยังได้ (เครื่องมือดีๆ ที่เหมือน มีนักออกแบบ และโปรแกรมเมอร์มาร่วมมือกันสร้างโปรแกรม) ใน Window Application นั้นในส่วนของการออกแบบหน้าตาโปรแกรมจะถูกควบคุมด้วยภาษาโปรแกรมนั้นๆ (เช่น C# ส่วนออกแบบก็จะเป็นภาษา C#) แต่แนวคิดของ WPF ภาษาในส่วนออกแบบนั้นจะต่างจากภาษาที่ใช้เขียนโค้ด กล่าวคือ ใช้ภาษา XML (ซึงพอมาทำงานร่วมกันกับการสร้างโปรแกรมก็จะเรียกใหม่เป็น XAML อ่านว่า แซม-แอล) XAML ย่อมาจาก eXtensible Application Markup Language ใช่แล้วครับเป็นภาษาตระกูล Markup ที่จะมีทั้ง tag เปิดและปิด ซึ่งภาษานี้สามารถทำงานด้านแสดงผลได้เป็นอย่างดี แล้วยังเป็นภาษาที่เข้าใจได้ง่ายอีกด้วย (เอาเป็นว่าถ้ามีโอกาสจะทำบทความสอนเลยแล้วกัน)

SpeechSample



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


สำหรับผู้ที่ต้องการลองเอาไปใช้ Download Here


วิธีการใช้ 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

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

รับปรับมุมมองในการโปรแกรมมิ่งสำหรับผู้เริ่มต้นเขียนโปรแกรม

รับปรับมุมมองในการโปรแกรมมิ่งจากเรื่องยากๆไม่เข้าใจ จะช่วยทำให้เป็นเรื่องง่ายและสนุก แอดมาคุยกันได้ครับ (ขอจำกัดไว้สำหรับผู้เพิ่งเริ่มต้นเขียนโปรแกรมเท่านั้น ในระดับสูงไปกว่านี้เช่นเขียนจนชำนาญแล้วจะไม่รับนะครับ)
Powered By Blogger