import javax.swing.JOptionPane; public class HW02 { public static void main(String[] args) { int m1000 = 0; int m500 = 0; int m100=0; int m50=0; int m20=0; int m10=0; int m5=0; int m2=0; int m1=0; int m = Integer.parseInt(JOptionPane.showInputDialog(null, "ระบุจำนวนเงิน", "Information", JOptionPane.INFORMATION_MESSAGE)); String mStr = "จำนวนเงินที่ต้องระบุ: " + m; if (m > 0) { if (m >= 1000){ m1000 = m / 1000; m %= 1000; } if (m >= 500) { m500 = m / 500; m %= 500; } if (m >= 100) { m100 = m / 100; m %= 100; } if (m >= 50) { m50 = m / 50; m %= 50; } if (m >= 20) { m20 = m / 20; m %= 20; } if (m >= 10) { m10 = m / 10; m %= 10; } if (m >= 5) { m5 = m / 5; m %= 5; } if (m >= 2) { m2 = m / 2; m %= 2; } m1 = m; mStr += "\n1,000 = " + m1000 + "\n500 = " + m500; mStr += "\n100 = " + m100 + "\n50 = " + m50; mStr += "\n20 = " + m20 + "\n10 = " + m10; mStr += "\n5 = " + m5 + "\n2 = " + m2; mStr += "\n1 = " + m1; JOptionPane.showMessageDialog(null, mStr, "Information", JOptionPane.INFORMATION_MESSAGE); } else JOptionPane.showMessageDialog(null, "ต้องระบุจำนวนเงินมากกว่า 0", "Information", JOptionPane.INFORMATION_MESSAGE); } }
การเรียนการสอนทางด้านคอมพิวเตอร์ การเขีียนโปรแกรม การพัฒนาโปรแกรม เทคนิคที่ึควรรู้ เทคนิคการวิเคราะห์และออกแบบระบบ และซอฟต์แวร์โอเพนซอร์ต (Open Source) ที่น่าสนใจ
วันเสาร์ที่ 6 กรกฎาคม พ.ศ. 2556
โปรแกรมการถอนเลขจำนวนเงิน (ภาษาจาวา)
การแสดงข้อมูลโดยใช้ JOptionPane (ภาษาจาวา)
import javax.swing.JOptionPane; public class HW01 { public static void main(String[] args) { String name = "Warawut"; String surname = "Khangkhan"; String department = "Information"; JOptionPane.showMessageDialog(null, "Name: " + name + " " + surname + "\nDepartment: " + department, "Information", JOptionPane.INFORMATION_MESSAGE); } }
วันเสาร์ที่ 25 สิงหาคม พ.ศ. 2555
PHP: แปลงข้อความให้เป็นตัวเลข
รูปแบบ:
number_format(ตัวเลข, จำนวนทศนิยม, จุดทศนิยม, สัญญลักษณ์หลักพัน)
ตัวอย่างที่ 1:
<?php
$number = 1234.5;
echo number_format($number, 2, '.', ',');
?>
ผลลัพธ์ที่ 1: 1,234.50
ตัวอย่างที่ 2:
<?php
$number = 1234;
echo number_format($number, 0, '', ',');
?>
ผลลัพธ์ที่ 2: 1,234
วันอังคารที่ 5 ตุลาคม พ.ศ. 2553
CodeIgnitor: Model-View-Controller (MVC)
CodeIgniter ถูกสร้างบนพื้นฐานการพัฒนาแบบ Model-View-Controller (MVC) ซึ่งก็คือ วิธีการทางซอฟต์แวร์ที่แยกระบบการใช้เหตุผลของแอพพลิเคชั่นจากส่วนแสดงผล ในทางปฏิบัติมันอนุญาตให้หน้าเว็บของคุณมีสคริปเล็กๆ เนื่องจากส่วนแสดงต้องแยกออกจากสคริป PHP รายละเอียดเกี่ยวกับ MVC มีดังนี้
วันพฤหัสบดีที่ 30 กันยายน พ.ศ. 2553
CodeIgnitor: ขั้นตอนการทำงานของแอพพลิเคชั่น
ขั้นตอนการทำงานของแอพพลิเคชั่น สามารถแสดงได้จากรูปภาพ
- Index.php เป็นตัวควบคุมส่วนหน้า, สร้างทรัพยากรพื้นฐานที่ต้องการในการรัน CodeIgniter
- Routing: ตัว Router ทำการตรวจสอบ HTTP request กำหนดว่าควรจะทำอะไรกับมัน
- Caching: ถ้ามีไฟล์แคชอยู่ ตัวมันจะถูกส่งกลับทันทีไปยังบราวเซอร์ โดยไม่ผ่านการทำงานปกติของระบบ
- Security: ก่อนที่จะโหลดตัวควบคุมของแอพพลิเคชั่น (Application Controller) HTTP request และผู้ใช้ใดๆ ที่ส่งข้อมูลมาจะถูกกรองข้อมูลเพื่อความปลอดภัย
- Application Controller: โหลดแบบจำลอง (Model), ไลบรารี่หลัก (Libraries), Plugins, ผู้ช่วย (Helpers) และทรัพยากรอื่นๆ ที่จำเป็นในการทำงานที่ถูกร้องขอมา
- View: ปฏิบัติงานและถูกส่งกลับไปยังบราวเซอร์เพื่อโชว์หน้าจอ ถ้าระบบแคชถูกใช้งาน หน้าจอจะถูกแคชก่อนแล้วจึงค่อยส่งสิ่งที่ร้องขอมาเป็นลำดับถัดไป
อ้างอิงจาก: http://codeigniter.in.th/user_guide/overview/appflow.html
ทำความรู้จักกับ CodeIgniter (CI)
CodeIgniter (CI) เป็น PHP Framework ที่ใช้ในการพัฒนาเว็บแอพพลิเคชั่น โดยมีคุณสมบัติในด้านการพัฒนาให้รวดเร็วยิ่งขึ้น เมื่อเปรียบเทียบการพัฒนาแบบเดิมๆ ที่เราต้องนั่งเขียนโค้ดเองตั้งแต่เริ่มต้น ซึ่ง CI จะมี library ต่างๆ จัดเตียมไว้ให้เราใช้งานทั่วไปและยังทำให้ลดจำนวนโค้ดที่เราเขียนน้อยลง และมาพร้อมกับ library ที่สมบูรณ์ ซึ่งใช้ทำงานส่วนใหญ่ในการพัฒนาเว็บไซต์ เช่น ติดต่อฐานข้อมูล, ส่งอีเมล์, ตรวจสอบรูปแบบข้อมูล, ดำรงช่วงเวลาการสื่อสาร, จัดการกับรูปภาพ, ทำงานกับข้อมูล XML-RPC ฯลฯ อีกมากมาย อีกทั้งเรายังสามารถขยายการทำงานได้ โดยผ่าน library plugins หรือ helper หรือผ่านการต่อเติม class หรือระบบตะขอ (Hook)
CI สามารถทำงานได้ทั้ง PHP 4 และ PHP 5 ซึ่งแน่นอนว่า CI จะต้องเป็น Open Source (Free) ที่อยู่ภายใต้เงื่อนไข Apache/BSD และทรัพยากรน้อยกว่า Framework ตัวอื่นๆ เนื่องจาก CI ต้องการเพียง library เพียงเล็กน้อยเท่านั้น (หลักๆ) จึงทำให้มีขนาดเล็กและรวดเร็วในการทำงาน
CI ใช้ Model-View-Controller (MVC) ช่วยในการแบ่งแยกการทำงานของระบบออกเป็นส่วนๆ เพื่อง่ายต่อการพัฒนา และยังสร้าง URL ที่สะอาดและเป็นมิตรกับกลไกการค้นหา (Search Engine) เช่น Google, Yahoo ตรงข้ามกับการวิธีการใช้ "query string" กับ URL ซึ่งมีความหมายเหมือนกันกับระบบการเคลื่อนที่ CodeIgniter ใช้วิธีการแบ่งเป็นกลุ่ม เช่น example.com/news/article/345 เป็นต้น
CI ไม่ต้องการกลไก Template ถึงแม้ว่า CodeIgniter จะมาพร้อมกับ Template Parser แบบง่าย ซึ่งเป็นทางเลือกที่สามารถใช้ได้ โดยไม่ได้บังคับให้คุณต้องใช้มัน กลไก Template อย่างง่ายไม่สามารถมีประสิทธิภาพเท่ากับ PHP ตามธรรมชาติ และคุณต้องเรียนรู้ไวยากรณ์ (Syntax) เพื่อใช้กลไก Template ซึ่งปกติแล้วมีขอบเขตการใช้งานที่ง่ายกว่าการเรียนพื้นฐานของ PHP ลองพิจารณาโค้ดต่อไปนี้
<ul>
<?php foreach ($addressbook as $name): ?>
<li><?=$name?></li>
<?php endforeach; ?>
</ul>
เปรียบเทียบสิ่งนี้กับ Pseudo-Code (รหัสเทียม) ซึ่งถูกใช้ในกลไก Template
<ul>
{foreach from=$addressbook item="name"}
<li>{$name}</li>
{/foreach}
</ul>
ใช่แล้วตัวอย่างกลไก Template สะอาดกว่านิดหน่อย แต่มันต้องแลกกับประสิทธิภาพ ซึ่ง Pseudo-Code จะถูกแปลงกลับไปเป็น PHP เพื่อทำงาน ดังนั้นถ้าจุดมุ่งหมายหนึ่งเราคือ มีประสิทธิภาพมากที่สุด เราจึงเลือกที่ไม่บังคับใช้กลไก Template
CI ยังมีสามารถทำเป็นเอกสาร ซึ่งโดยปกติแล้วโปรแกรมเมอร์ที่รักในการเขียนโค้ดมักจะไม่ชอบในเรื่องของการจัดทำเอกสาร CI ก็สามารถจัดการให้เราได้
คุณสมบัติหลักที่มีใน CodeIgniter
- ระบบบนพื้นฐาน Model-View-Controller (MVC)
- รองรับ PHP 4
- แอพพลิเคชั่นเบาสุดขีด
- คุณสมบัติครบถ้วนสำหรับฐานข้อมูลและสนับสนุนหลายแพลตฟอร์ม
- สนับสนุนการใช้ฐานข้อมูลแบบ Active Record
- การตรวจสอบฟอร์มและข้อมูล
- ความปลอดภัยและระบบกลั่นกรอง XSS (Cross Site Scripting)
- การจัดการ Session
- คลาสส่งอีเมล์
สนับสนุนการแนบไฟล์, อีเมล์แบบ HTML/Text,
รองรับหลายโปรโตคอลพร้อมกัน (ส่งเมล์, SMTP
และ Mail)
และอีกมาก
- ไลบรารี่จัดการรูปภาพ (ตัด, ย่อ, หมุน, ฯลฯ). สนับสนุน GD, ImageMagick และ NetPBM
- คลาสอัพโหลดไฟล์ (File Uploading Class)
- FTP Class (คลาส FTP)
- Localization (หรือการทำหลายภาษา)
- Pagination (หมายเลขหน้า)
- Data Encryption (การเ้ข้ารหัสข้อมูล)
- Benchmarking (การทดสอบเพื่อวัดความสามารถในการประมวลผล)
- Full Page Caching (การเก็บหน้าทั้งหน้าอยู่ในแคช)
- Error Logging (การบันทึกข้อผิดพลาด)
- Application Profiling (การรวบรวมรายละเอียดของแอพพลิเคชั่น)
- Scaffolding (การทำโครงยกพื้น)
- Calendaring Class (คลาสปฎิทิน)
- User Agent Class (คลาสตัวแทนผู้ใช้)
- Zip Encoding Class (คลาสเข้ารหัส zip)
- Template Engine (คลาสกลไลแม่แบบ)
- Trackback Class (คลาสระบบติดตามลิงค์กลับ)
- XML-RPC Library (ไลบรารี่ XML-RPC)
- Unit Testing Class (คลาสทดสอบเฉพาะหน่วย)
- URL ที่เป็นมิตรกับเซิร์ชเอนจิ้น
- เส้นทาง URI
ที่ยืดหยุ่น
- สนับสนุนสำหรับ Hooks - (ตะขอ), สอบขยายคลาสและ Plugins
- ไลบรารี่ขนาดใหญ่สำหรับฟังก์ชั่น "ผู้ช่วย"
อ้างอิงจาก: http://codeigniter.in.th/user_guide/index.html
วันพฤหัสบดีที่ 16 กันยายน พ.ศ. 2553
จำลอง Web Server ด้วย XAMPP
XAMPP เป็นโปรแกรมจำลอง Web Server ตัวหนึ่งที่ได้รับความนิยม ซึ่งนำมาใช้ทดสอบการใช้ Script ที่เกี่ยวกับ PHP และ MySQL และที่สำคัญก็คือ ฟรี ครับ
คุณสามารถ Download โปรแกรมนี้ได้จาก http://www.apachefriends.org/ ซึ่งจะก็ต้องเลือกใช้ให้ตรงกับระบบปฏิบัติการ (Operating System: OS) โดยทั่วไปแล้วนิยมใช้ระบบปฏิบัติการ Windows ก็ต้องเลือก XAMPP for Windows
ภายใน XAMPP นี้จะมีการรวมโปรแกรมที่เกี่ยวข้อง (เวอร์ชั่นที่ใช้อาจจะไม่ตรง ก็ขึ้นอยู่กับที่เรา download มา) ดังนี้
- Apache HTTPD 2.2.9 + Openssl 0.9.8i
- MySQL 5.0.67
- PHP 5.2.6
- PHP 4.4.9
- phpMyAdmin 2.11.9.2
- FileZilla FTP Server 0.9.27
- Mercury Mail Transport System 4.52
ขั้นตอนการติดตั้ง
- Double Click ไฟล์ที่เราได้ทำการ download เสร็จเรียบร้อยแล้ว
- ให้ทำการเลือกภาษา ในที่นี่เราเลือก English และกด OK
- กด Next >
- ระบุ path ที่เราต้องการจัดเก็บ ซึ่งโดยปกติแล้วจัดเก็บที่ c:\xampp เมื่อระบุเสร็จเรียบร้อยแล้วให้กด Next >
- เลือกติดตั้ง Service ทั้งหมด และกด Install
- เริ่มทำการติดตั้ง รอสักครู่
- ทำการติดตั้งเสร็จเรียบร้อย กด Finish
- ถ้าเราทำการติดตั้งโปรแกรมเกี่ยวกับ Apache เป็นครั้งแรก (ในเครื่อง) จะมีข้อความแจ้งให้เราทราบ กด OK
- แจ้งข้อความเกี่ยวกับการติดตั้ง XAMPP control Panel กด OK
- แจ้งข้อความเกี่ยวกับการแสดงความยินดีในการติดตั้งเสร็จเรียบร้อย และมีการถามเกี่ยวการเริ่มต้นการทำงาน XAMPP Control Panel กด Yes (ต้องการเริ่มต้นทำงาน)
- ทำการเครื่องหมายที่รายการ Svc ใน Modules ทุกตัว เพื่อทำการติดตั้งเพิ่มเติม (โดยเฉพาะ Apache)
- กด Start ทั้ง 3 ตัว คือ Apache MySQL และ FileZilla
- ให้ทำการทดสอบ โดยเข้า Browser แล้วพิมพ์ http://localhost เลือกภาษาที่จะใช้งาน
- หลังจากเลือกภาษาที่เราต้องการจะเข้าสู่การต้อนรับของโปรแกรม XAMPP
- เลือกรายการ Security เพื่อกำหนดความปลอดภัยของฐานข้อมูล และเลือก http://localhost/security/xamppsecurity.php (อยู่ด้านล่าง)
- ในส่วนนี้เป็นส่วนรหัสผ่านให้กับ SuperUser ชื่อว่า root ถ้ายังไม่ได้กำหนดจะมีรายการให้ทำอยู่ 2 รายการ คือ รหัสผ่าน และการยืนยันรหัสผ่านอีกครั้ง แต่ถ้ามีการกำหนดแล้ว และมีการเข้ามาแก้ไขจะมีรายการเลือก 3 รายการ คือ รหัสผ่านของเดิม รหัสผ่านใหม่ และการยืนยันรหัสผ่านใหม่อีกครั้ง หลังจากนั้น กด Password changing
จากขั้นตอนติดตั้งเป็นเพียงติดตั้งง่ายๆ เท่านั้น แต่ถ้าต้องการความสามารถเสริม จะต้องมีการกำหนดเพิ่มเติม ซึ่งขอไม่อธิบายขั้นตอนเพิ่มเติม เพียงเท่านี้เราก็สามารถทำการทดสอบโปรแกรมเกี่ยวกับ PHP และ MySQL ได้แล้ว
หมายเหตุ: ไฟล์ทั้งหมดจะเก็บไว้ที่โฟลเดอร์ c:\xampp\htdocs\