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
[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
[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
[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.]

Today at 7:31 pm
[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
Free forum | © phpBB | Free forum support | Liên hệ | Report an abuse | Create your own blog
Jen