[JAVA] Tower of Hanoi

บางครั้งเวลาเราพัฒนา Application ขึ้นมา เราอยากเก็บค่า Config บางอย่าง เช่น username ครั้งสุดท้ายที่ใช้ Log , ชื่อ Database ที่ใช้งานประจำ หรือเป็นขนาดความกว้าง ยาวของหน้าจอครั้งล่าสุด โดยอาจเราจะเก็บไว้ Text File, Registry หรือเก็บใน Project Setting ที่ทาง .NET Framework ได้เตรียมไว้ให้ โดยวันนี้ผมขอแนะนำการเก็บค่า Config ต่างๆลงใน Project Setting กันครับ เก็บค่า Config ผ่าน Project Setting คลิกขวาที่ Project File เลือก properties >> เลือกที่ส่วน Setting จากนั้นกำหนดข้อมูล การกำหนด Config สามารถทำได้ โดยสามารถเรียกใช้ผ่านคำสั่ง ดังนี้ Properties.Settings.Default.ชื่อ Config ตัวอย่างการใช้งาน กำหนดค่า หากต้องการบันทึกค่า Config นั้นเราสามารถใช้ Method Save ตามตัวอย่าง ดัง Code ต่อไปนี้ หากต้องการเรียกใช้ Config นั้น เราสามารถทำได้ โดยใช้ Code ต่อไปนี้ หากต้องการ Clear ค่า Config เราสามารถใช้ Method Reset(); ได้ ถ้าอยากรู้ว่า Config ที่เรานั้นสร้างขึ้นมา ถูกจัดเก็บไว้ที่ไหน ให้ลองไปดูใน AppConfig พบ Section เพิ่มขึ้นมา ดังตัวอย่างนี้ และถ้าอยากรู้อีกว่าค่าที่เราแก้ไป เก็บอยู่ที่ไหนในคอมพิวเตอร์ของเราในกรณี หมายเหตุ: วิธีการนี้ใช้งานได้กับระบบปฏิบัติการตั้งแต่ Windows Vista เป็นต้นไปนะ
เวันนี้เขียนโปรแกรม C# กับ SQLite อยู่ดีๆ Bulid ผ่านะ แต่ Runtime Error โดยมี Message แจ้ง ดังนี้ [A]System.Data.SQLite.SQLiteConnection cannot be cast to [B]System.Data.SQLite.SQLiteConnection. Type A originates from ‘System.Data.SQLite, Version=1.0.92.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139’ in the context ‘Default’ at location ‘C:\Users\Chatr_000\Desktop\InvConfig(AutoRegisDLL)\InvConfig\bin\Release\System.Data.SQLite.dll’. Type B originates from ‘System.Data.SQLite, Version=1.0.91.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139’ in the context ‘Default’ at location ‘C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data.SQLite\v4.0_1.0.91.0__db937bc2d44ff139\System.Data.SQLite.dll’. หลังจากไล่ Code อยู่นานพบว่าในเครื่องที่ใช้ Dev มี SQLite อยู่ 2 Version คือ 1.0.91.0 กับ 1.0.92.0 ติดตั้งอยู่ ซึ่งผมได้แก้ไขโดย ถอนการติดตั้ง SQLite Version 1.0.91.0 ออกไป ซึ่งการอัพเกรด Version ของ SQLite DLL ควรทำการ Uninstall Version แก่ก่อนลง Version ใหม่เสมอ ครับ ถ้าไม่เอาออก Registry ของ Windows มันจะมองเป็น 2 Version แก้ไขการโปรแกรมใหม่ ทั้งใน app config และ Reference ของ Project ให้ Reference ไปยังไฟล์…
หลายๆคนคงสงสัยว่า Keyword Abstract มัน คือ อะไร และเมื่อไหร่ที่ควรจะใช้ วันนี้ผมมีตัวอย่างง่ายๆในการอธิบายนะครับ โดยอาจจะแทรกเนื้อหาเกี่ยวกับ interface เพิ่มเข้าไปด้วยครับ เพราะลายคนสับสนกันเยอะ โดยผมขอเริ่มโจทย์ที่เราต้องใช้ Abstract Class ดังนี้ จงเขียน class Student ซึ่งประกอบด้วย data members ดังนี้ name (ชื่อนิสิต), test (อะเรย์ของคะแนน), NUM_OF_TESTS (ค่าคงที่เป็นจำนวนของ test) และ courseGrade (เกรดของวิชา) ให้สร้าง Constructor, methods get/set และ abstract method computeCourseGrade โดยมีวิธีการคำนวณต่างกันไปสำหรับนิสิตปริญญาตรี (UndergraduateStudent) และบัณฑิตศึกษา (GraduateStudent)ให้เขียน class UndergraduateStudent ซึ่งเป็น subclass ของ Student และ ทำการ implement method computeCourseGrade ตามเกณฑ์ต่อไปนี้คือ ถ้าคะแนนเฉลี่ย >= 70 ผ่าน (Pass) ถ้าคะแนนเฉลี่ย < 70 ไม่ผ่าน (Fail) ก่อนที่จะทำโจทย์ ผมอยากให้รู้จักคำศัพท์บางตัวก่อน 📌 Signature ของ Method คือ อะไร การกำหนดลักษณะของ Method name(ชื่อ method) + Parameter List(ตัวแปรที่จะส่งเข้าไป) 📌 Method Header คือ อะไร พูดง่ายๆ คือ Signature หรือการประกาศ Method ว่ามีซื่ออะไร รับอะไรมาบ้าง ส่วน Logic การทำงานของมันจะไปอยู่ใน Method Detail จ้า ดูตามรูปเลย…
config eclipse.ini เพิ่ม Performance ให้ Eclipse
เมื่อเราพัฒนาระบบขึ้นมา ระบบต้องมีการโต้ตอบ หรือให้ข้อมูลต่างๆแก่ user ซึ่งถ้าเราแสดงตัวอักษรอย่างเดียวไป มันอาจจะทำให้อ่านยาก และไม่สวยงามด้วย วันนี้ผมมานำเสนอการพิมพ์ Bullet หรือจุดลิสต์รายการ เพื่อให้ข้อมูลแสดงออกมาให้ดูง่าย ดังนี้ ก่อนอีกเลย เราต้องรู้ว่าอักษร Bullet หรือ จุดนี่ มันมีค่า Unicode ค่าอะไร เมื่อประกาศค่าคงที่เรียบร้อยแล้ว เราสามารถนำใส่ต่อกับ String ที่ต้องการได้เลยครับ อันนี้ผมนำไปใช้เพื่อแสดงรายละเอียดการแก้ไขโปรแกรม หรือ change log ให้ดูได้ง่ายขึ้นนะครับ ตัวอย่างเมื่อ Run Program ครับ
จากบทความที่แล้วที่ผมได้เขียนไปเกี่ยวกับ การ ลด Par ล้างหนี้ แล้วยังติดประเด็นว่า ถ้าเราไม่ลด Par มันจะเกิดอะไรขึ้น ? ก่อนอื่นเลยต้องถึงสมการนึงก่อน ทุนจดทะเบียน(ทุน) / จำนวนหุ้น = ราคา Par ถ้าเราลดราคา Par แล้วทุนจดทะเบียนลดลง แต่จำนวนหุ้นเท่าเดิม ถ้าเรามองกลับกัน ลดทุนจดทะเบียน แต่ไม่ลดราคา Par ดังนั้นจำนวนหุ้นลดลง แล้วจำนวนหุ้นที่ลดลง มันมีผลอะไรบ้าง ? อย่างแรกเลย คือ จำนวนหุ้นที่ลดลง แต่ราคาของหุ้นจะต้องเพิ่มขึ้นตามสัดส่วนที่ได้ลดลง ผู้อ่านอาจะงงเดียวผมของยกตัวอย่างเลยนะครับบริษัท ก มีทุนจดทะเบียน 1,000 บาท โดยแบ่งจำนวนหุ้น 10,000 หุ้น ตอนนี้ราคา Par = 0.10 บาทต่อหุ้นต่อมาอีก 1 ปี บริษัท ก ทำธุรกิจขาดทุนไป 500 บาททางผู้บริษัทเลยมีมิติลดทุนเพื่อล้างหนี้ที่ขาดทุนไป โดยไม่ลดราคา Par สังเกตุว่าราคา Par มันน้อยจดลดอีกไม่ได้แล้ว 1,000 – 5000(ทุน) / 0.10(ราคา Par) = 5,000 จำนวนหุ้น เมื่อเทียบจำนวนหุ้นเดิม ต่อ จำนวนหุ้นใหม่ คือ 10,000 : 5,000 ซึ่งถ้าเทียบเป็นอัตราส่วนแล้ว คือ 2 : 1 ตีความได้ว่า 2 หุ้นเดิม จะลดเหลือ 1 หุ้นโดยมีผลให้ราคาหุ้นเพิ่มขึ้น 2 เท่า ราคาหุ้น ไม่ใช่ราคา Par นะ ถ้าราคาหุ้นเดิม คือ 1 บาท เมื่อลดทุนแล้วราคาหุ้น จะเป็น 2 บาท โดยกระบวนการที่จัดการกับส่วนนี้จะเรียกว่า…
พอดีมีเพื่อนตอนมธัยมทักมา เพื่อให้ช่วยรวมข้อมูลไฟล์ Excel หลายๆไฟล์ แต่ตอนนั้นผมเตรียมสอบ Toeic อยู่เลยปัดไป แต่จริงๆแอบเขียน VBA เพื่อรวมไฟล์ Excel หลายๆไฟล์ มารวมใน Sheet เดียว โดยมี Code คร่าวๆ ดังนี้ถ้าว่างๆ เดี๋ยวมาอธิบาย Code นะ
หลังจากเรา เตรียมข้อมูล เรียบร้อยแล้ว ขั้นตอนต่อมา คือ การสร้าง Model โดยทำต่อไปตามขั้นตอนเลยครับ หลังจากที่ได้ลองทำตามขั้นตอนเรียบร้อยแล้ว งานถัดไปของเรา คือ การตรวจสอบโมเดล ซึ่งผมเขียนเป็น Blog ถัดไปนะครับ ^____^
ช่วงนี้หลายๆคนที่เล่นหุ้น น่าจะได้ยินข่าวว่าหุ้นหลายตัว อาจจะทำการ “ลด Par ล้างหนี้” เพื่อล้างขาดทุนสะสมหมดไป แต่….สำหรับแมงเม่าน้องใหม่อย่างเรานั้น มันจะมีผลอะไรเกิดขึ้นกับเรา หรือไม่ ? Par คือ อะไร ก่อนอื่นที่เราจะไปถึงเรื่องลด Par สิ่งที่เราต้องรู้ก่อนว่า “Par” คือ อะไร Par คือ ราคาที่เจ้าของกิจการกำหนด หรือจัดสรรขึ้นมา เพื่อให้ได้หุ้น 1 หน่วยครับ ตอนที่เริ่มทำธุรกิจ โดยคิดง่ายๆจาก ทุนจดทะเบียน(ทุน) / จำนวนหุ้น = ราคา Par ตัวอย่าง ถ้ามีทุนจดทะเบียน(ทุนตั้งต้น) ตั้งบริษัทจำนวน 100,000 บาท โดยแบ่งเป็น 100,000(ทุน) / 10,000(จำนวนหุ้น) = 10 บาทต่อหุ้น (ราคา Par) ลด Par ล้างหนี้ ตอนนี้เรากลับมาที่ ลด Par ล้างหนี้กันครับ โดยการลด Par เพื่อล้างหนี้ คือ เทคนิคทางการบัญชีมาปรับขาดทุนสะสม โดยการลดราคา Par ลงมา เดี๋ยวผมอธิบายในตัวอย่างเลยและกัน เพราะมันต้องมีคามเข้าใจ เรื่องบัญชีส่วนหนึ่ง สมการบัญชีที่ทุกคน่าจะรู้จัก คือ สินทรัพย์ = หนี้สิน + ทุน ยกตัวอย่างต่อจากข้อที่แล้วเลย คือ ทุน = 100,000 โดยสมการที่ได้เป็น 100,000(สินทรัพย์) = 0(หนี้สิน) + 100,000(ทุน) ณ จุดนี้หนี้สินเป็นศูนย์ แต่เมื่อบริษัทของเราดำเนินกิจการระยะหนึ่งเกิดขาดทุน 10,000 บาทมา ประเด็น คือ เราจะเอาอะไรไปโป๊ะ ถ้าไม่กู้มาเพิ่ม ก็ต้องเอาจากทุนไปจ่าย ซึ่งถ้าเลือกทุนไปจ่าย ส่วนของทุนต้องติดลบไป(เหลือ 90,000 บาท เอาไปโป๊ะขาดทุน 10,000 บาท)…