The My Opera forums have been replaced with forums.opera.com. Please head over there to discuss Opera's products and features
See the new ForumsYou need to be logged in to post in the forums. If you do not have an account, please sign up first.
Bài tập mảng về nhà: định dạng số thành chữ có đơn vị (bài 1)
-Đầu tiên ta tạo ra 2 mảng.+Mảng số: var arr:Array = new Array("Không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín");
có nghĩa là arr[0]=>không, arr[1]=>một
+Tạo mảng thứ hai là mảng đơn vị: var dv:Array = new Array("","mươi","trăm","ngin");
có nghĩa là dv[0]=>""; dv[1]=>"mươi"; dv[2]=>"trăm"; dv[4]=>nghìn
-Ta tách số như bài ở nên ta không nói ở đây
-Ta dạo biến i để đếm số lần tách, số lần tách tương ứng với 0->" ", 1=>mươi,2=>trăm,3=>nghìn để truy xuất vào mảng dv
-Ta nói chuổi như sau: kq = arr[num]+ " "+ dv +" " + kq;
Code toàn bộ chương trình:
var arr:Array = new Array("Không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín");
var dv:Array = new Array("","mươi","trăm","ngin");
/*chú ý bài này chỉ áp dụng điền vào số có độ dài là 4,
nếu điền thêm thì phải khai báo mảng dv
*/
trace(docso(7946));
//viet 1 ham nhan vao 1 day so in ra gia tri chuoi cua day so
function docso(so:Number):String
{
var kq:String="";
var i:int;
for(;so>0;so=int(so/10))
{
var num:int = so%10;
kq = arr[num]+ " "+ dv[i] +" " + kq;
i++;
}
return kq;
}
-Để chương trình nhập vào số khớp với mảng đơn vị mình xin chế xíu chút về điều kiện nhập vào.
code tổng quát như sau:
var arr:Array = new Array("Không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín");
var dv:Array = new Array("","mươi","trăm","ngin");
/*chú ý bài này chỉ áp dụng điền vào số có độ dài là 4,
nếu điền thêm thì phải khai báo mảng dv
*/
trace(docso(7946));
//viet 1 ham nhan vao 1 day so in ra gia tri chuoi cua day so
function docso(so:Number):String
{
if(so.toString().length < dv.length +1 )
{
var kq:String="";
var i:int;
for(;so>0;so=int(so/10))
{
var num:int = so%10;
kq = arr[num]+ " "+ dv[i] +" " + kq;
i++;
}
}else{
kq="Số nhập của bạn quá, tối đa độ dài "+ dv.length;
}
return kq;
}
Tất cả các code Bình post đều chạy, hãy copy nó vào chạy là ok!
Chúc các bạn học tốt!
if(so.toString.length < dv.length +1 )
{
var kq:String="";
var i:int;
for(;so>0;so=int(so/10))
{
var num:int = so%10;
kq = arr[num]+ " "+ dv +" " + kq;
i++;
}
}else{
kq="Số nhập của bạn quá, tối đa độ dài "+ dv.length;
}
return kq;
}
Ở phần dưới này Bình cho thêm điều kiện để khi người khác nhập hơn 4 so thì sẽ báo lỗi "Số nhập của bạn quá, tối đa độ dài " phải không. Nhưng sau C thử nhập thêm 1 số thì nó lại trace ra như vậy "bảy undefined chín ngin bốn trăm sáu mươi ba "
{
var kq:String="";
var i:int;
for(;so>0;so=int(so/10))
{
var num:int = so%10;
kq = arr[num]+ " "+ dv +" " + kq;
i++;
}
}else{
kq="Số nhập của bạn quá, tối đa độ dài "+ dv.length;
}
return kq;
}
Ở phần dưới này Bình cho thêm điều kiện để khi người khác nhập hơn 4 so thì sẽ báo lỗi "Số nhập của bạn quá, tối đa độ dài " phải không. Nhưng sau C thử nhập thêm 1 số thì nó lại trace ra như vậy "bảy undefined chín ngin bốn trăm sáu mươi ba "