|
|
|
เอาแนวข้อสอบการสมัครงานมาแจก คับ โจทย์ประเภท Algorithm ถ้าทำได้อยากให้ลองทำเองก่อนนะคับ |
|
|
|
|
|
|
|
ขอลองด้วยหน่ะครับ คุณ Black Magic ยังไม่เคยเจอปัญหาแบบนี้ครับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>รู้ทัน ATM หยกบูรพา</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="http://www.decorplanit.com/plugin/autoNumeric-1.7.4.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//ข้อสอบสมัครงาน
//โปรแกรมมิ่งข้อที่ 1 ให้เขียนโปรแกรมตู้ ATM ครับ โดยกำหนดให้มีเงินอยู่ในตู้ 23,000 บาท แบ่งเป็น แบงค์พัน 10 ใบ แบงค์ 500 20 ใบ แบงค์ 100 30 ใบ (ถ้าจำไม่ผิดนะครับ ลืมไปแล้ว)
//โดยให้เขียนโปรแกรมเพื่อรับจำนวนเงินที่จะถอน จากนั้นโปรแกรมจะแสดงจำนวนแบงค์ที่ออกมา ซึ่งแบงค์พันจะออกก่อน แล้วก็แบงค์ 500 100 ตามลำดับ
// 23,000 บาท
$('#balance').autoNumeric();
$('#process').live('click',function(){
var account = '';
var balance = $('#balance').autoNumericGet();
if(balance>0){
if(balance<=23000){
$.each([1000, 500, 100, 50, 10, 5, 1, 0.50, 0.25], function(index, value) {
bank = Math.floor(balance/value);
balance = balance-(bank*value);
if(value < 50){
switch(value){
case 0.50 :
account += 'เหรียญ 50 สตางค์ : '+bank+' เหรียญ <br />';
break;
case 0.25 :
account += 'เหรียญ 25 สตางค์ : '+bank+' เหรียญ <br />';
break;
default :
account += 'เหรียญ '+value+' บาท : '+bank+' เหรียญ <br />';
break
}
}else{
account += 'แบงค์ '+value+' : '+bank+' ใบ <br />';
}
});
$('#account').html( account );
}else{
$('#balance').focus();
alert('จำนวนเงินของคุณไม่พอ');
}
}else{
alert('คุณยังไม่ได้ใส่จำนวนเงิน');
$('#balance').focus();
}
});
});
</script>
</head>
<body>
<table width="300" border="0">
<tr>
<td><input type="input" id="balance">
<input type="button" value="ยืนยัน" id="process"></td>
</tr>
<tr>
<td><div id="account"></div></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>
ดัดแปลงจากของคุณ Black Magic ครับ
|
ประวัติการแก้ไข 2011-12-20 10:50:44
|
|
|
|
Date :
2011-12-20 10:45:36 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โปรแกรมของท่านทั้ง 2 ถ้าผมถอน 20000 มันจะออกมาเป็นแบ้งค์ 1000 20 ใบ
โปรแกรมของคนที่ 2 ผมถอน 10 บาทได้
|
|
|
|
|
Date :
2011-12-20 11:57:50 |
By :
yogolas |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อัพผิดตัวคับ เปนไฟล์เก่า ว่าจะอัพใหม่ แต่คุณ Nico แก้ไปละ
ขอบคุน คุณ Nico ด้วยคับ ดัดแปลงให้เข้าใจง่ายขึ้น
เพื่อน้องจบใหม่ ผมว่าโจทย์นี้สามารถเขียนได้ทุกภาษาเลยนะคับ
|
|
|
|
|
Date :
2011-12-20 12:07:36 |
By :
puchong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โดยปกติ น่าจะเชคงว่ามีการกรอกมาแล้วหรือยังก่อนเอาเข้าฟังก์ชั่นเชคยอดนะครับ
|
|
|
|
|
Date :
2011-12-20 12:17:20 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่เดี่ยว มา แนะนำเองเลย
เสนอเข้ามาเยอะๆ เลยคับ
Code (PHP)
if(balance.length>0){
// หวัดดีชาวโลก
}
|
ประวัติการแก้ไข 2011-12-20 12:27:49
|
|
|
|
Date :
2011-12-20 12:26:35 |
By :
puchong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พูดเหมือนกำลัง หางานอยู่
ผมเห็นคุณ Nico มานานแล้วคับ ตั้งแต่สมัยผมยังเรียนปี 3
ไม่ทราบพอจะบอกอายุได้ไหมคับ จะได้เรียกคำนำหน้าถูก
|
|
|
|
|
Date :
2011-12-20 15:18:08 |
By :
puchong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอลองดูบ้างครับ
นั่งเขียน 4 ชั่วโมงพอดี โค้ดอาจจะมั่วๆหน่อยนะครับ
ใส่ตัวเลข
10 , 100 , 400 , 500 , 900 , 1000 , 1100 , 1500 , 1700 , 23000 , 30000
Code (PHP)
<?php
//ข้อสอบสมัครงาน
//โปรแกรมมิ่งข้อที่ 1 ให้เขียนโปรแกรมตู้ ATM ครับ โดยกำหนดให้มีเงินอยู่ในตู้ 23,000 บาท แบ่งเป็น แบงค์พัน 10 ใบ แบงค์ 500 20 ใบ แบงค์ 100 30 ใบ (ถ้าจำไม่ผิดนะครับ ลืมไปแล้ว)
//โดยให้เขียนโปรแกรมเพื่อรับจำนวนเงินที่จะถอน จากนั้นโปรแกรมจะแสดงจำนวนแบงค์ที่ออกมา ซึ่งแบงค์พันจะออกก่อน แล้วก็แบงค์ 500
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<title>รู้ทัน ATM หยกบูรพา</title>
</head>
<body>
<?php
$money_all = 23000;
$m1000 = 10;
$m500 = 20;
$m100 = 30;
$a1000 = (1000*$m1000);
$a500 = (500*$m500);
$a100 = (100*$m100);
$balance = $_POST['balance'];
$m_all = $a1000 + $a500 + $a100 ;
$chint = ($balance/100);
//---------------------------------------------
if(!(is_int($chint)))
{
echo 'ต้องถอนเป็นจำนวนเต็ม ขั้นต่ำ 100 บาท ';
}
elseif($balance <= $money_all && $balance>=100)
// จำนวนเงินที่ถอนต้องอยู่ระหว่างเงินที่เหลือ
{
echo 'คุณถอนเงินจำนวน '.$balance.' บาท';
echo '<br /> มี<br /> ';
//เริ่มตรวจสอบเงินแบ้งค์ 1000---------------------------------------------
if($balance>=1000)
{
$x = (int)($balance/1000);
if($x>$m1000)
{
$x1000 = $m1000;
}
else
{
$x1000 = $x;
}
echo 'แบ้งค์ 1000 จำนวน '. $x1000 .' ใบ' ;
$ym500 = ($balance-($x1000*1000));
echo ' เหลือ '.$ym500;
echo '<br />';
}
//จบการตรวจสอบแบ้งค์ 1000 ---------------------------------------------
//รับค่าเงินที่เหลือจากการตรวจสอบแบ้งค์ 1000 มาตรวจแบ้ง 500 -----------------------
if($balance>=500)
{
if($balance>=500 && $balance<1000)
{
$ym500 = $balance;
}
$y = (int)($ym500/500);
if($y>$m500)
{
$y500 = $m500;
}
else
{
$y500 = $y;
}
// ถ้าไม่มีเงินเหลือจากการตรวจแบ้งค์ 1000 และถ้าหากเงินที่เหลือมีน้อยกว่า 500 จะไม่ทำการประมวลผล
if($ym500!=0 && $y500!=0)
{
echo 'แบ้งค์ 500 จำนวน '. $y500.' ใบ ';
$zm100 = ($ym500-($y500*500));
echo ' เหลือ '. $zm100;
echo '<br />';
}
}
// จบการตรวจสอบแบ้ง 500 ---------------------------------------------
// เริ่มการตรวจสอบสำหรับแบ้งค์ 100 --------------------------
// ถ้าไม่มีเงินเหลือจากระบบตรวจ 1000 และ 500 ก็ไม่ต้องประมวลผล 100
if($balance<500 || $ym500!=0)
{
if($ym500<500 && $ym500!=0)
{
$zm100 = $ym500;
}
elseif($balance<500)
{
$zm100 = $balance;
}
$z = (int)($zm100/100);
if($z>$m100)
{
$z100 = $m100;
}
else
{
$z100 = $z;
}
if($zm100!=0)
{
echo 'แบ้งค์ 100 จำนวน '. $z100.' ใบ ';
$m0 = ($zm100-($z100*100));
echo ' เหลือ '.$m0;
}
}
// จบ การเช็คแบ้งค์ 100 ---------------------------
}
elseif($balance > $money_all)
{
echo 'จำนวนเงินไม่พอที่จะถอน คุณมีเงินจำนวน '.$money_all.' บาท';
}
else
{
echo 'ต้องถอนขั้นต่ำ 100 บาท';
}
//---------------------------------------------
?>
<form name="form1" method="post" action="" >
<table width="300" border="0">
<tr>
<td><input type="text" id="balance" name="balance">
<input type="submit" value="ยืนยัน" id="process"></td>
</tr>
<tr>
<td><div id="account"></div></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
|
|
|
|
|
Date :
2011-12-20 15:52:03 |
By :
yogolas |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูถ้าจะสนุกกัน ผมเลยจัดให้อีกข้อคับ
จำกัดอายุผู้เขียน ห้ามเกิน 25 ปี
จำนวนเฉพาะคือ จำนวนเต็มบวกที่ไม่มีจำนวนเต็มบวกตัวอื่นใด หารมันลงตัว
ให้เขียน method/function ชื่อ ISPrime
ที่รับค่า string aNum นำ aNum ไปคำนวณว่า ใช่ จำนวนเฉพาะหรือไม่
ถ้าไม่ใช้ ให้ คืนค่า จำนวนที่นำมาหารมันได้ลงตัว และให้ผลลัพธ์ของ method เป็น false
ถ้าใช้ ให้คืนค่า จำนวนครั้งของการวนรอบคำนวณ และให้ผลลัพธ์ของ method/function เป็นจริง
ตัวอย่าง
ISPrime(“15”)------> false, 5 (ไม่ใช่จำนวนเฉพาะ เนื่องจาก หารด้วย 5 ลงตัว)
ISPrime(“7”)------> true, 2 (เป็นจำนวนเฉพาะและจำนวนครั้งของการวนรอบทำงาน คือ 2 รอบ)
ISPrime(“2”)------> true, 1 (เป็นจำนวนเฉพาะและจำนวนครั้งของการวนรอบทำงาน คือ 1 รอบ)
ISPrime(“10015”)------> false, 5 (ไม่ใช่จำนวนเฉพาะ เนื่องจาก หารด้วย 5 ลงตัว)
ISPrime(“123”)------> false, 3 (เป็นจำนวนเฉพาะและจำนวนครั้งของการวนรอบทำงาน คือ 1 รอบ)
หมายเหตุ: ชื่อฟังก์ชั่นและ prototype ที่แสดงเป็นเพียงตัวอย่างหน้าจอเท่านั้น
|
|
|
|
|
Date :
2011-12-20 16:07:03 |
By :
puchong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สวัสดีครับคุณ The Gunner
ข้อสอบทั่วไปครับ insert, update, delete และก็เอาใจมาด้วย 555+++
|
|
|
|
|
Date :
2011-12-20 16:30:34 |
By :
peterxp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เจ็บใจ อายุเกิน
|
ประวัติการแก้ไข 2011-12-20 17:07:28
|
|
|
|
Date :
2011-12-20 17:00:31 |
By :
ikikkok |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|