IT pro - 10th --[1][0][T][H] - Welcome to dh10th forum .AG Universitas
 :: 

Góc thảo luận

 :: 

Học kì 1 : 2011- 2012

 :: 

Lập trình trên windows


Alo thông báo dừa khô lên giá
-‘๑’-CHÀO MỪNG BẠN ĐẾN VỚI FORUM DH10TH-‘๑’-
  • Gallery & Others

Quà Tặng Âm Nhạc -‘๑’- DH10TH -‘๑’-
Góc kỉ niệm

MERRY CHHRISTMAS
Nhấn nút PLAY > để xem nhé !!

Đổi số thành chữ (đọc 1 số)Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down
Sun Sep 11, 2011 11:38 pm
Cuộc sống vốn không công bằng, chúng ta phải tìm cách thích ứng với nó
[Thành viên] - nam707123
[Chức vụ] Thành viên lớp
Thành viên lớp
Tổng số bài viết Tổng số bài viết : 117
Xu Xu : 168
Số lần được cám ơn Số lần được cám ơn : 17
Tham gia Tham gia : 25/11/2010
Đến từ Đến từ : Việt Nam
Nghề ngỗng Nghề ngỗng : Lang thang
Châm ngôn sống Châm ngôn sống : Cuộc sống vốn không công bằng, chúng ta phải tìm cách thích ứng với nó

Bài gửiTiêu đề: Đổi số thành chữ (đọc 1 số)
Xem lý lịch thành viên

Tiêu đề: Đổi số thành chữ (đọc 1 số)

Tôi xin trình bày giải thuật đọc 1 số như sau:
Để đơn giản ta xét trường hợp đọc số:
1245 --> Một nghìn hai trăm bốn chục năm đơn vị.
Ta sẽ chia thành từng block số, ở đây Một nghìn là 1 block. Hai trăm là 1 block. Bốn chục là 1 block và năm đơn vị là 1 block.
Ứng với mỗi block có 2 phần:
1. phần tiền tố là số: Một, hai, ba… chín.
2. phần hậu tố: đơn vị, chục, trăm, nghìn…
Như thế, ta sẽ tách từng số (dư = number % 10) lấy phần dư là tiền tố. Ứng với mỗi phần dư ( tiền tố ) sẽ có 1 biến I để chỉ dạng hậu tố.
Sau cùng, ta sử dụng Stack vào đối với mỗi block để đọc số.
Code minh họa:
Hàm đọc số:

Code:
void DocSo(int num)
        {
            string Resuilt = "";//Biến để lưu kết quả
            int i = 0, soDu = 0;
           
            Stack ob = new Stack();
            while (num != 0)
            {
                soDu = num % 10;               
                ob.Push(TienTo(soDu) + HauTo(i));                                             
                num /= 10;
                i++;
            }

            // Hiển thị kết quả
            while (i != 0)
            {
                Resuilt += ob.Pop();
                i--;
            }
            txtHienThi.Text = Resuilt;
        }

Hàm tiền tố

Code:
string TienTo(int soDu)
        {
            switch (soDu)
            {
                case 0:
                    txtHienThi.Text = " không ";
                    break;
                case 1:
                    txtHienThi.Text = " một ";
                    break;
                case 2:
                    txtHienThi.Text = " hai ";
                    break;
                case 3:
                    txtHienThi.Text = " ba ";
                    break;
                case 4:
                    txtHienThi.Text = " bốn ";
                    break;
                case 5:
                    txtHienThi.Text = " năm ";
                    break;
                case 6:
                    txtHienThi.Text = " sáu ";
                    break;
                case 7:
                    txtHienThi.Text = " bảy ";
                    break;
                case 8:
                    txtHienThi.Text = " tám ";
                    break;
                case 9:
                    txtHienThi.Text = " chín ";
                    break;
                //default: break;
            }
            return txtHienThi.Text;
        }

Hàm hậu tố

Code:
string HauTo(int i)
        {
            switch (i)
            {
                case 0: txtHienThi.Text = " đơn vị "; break;
                case 1: txtHienThi.Text = " chục "; break;
                case 2: txtHienThi.Text = " trăm "; break;
                case 3: txtHienThi.Text = " nghìn "; break;
                case 4: txtHienThi.Text = " chục nghìn "; break;
                case 5: txtHienThi.Text = " trăm nghìn "; break;
                case 6: txtHienThi.Text = " triệu "; break;
                case 7: txtHienThi.Text = " chục triệu "; break;
                case 8: txtHienThi.Text = " trăm triệu "; break;
                case 9: txtHienThi.Text = " tỉ "; break;
            }
            return txtHienThi.Text;
        }
ảnh:
[You must be registered and logged in to see this image.]


Giải thuật trên có thể đọc được bao nhiêu số tùy các bạn thiết kế (thông thường là đọc 9 số).
Để cho kết quả đọc đẹp mắt hơn các bạn tự tùy chỉnh trong 2 hàm TienToHauTo
và đó là bài tập luyện tập thầy cho. Trong Phần B. Cấu trúc rẽ nhánh (IF- SELECT) bài 8.
có gì cần đóng góp các bác, anh, chị.. cứ phan tự nhiên. :d



Mon Sep 12, 2011 8:45 am
avatar
[Thành viên] - hvphuong1368
[Chức vụ] Thành viên lớp
Thành viên lớp
Tổng số bài viết Tổng số bài viết : 39
Xu Xu : 45
Số lần được cám ơn Số lần được cám ơn : 11
Tham gia Tham gia : 09/11/2010
Đến từ Đến từ : thoai son, an giang, tay nam bo, nam bo, viet nam, dong nam a, chau a.

Bài gửiTiêu đề: Re: Đổi số thành chữ (đọc 1 số)
Xem lý lịch thành viên

Tiêu đề: Đổi số thành chữ (đọc 1 số)

hay đó mà chữ đọc thấy sao sao



Wed Sep 14, 2011 7:29 am
avatar
[Thành viên] - vinhne
[Chức vụ] Thành viên lớp
Thành viên lớp
Tổng số bài viết Tổng số bài viết : 57
Xu Xu : 78
Số lần được cám ơn Số lần được cám ơn : 11
Tham gia Tham gia : 08/11/2010
Đến từ Đến từ : viet nam

Bài gửiTiêu đề: Re: Đổi số thành chữ (đọc 1 số)
Xem lý lịch thành viên

Tiêu đề: Đổi số thành chữ (đọc 1 số)

hay đó em
anh rất thích



Wed Sep 14, 2011 9:25 am
avatar
[Thành viên] - tranquocmanh10th
[Chức vụ] Bí thư
 Bí thư
Tổng số bài viết Tổng số bài viết : 354
Xu Xu : 539
Số lần được cám ơn Số lần được cám ơn : 8
Tham gia Tham gia : 24/08/2010
Đến từ Đến từ : An Giang

Bài gửiTiêu đề: Re: Đổi số thành chữ (đọc 1 số)
Xem lý lịch thành viên

Tiêu đề: Đổi số thành chữ (đọc 1 số)

hay đó! thanks nha! :d



Chúc các bạn DH10TH thật nhiều niềm vui trong cuộc sống,
đặc biệt là 100% tốt nghiệp ra trường sẽ có 1 việc làm ổn định nha... [You must be registered and logged in to see this image.] [You must be registered and logged in to see this image.] [You must be registered and logged in to see this image.]

[Thành viên] - Sponsored content
[Chức vụ]

Bài gửiTiêu đề: Re: Đổi số thành chữ (đọc 1 số)

Tiêu đề: Đổi số thành chữ (đọc 1 số)




Đổi số thành chữ (đọc 1 số)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang
Xem tiếp các bài khác:

Trang 1 trong tổng số 1 trang
.::Host upload ảnh miễn phí Clickhere!::.
Permissions in this forum:Bạn không có quyền trả lời bài viết
[1][0][T][H] - Welcome to dh10th forum .AG Universitas :: Góc thảo luận :: Học kì 1 : 2011- 2012 :: Lập trình trên windows-
Logo bạn bè:
Lượt xem
Cố găn nâng cao số lượng truy cập
Hỗ trợ online
Web trường đại học An Giang
Web khoa CN-KT-MT
Xem thới khóa biểu online
Trường Đại Học An Giang
Lớp : DH10TH
Khoa :Kỹ thuật - Công nghệ - Môi trường
Chuyên ngành : Kỹ thuật phần mềm
Diễn Đàn Được Xây dựng và phát triển bởi các thành viên
.
Copyright © 2009 - 2013, DH10TH.CO.CC .
Powered by phpBB2 - GNU General Public License.
Style Win7 of VBB - - FM Rip by BI
Xem tốt nhất ở độ phần giải lớn hơn 1280x1024 và trình duyệt Firefox
Get Firefox Now Get Windows Media Player Now

Đầu trang
Giữa trang
Cuối trang
Để lại tin nhắn cho Forum
Forumotion.com | © phpBB | Free forum support | Liên hệ | Report an abuse | Have a free blog with Sosblogs
Jen