[Java] NaN คือ อะไร
บ่อยครั้งที่เราเขียนโปรแกรมที่เกี่ยวกับการคำนวณตัวเลขต่างๆ ไปๆมาๆ เกิด Exception ตัวอย่าง เช่น สาเหตุของปัญหานี้ คือ การคำนวณแล้วเกิด NaN ซึ่งเป็น NumberFormatException อยากรู้ว่าน้อง NaN คือ อะไร สามารถอ่านต่อได้เลยครับ
บ่อยครั้งที่เราเขียนโปรแกรมที่เกี่ยวกับการคำนวณตัวเลขต่างๆ ไปๆมาๆ เกิด Exception ตัวอย่าง เช่น สาเหตุของปัญหานี้ คือ การคำนวณแล้วเกิด NaN ซึ่งเป็น NumberFormatException อยากรู้ว่าน้อง NaN คือ อะไร สามารถอ่านต่อได้เลยครับ
Q: เคยสงสัยหรือไม่ ว่า public static void main(String[] args) ตรงที่ตัวแดงไว้ มีไว้ทำอะไร A: มีไว้ เพื่อทำการรับค่าจากส่วนของ command line(หน้าจอดำๆ ของMS Dos) เพราะ java ในยุคแรกๆต้องรันผ่านหน้าจอ Dos โดยตัว String[] args นั้นไม่จำเป็นต้องเขียนก็ได้ แต่ถ้าไม่ระบุ (String[] args) method main มันจะกลายเป็นแค่ method ทั่วๆไป เพราะ jvm specification ระบุ signature ไว้ว่ามันจะวิ่งไปทำงานที่ main ที่รับ parameter เป็น String[] เท่านั้น Q: แล้วถ้าต้องรับค่าจาก command line แต่ใช้ Eclipse หละ A: ทดสอบทำตามขั้นตอนนี้เลย สร้าง project และ class ขึ้นมาตามปกติ จากนั้นcopy code ด้านล่างนี้ไปแปะ แล้วจัดการimport package และ ประกาศตัวแปรให้ถูกต้อง public class ExceptionDemo { public static void main(String[] args) { double a, b, c; a = Double.parseDouble(args[0]); //ทำการแปลงค่าจาก arg[0] ให้เป็น double b = Double.parseDouble(args[1]); //ทำการแปลงค่าจาก arg[1] ให้เป็น double c = Double.parseDouble(args[2]); //ทำการแปลงค่าจาก arg[2] ให้เป็น double JOptionPane.showMessageDialog(null, a+”\n”+b+”\n”+c);…
โจทย์ จงจัดเก็บข้อมูลนิสิตได้แก่ รหัสนิสิต, ชื่อนิสิต, คะแนนสอบกลางภาค, คะแนนสอบปลายภาค, คะแนนควิช, คะแนน Project และ คะแนนเข้าห้องเรียง โดยใช้ ArrayIndexList จาก Library ของ Net. Data Structure การออกแบบ และสิ่งที่ต้องรู้ ArrayIndexList คือ โครงสร้างข้อมูล List หรือ Queue ซึ่งมีการจัดการข้อมูลแบบ FIFO (First In First Out) ง่ายๆเลย คือ ใครมาก่อนได้ก่อนนั้นเอง ตัวอย่างเช่น การเข้าแถวซื้ออาหาร Class ListTestNet เป็น Main ทำหน้าที่ทดสอบการใช้งาน โดยมีหน้าที่ต่างๆ ได้แก่ เพิ่มข้อมูล ดึงข้อมูลออก ตรวจสอบว่า List ว่าง หรือไม่ ลบข้อมูล แก้ไขข้อมูล แสดงขนาดของ List ออกจากโปรแกรม Class Student เป็น Data Class ไว้จัดเก็บข้อมูลนิสิต
UPDATE 2021: เว็บ net3.datastructures.net หายไปแล้วครับ … สิ่งที่ควรรู้ เมื่อ Download มาศึกษาไฟล์ java ซึ่งมีนามสกุล .jarQ: ไฟล์ .jar มัน คือ อะไรA: เป็นไฟล์ที่รวมรวมคลาสต่างๆเอาไว้ภายใน ให้เป็นกลุ่มๆ เหมือนไฟล์ .zip หรือ .rar มันเป็นคนละส่วนกับของที่มีแล้วใน java.util โดยในส่วนของ Net. Data Structure จะรวบรวมไฟล์ต่างๆ โดยจะมีในส่วน interface และการ implement ใช้งานในส่วนต่างๆ ซึ่งถ้าอยากรู้เราสามารถที่จะใช้โปรแกรมพวก java decomplier หรือ Download Source Code ศึกษาได้ เพื่อศึกษาการทำงานของ Data Structure แต่ละแบบว่ามีแนวคิด และการทำงานอย่างไร มันไม่ใช่ .net framework ของทาง microsoft
เมื่อทำงานที่เกี่ยวกับไฟล์ ไม่ว่าจะเป็นไฟล์รูป เท็กซ์ไฟล์ หรือไฟล์แบบอื่นๆ สิ่งที่สำคัญที่จะขาดไม่ได้เลยนั้น คือ Path ที่อยู่ของไฟล์ สำหรับนักพัฒนาโปรแกรมมือใหม่อาจจะยังไม่ใส่ใจเรื่องนี้ หรือคิดเพียงว่าเครื่องเราแสดงผล OK เป็นใช้ได้ แต่ปัญหาจะมาเกิดตอนไปรันที่เครื่องอื่นๆ เช่น กรณีตัวอย่าง โปรแกรมตัวอย่างนี้เป็นเกม Hang man ที่พัฒนาด้วยภาษา Java ซึ่งมีการกำหนด Path ของภาษา Background ตาม Code ต่อไปนี้ เมื่อนำรันที่เครื่องของน้อง กุ๊ก ปรากฏว่าสามารถแสดงผลได้สวยงาม ดังรูป น้อง กุ๊ก ส่งให้นายแว่นตรวจสอบปรากฏว่าภาษาพื้นหลังไม่ขึ้น ซวยและทีนี้ (นายแว่นวางไฟล์ไว้ในไดร์ฟ D) ปัญหา เพราะโปรแกรมมีการกำหนดแบบ absolute path (กำหนดที่อยู่ไฟล์แบบละเอียด บอกว่าอยู่ไดร์ฟไหน อะไรอย่างไร) แนวทางแก้ไข เราปรับเปลี่ยน path ของรูปภาพ จากเดิมที่เป็น absolute path มาเป็นแบบ relative path (กำหนดทีอยู่ไฟล์แบบคร่าว คือ ส่วนแรกให้คอมมันหาให้ + ส่วนที่สอง คือ แสดง Path ไปหาไฟล์) absolute path “” relative path dirPath+”” ซึ่งเราจะต้องมาหาว่า dirPath ต้องเอาอะไรมาใส่ดี มารู้จักกับ System.getProperty(“user.dir”); คือ อะไร getProperty(): เป็นคำสั่งที่ช่วยค่า property ต่างๆของระบบปฏิบัติการออกมา “user.dir”: เป็น Parameterที่ช่วยบอกให้โปรแกรมมันไปดึง Path ที่อยู่ของโปรแกรม หรือไฟล์ Java ที่รันอยู่ ว่าอยู่ในโฟลเดอร์ไหน ไดร์ฟอะไร ทดสอบแก้ไขโดยการใช้ System.getProperty(“user.dir”); เพื่อเอาข้อมูล path ทีหายไปมาใส่ใน dirPath ตาม code ต่อไปนี้ ผลการทดสอบ โปรแกรมนี้สามารถแสดงผลได้อย่างสวยงาม และสามารถรันได้ทุกเครื่องแม้วามีสภาพแวดล้อมที่ต่างกัน สรุป จากตัวอย่างนี้จะแสดงการใช้คำสั่ง System.getProperty(“user.dir”); เพื่อมาหา Path…
วางแผนชีวิต อนาคตด้วยกองทุนรวม สร้างหัวให้เป็น Business โปรแกรมมิ่ง ขอเป็น Desktop ก่อน อยากทำโปรแกรมตอบโจทย์ธุรกิจ
Windows Workflow Foundation เป็นหนึ่งในเทคโนโลยีที่มาคู่กับ Microsoft .Net Framework 3.0 เป็นต้นไป โดยมีจุดประสงค์ เพื่อตอบการทำงานขององค์กรที่มีการไหลเวียนของข้อมูลในรูปแบบต่างๆ อาทิ เช่น แบบ Sequential: มีการไหลของข้อมูล โดยมีลำดับขั้นตอนแน่นอนจากต้นไปจนจบ ยกตัวอย่าง เช่น ลำดับการขออนุมัติสินเชื่อในธนาคารที่ต้องมีการทำงานของ แต่ละแผนก ซึ่งมีลำดับการทำงาน การตรวจสอบที่แน่นอน แบบ State: ไม่มีลำดับขั้นตอนที่แน่นอน แต่จะเปลี่ยนการกระทำต่อเมื่อมีสิ่งเร้ามากระตุ้น ยกตัวอย่าง เช่น การตรวจสอบ Limit ของ Transaction ที่รายการซื้อใน แต่ละวันมีปริมาณไม่เท่ากัน และอาจะเกิดเหตุการณ์ต่างๆที่แตกต่างกัน ได้แก่ การแจ้งเตือน หยุดการซื้อ/ขาย หรือ แนะนำให้ผู้ใช้รอก่อน เป็นต้น Windows Workflow Foundation มักถูกนำมาประยุกต์ใช้กับงานด้าน Business ทีมีการเปลี่ยนแปลงของ Process อยู่ตลอดเวลา ซึ่งต้องมี input ที่แน่นอน แต่ output ที่ได้มีลักษณะเป็น Dynamic แตกออกมาได้หลากหลายรูปแบบ
สมัยนี้อะไรๆ ก็ Like & Share กันหมด ถ้าบทความของเราผู้อ่านต้อง copy link ไปแปะลง Social Network เพื่อแชร์ให้ผู้อื่นเพื่อนของเขาได้ชมบทความของเราคงไม่ดีแน่ เราต้องช่วย User (ตั้งสมมติฐานว่า User ขี้เกียจ) โดยวันนี้ผมมี Plugin มาแนะนำครับ Simple Share Buttons Adder ให้ทุกเรื่องแชร์ง่ายเพียงคลิกครับ ข้อมูล Plugin Simple Share Buttons Adder ทำไมถึงแนะนำ Plugin ตัวนี้ ปรับแต่งการตั้งค่าได้เยอะ สามารถแสดง Social Network ที่ให้แชร์ได้หลายหลาย และลำดับการแสดงผลได้เอง สามารถแสดงจำนวนคนแชร์ได้ด้วย
หลายครั้งเวลาเราเขียนบทความลงใน Blog บางบทความมีรูปภาพประกอบด้วย ซึ่งบางภาพเล็กไป ต้องให้ผู้ใช้กดดูรูป พอกดดูเท่านั้นแหละ มันดันเปิด Tab ใหม่ขึ้นมา หรือ เปลี่ยนหน้าไปเลย วันนี้ผมมี Plug in มาแนะนำครั้ง Responsive LightBox (พระเอกของเราเลย) ช่วยให้การแสดงผลภาพในบล๊อกดูดีมีระดับมีชาติตระกูล ข้อมูล Plugin Responsive LightBox ทำไมถึงแนะนำ Plugin ตัวนี้ สวยงาม เป็นresponsive (การปรับแสดงผลบนเว็บให้เหมาะสำหรับหน้าจอหลายๆแบบทั้ง SmartPhone, Tablet และคอมพิวเตอร์ที่มีจอขนาดต่างๆ) ฟรี
ในยุคนี้อะไรก็ Social Network กันหมด หากอยากจะโปรโมทอะไรสักอย่างบนเว็บทางที่ดีที่สุด คือ ทำ Fan Page และวันนี้ผมนำเสนอวิธีการเพิ่ม Like Box มาลงใน WordPress ของเรา เพิ่มโปรโมทให้คนรู้จักครับ เข้าไปที่เว็บไซต์ เราพบช่องให้กรอกรายละเอียดสำหรับ Fan Page เราดังนี้ Facebook Page URL: ลิงค์ Fan Page ของเรา ตัวอย่างที่ใช้จะเป็น Width: ความกว้างของ Like Box High: ความสูงของ Like Box Color Scheme: Theme ของ Like Box มี 2 แบบ ได้แก่ light กับ dark Show Friends’ Faces: แสดงหน้าของคนที่ Like Page เรา Show Post: แสดงโพสล่าสุดบนหน้า Fan Page Show Header: แสดงหัวเรื่อง Show Border: แสดงเส้นขอบ เมื่อกด Get Code แล้ว เราได้ Code สำหรับไปแปะบน WordPress ของเรา กรณีนี้ให้เลือกเป็น iframe และ copy code เก็บไว้ กลับมาที่ WordPress ของเรากัน ให้ไปหน้า Admin >> Appearance >> Widgets และลาก Widget Text มาวางที่ Side Bar และตั้งค่า…