Label Name LbITieude
BackColor Mau cam dam
Caption Uớc lượng một phân số Font Name VNI — Swiss Condense
Font Size 36
Font Style Bold
Label Name LbITuso
BackColor Mau cam nhat
Caption Bạn nhập vào tử số
Font Name VNI ~ Brush
Font Size 24
Font Style Bolditalic
Label Name LBIMauso
BackColor Màu cam nhạt
Caption Bạn nhập vào mẫu số Font Name VNI — Brush
Font Size 24
Font Style Bolditalic
TextBox Name TxtTuso
BackColor Mau cam nhat Font Name MS ~ Sans Serif
Font Size 24
Font Style Bold
Text (Xóa chữ Text)
TextBox Name TxtMauso
BackColor Mau cam nhat Font Name MS — Sans Serif
Font Size 24
Font Style Bold
Text (X6a chit Text)
Trang 2Font Size 24 Font Style Bold MultiLine True
Text (X6a chit Text) 8 | Command Name CmdKetqua
Button Caption Phân số tối giản
Font Name VNI - Swiss Condense
Font Size 24
Font Style Bold
9 | Command Name CmdThoat
Button Caption Thoát khỏi Form Font Name VNI — Swiss Condense
Font Size 24
Font Style Bold
Buse 1
THIET KE FORM CUA CHUONG TRINH
+ Bạn lần lượt lấy các điều kiểm từ hộp công cụ để dưa vào Form của chương trình, sau đó xác lập các thuộc tính cho tất cả các điều kiểm theo như bảng đã cho ở trên Bước 2 VIẾT CODE CHO CHƯƠNG TRÌNH Option Explicit
1) Viết Code cho điều kiểm CmdKetqua Private Sub CmdKetqua_Click()
Dim n As Integer Dim Tuso As String
Trang 3Dim Mauso As String Dim Xh As String Xh = Chr(13) & Chr(10) Tuso = TxtTuso Mauso = TxtMauso if TxtMauso <> 0 Then lí TxtTuso <> 0 Then n = USCLN(TxtTuso, TxtMauso) TxtTuso = TxtTuso \ n TxtMauso = TxtMauso \ n lf TxtMauso < 0 Then TxtTuso = —TxtTuso TxtMauso = —TxtMauso End lf Else TxtMauso = 1 End if
TxtKetqua = " Phân số tối giản" & Xh & " của phân số
trên là : " & TxtTuso &"/" & TxtMauso Else
TxtKetqua = " Mẫu số không thể bằng 0, bạn nhập lại " End If
Trang 4TxtTuso = Tuso TxtMauso = Mauso End Sub + Trong thủ tục trên, biến n có kiểu nguyên dùng để chứa USCLN của tử số và mẫu số
+ Biến Tuso và Mauso có kiểu String dùng để chứa giá trị nhập vào của tử số và mẫu số Dùng biến này để giữ nguyên đúng giá trị nhập vào, nếu không có sau khi tính toán, nó sẽ chứa tử và mẫu của phân số tối giản
+ Biến Xh các bạn đã biết
+ Phát biểu IF xét nếu mẫu số khác 0, thì thực hiện tiếp, nếu mẫu
số bằng 0 thì sẽ thông báo nhập lại
+ Nếu mẫu số khác 0, gặp phát biểu IF tiếp theo với điều kiện là Tuso khác 0 Nếu tử số khác 0 thì sẽ gọi hàm USCLN với 2 tham số là tử số và mẫu số Kết quả gan vào biến n
+ Thực hiện phép chia nguyên để tìm giá trị tử số và mẫu số của
phân số tối giản
+ Tiếp tục vào phát biểu IF với diểu kiện mẫu số nhỏ hơn 0, nếu mẫu số nhỏ hơn 0 thì sẽ đổi dấu tử số và mẫu số Điều này đúng cả
trong 2 trường hợp như sau : »> Ví dụ
« Giả sử có phân số 6 /—7
« Khi đổi lại thì sẽ thành - 6/7
« Thỏa điều kiện, dấu sẽ nằm trên tử số
« Giả sử phân số là - 12/-~ 21 « Khi đổi lại thì sẽ thành 12 / 21 « Thỏa DK thương của 2 số cùng dau
Trang 6+ Ta biết rằng muốn chia một phân số cho một phân số, ta nhân
phân số thứ nhất cho phân số thứ hai đảo ngược
+ Thay vì phải tính nghịch đảo, chúng tôi sẽ gán giá trị của Mẫu số 2 cho TextBox có tên TxtTuso2 và Tử số 2 cho TextBox có tên là
TxtMauso2 Bang hai câu lệnh như trong thủ tục Các phần còn lại sẽ giống như trong thủ tục tính Tích của hai phân số
5) Viết Code cho điều kiểm CmdExit Private Sub CmdExit_ClickQ)
End End Sub
6) Viết hàm tự tạo để tìm USCLN của 2 số nguyên
Trang 7Bude 3
CHẠY THỬ CHƯƠNG TRÌNH
+ Đầu tiên chúng tôi nhập hai phân số tối giản và Click nút Tổng
của 2 phân số để xem kết quả
+ Giả sử chúng tôi nhập phân số thứ nhất có giá trị là 1 / 4, bằng
cách nhập số 1 vào TextBox có nhãn ghi chú “Bạn nhập Tử số 1, nhập số 4 vào TextBox có nhãn “ Bạn nhập mẫu số 1 “ Sau đó nhập vào phân số 2/3 bằng cách nhập số 2 vào Textbox có nhãn “ Bạn nhập vào tử số 2 “, số 3 vào TextBox có nhãn “ Bạn nhập vào mẫu số 2 “
+ Click vào nút có tiêu để “ Tổng của 2 phân số “ bạn sẽ có hình như sau : ~ấ« số / |Á Ban nhip mda số Ø |3 Tổng 2 phân số trên là : dt, £12
_ Tích của 2 phân số _ Š Thương của ? phân số
tsuet| | Ø #8: ¿23 49 || &yPoen-Máeesi |[S ToNG -MEU
By Miciosot weed 04 KỆ: 1aAIPM
Hinh 33b Form khi nhap vào hai phan s6 1/4 va 2/3
và Click nút tính tổng,
Trang 8+ Bạn thấy thông báo kết quả thông báo là 11/12 Và ở 2 TextBox bên trái cũng thể hiện 11/12
+ Kiểm tra lại kết quả xem có đúng như khi tính ngồi giấy hay khơng Ta thấy : 122348 i 4 3 12 12 + Bạn thấy kết quả là chính xác phải không + Bây giờ các bạn thử Click vào nút có tiêu để “ Hiệu của 2 phân số “, bạn sẽ có hình như sau : '& TÔNG - HIEU: (Ee Ban nhip tc es Ø |2 Ban 44, ~á« số / |4 Ban x44 xấx số 2 |3 Hiệu 2 phân số trên là : -5 /12
L Hiệu của 2 nhân số |
sổSuet| Ô @ €: 1) KÝ &yPoeet -MócosetVeudl || TONG - HIỂU -TỊCH d4 2a
Hình 33c Form khi Click nút tính hiệu
+ Bạn thấy thông báo kết quả thông báo là -5/12 Và ở 2 TextBox bên trái cũng thể hiện -5/12
+ Kiểm tra lại kết quả xem có đúng như khi tính ngồi giấy
hay khơng
Ta thấy :
Trang 9+ Bạn thấy kết quả là chính xác phải không
+ Bây giờ các bạn thử Click vào nút có tiêu để “ Tích của 2 phân
số “, bạn sẽ có hình như sau : Sa
8 số _Ñ Thương của 2 nhân số
lR Sun | @ 8: 63 3 Í ©ìPoeet-M.|[STONG- NVesetV., l8c:Pav | [E 122PMC Hình 33d_ Form khi tính Tích + Bạn thấy thông báo kết quả thông báo là 1/6 Và ở 2 TextBox bên trái cũng thể hiện 1/6 + Kiểm tra lại kết quả xem có đúng như khi tính ngoài giấy hay không Ta thấy : + y2 4 3 12
+ Bạn thấy kết quả là chính xác phải không
+ Đầu tiên tính được phân số là 2/12 sau đó qua phát biểu IF END IF sé tdi gidn phân số thành 1/6
+ Bây giờ các bạn thử Click vào nút có tiêu để “ Thương của 2
phân số “„ bạn sẽ có hình như sau :
Trang 10Thương của 2 phân số
Start] | BE, 1 O | tyPoeet-H- Í[S YONG - BýMeeosetV.| Ø7374-Pan | ‹{- 12 PM
Hình 33e Form khi Click nút tính Thương,
+ Bạn thấy thông báo kết duả thông báo là 3/8 Và ở 2 TextBox bên trái cũng thể hiện 3/8
+ Kiểm tra lại kết quả xem có đúng như khi tính ngoài giấy hay không 1 3 —:<=—x= 4 4 2 + Bạn thấy kết quả là chính xác phải không In l¬ Ta thấy :
+ Bây giờ chúng tôi nhập vào hai phân số để kiểm tra một số mặt,
giả sử chúng tôi nhập phân số thứ nhất là : - 8 / ~12 và phân số thứ
bai là 2/ ~8 Và tính toán theo như giải thuật viết trong thủ tục
+ Khi Click vào nút Command có tiêu đề “ Tổng của 2 phân số “, bạn sẽ có kết quả như sau :
Trang 11& TÔNG - HIỂU - TỊCH - THUONG CUA 2 PHAN Sĩ
_ tác nhóp toán trên hai phân số
San ~⁄4£ s~#4« số /L{2_ Ø¿x nhdfe mdu 0 2 |B Tổng 2 phân số trên là : 5/12
| Tổng của 2 phân số l[ Hiệu của 2 nhân số
Tích của 2 nhân số _ Ệ Thương của ? phân số
ster] | @ 8; Z) 9 | Sy Proeett-Mffts TONG = gy united Pa WWMeoetW.| Í{- 242PM
Hình 3Í Form khi nhập =8 / ~12 và 2 /~ 8 „ Click nút tính Tổng
+ Nhìn vào hình trên, bạn thấy thông báo Tổng hai phân số trên là
5/12
+ Trước khi kiểm tra lại tính đúng đắn, chúng tôi lưu ý muốn tính
USCLN của hai số nguyên, trước tiên nếu chú ý, bạn thấy chúng tôi đã
dùng hàm Abs 0) để lấy giá trị tuyệt đối của hai số nguyên đó
+ Bây giờ chúng ta bắt đầu kiểm tra nhé:
-8 v2 _2 217 8+3)
12,63 4, bt
+ Trong chương trình sẽ tính toán giải thuật theo như trình tự bài toán ở trên
+ Đầu tiên phát biểu IF END IF đầu tiên sẽ tính phân số - 8/~ 12
thành phân số tối giản và chuẩn dấu cho phân số đó để được phân số
tối giản là 2 /3
+ Kế đến sẽ thực hiện tương tự như trên để tính được phân số tối
giản và chuẩn dấu cho phân số thứ hai có kết quả là - 1 /4 (dấu - da được đưa lên tử số)
Trang 12+ Sau đó sẽ tìm BSCNN của hai số 3 và 4, ta thấy BSCNN của 3 và
4 là 12, vậy số 12 đã được gán vào biến Mau
+ Biến Tu được gán cho biểu thức tính toán như trong thủ tục là :
(2 x (12/3) + (-1 x 12/4) =5
+ Vậy ta được phân số là 5 / 8 Phân số này sé qua phát biểu IF END IF để đưa về phân số tối giản Tử và mẫu của phân số này có USCLN = 1, nên kết quả qua phép chia cho 1 cũng bằng chính nó, nên phân số tối giản là 5 / 12 (Ví dụ nếu một phân số khác chẳng hạn bằng 4 / 8 chẳng hạn Thì lúc này ta thấy USCLN của 4 và 8 sẽ là
4, bạn sẽ thấy 4/4 = 1, và 8/4 = 2 Vậy phân số ian sé là 1/ 2) + Bây giờ bạn thử Click vào nút có tiêu để “ Hiệu của 2 phân số “, bạn sẽ có kết quả như sau :
& TÔNG - HIỂU _ TỊCH - THỊ Ban nhdp tt / LÐ - ạa x44 tử số 2 |2 Ban nhép mda a /-{2 Ban x44 ~á« số 2 _8
Hiệu 2 phân số trên là :
11/12
| Higu cia 2 phan 36
Thương của 2 phan số
gRsuet| | #8 8: GÀ 39 || &yPoeat cà |[l roNg- j3: | RVMesetv.| KẾ 34m Hình 33g
+ Bạn thấy kết quả thông báo là Hiệu của hai phân số là 11 / ï2
+ Kiểm tra lại bạn sẽ thấy :
82.2 12.8 3 4 +14 bộ oi cổ hộ,
Trang 13+ Bạn thấy tính toán có vẽ hơi lạ với thực tế phải không Ở đây chúng tơi tính tốn theo như giải thuật lúc viết Code cho thủ tục hiệu Bạn thấy như sau :
+ Trong khi tính vẫn dùng như thủ tục Tổng, chỉ khác là đổi dấu
phân số thứ 2 (hiểu ngầm là đổi dấu tử số) Nên từ phân số nhập vào là
2/~8 sẽ đổi thành - 2 /~ 8, nên bạn có cách tính như biểu thức trên,
+ IF END IF thi nhat sé tinh được ra 2 / 3 (giải thích như ví dụ trên) +IF END IF thứ hai sẽ tính được ra 1 /4( )
Trang 14
+ Kiểm tra lại theo thuật toán trong thủ tục, bạn sẽ thấy trình tự tính toán như sau :
82 2124 -12 -8 3” 4 12 12
+ Nhìn vào các bước tính toán, bạn tự tìm hiểu, nó cũng được giải thích tương tự như trong các thủ tục ở trên
+ Bây giờ bạn thử Click vào nút có tiêu để “Thương của 2 phân số”, bạn sẽ có kết quả như sau : SO Ø4 x44“ tở số / |8 mo sữa rẻ # 2 nhdp máu số /L{2 Ban nhipp udu số 2 -8 Thương 2 ph số trên là : -8/3 Basia] BEAD | treet ane lt Wiser] fam Hinh 33i
+ Bạn thấy thông báo kết quả là “ Thương của 2 phân số là - 8 / 3”
Trang 15Bây giờ bạn thử nhập một phân số có tử số bằng 0 và tính thử xem
kết quả ra sao nhé
+ Giả sử bạn nhập phân số một là 0 / 5 và phân số hai là 2 / 4
+ Click vào nút “ Tổng của 2 phân số “ Bạn sẽ thấy kết quả như sau :
ác phón toán trên hai nhân số: - an nhdp tte? |0 Ban nhip tease |2 Ban ahdp mdu ed 7 |5 ạ~ x42 xả, số PA
Š Hiệu của 2 phân số
Psat} BAY ®ạPseelM|[ToNG s73.Pmv | WMeoetw.| VỆ stzpu
Hinh 33j
+ Bạn sẽ thấy thông báo kết quả “ Tổng của 2 phân số là 1 /2 “ + Kiểm tra theo thuật toán như đã viết, bạn sẽ thấy thủ tục tính
toán như sau : 9,2_-0,1 0+1 1 5 4 1 2 2 2 + Nếu tính toán bình thường của học sinh thì sẽ như sau : 0,2_0+10_10_ 1 5.4 20 20 2
+ Đấp số vẫn như trên, nhưng trong thực tế ta không đổi phân số 0/5 thành phân số tối giản là 0 / 1
+ Bây giờ nếu bạn Click vào nút “ Hiệu của 2 phân số “, bạn sẽ có kết quả như sau :
Trang 16
w- TNG - HIỂU - TỊCH - THUONG CUA 2PHAN S0
_1ˆ tác phóp toán trên hai nhân số Z2¿~ ~⁄4 te est |0 Øạ« A44 tử số 2 |2 _ Niệu của 2 | sâstan| ` Ø 8; 24 5) ( &PoeelM |[ƒSTONG- 3ƒ57:Pxn | WWMemeRM.| { «13PM Hình 33k
+ Ban thay trong TextBox sé thông báo “Hiệu của 2 phân số là - 1/ 2” + Kiểm tra lại ta thấy : 0,-2_0,-1_0+CU 1 5 4 thở 2 2 2 + Phần tính toán bình thường cũng hơi giống như trong phép cộng, bạn tự tìm hiểu + Giải thích như trong ví dụ trước
+ Giả sử bạn Click vào nút “ Tích của 2 phân số “”, bạn sẽ có kết
quả như sau :
Trang 173 TÔNG — HIỂU TỊCH THUÔNG CUA 2PHAN S0)
Các nhón toán trên hai nhân số
Hiệu của 2 phân số
Thương của 2 phân số
8tee@ 9:22 39 Í tạnset.MlÏsToNG- vj3A.Pxx [RVMSsesv| lý 320m
Hình 33I
+ Bạn thấy trong TextBox sẽ thông báo “ Tích của 2 phân số trên là 0/1 “ + Kiểm tra lại, bạn sẽ thấy :
O,2_0,1_0_0
5 94 12 2 1
+ Bây giờ nếu bạn Click vào nút có tiêu để “Thương của 2 phân
số“, bạn sẽ thấy kết quả như sau :
Hình 33m
Trang 19
Bài này khi người sử dụng nhập vào số giây cần đổi vào trong một TextBox, chương trình sẽ đổi ra dạng mấy giờ, mấy phút và mấy giây
Bạn sẽ thấy kết quả khi nhấn vào nút Command Button có tiêu đề
tương ứng
Qua yêu cầu của đầu bài như trên, chúng tôi thiết kế Form của chương trình như sau : Đổi ra giờ - phút - giây Bạn nhập số giây Xem kết quả Thoát khỏi Form
start] | GB Sy |) By Preeti -Microrot_| Rý Merosotwod-C |[ DOI THOIGIAN |g 655M
Hình 34a Form của chương trình
Nhìn vào Form trên, bạn thấy có các điều kiểm như sau :
®.2 TextBox; 1 dùng để nhập số giây cần đổi, 1 để thông báo kết quả sau khi đổi
Trang 202 Labet dùng làm tiêu đề
2 Command Button, trong đó 1 Command Button dùng để thoát
khỏi chương trình, 1 Command button dùng để xem kết quả Form có tiêu để “ DOI THOI GIAN “
BANG CAG THUOC TINH CUA CAC DIEU KIỂM
TT | Déitugng | Cac thudc tính Giá trị
1 | Form Name FrmDoithoigian
BackColor Mau xanh két dam
Caption DOI THO! GIAN
WindowState 2-Maximized
21 Label Name LblTieude
BackColor Mẫu vàng nhạt
Caption Đổi ra gid — phut — giây
Font Name VNI ~ Helve Condense
Font Size 24
Font Style Bold
3 | Label Name LbINhap
BackColor Mau xanh bién nhat
Caption Bạn nhập số giây
Font Name VNI - Helve Condense Font Size 16
Font Style Normal
4 | TextBox Name TxtNhap
BackColor Màu trắng
Font Name VNI — Helve Condense
Font Size 16
Font Style Bold
Text (Xóa chữ Text)
3 | TextBox Name TxtKetqua
BackColor Màu xanh biển nhạt
Trang 21
Font Name VNI - Helve Condense Font Size 20 Font Style Bold MultiLine True
Text (X6a chi Text)
6 | Command | Name CmdThoat Button Caption Thoát
Font Name VNI - Swiss Condense Font Size 24
Font Style Bold
7 | Command | Name CmdkKetqua Button Caption Xem két qua
Font Name VNI - Swiss Condense
Font Size 24
Font Style Bald
Bước 1
THIẾT KẾ FORM CỦA CHƯƠNG TRÌNH
+ Bạn lẫn lượt lấy các điều kiểm từ hộp công cụ để đưa vào Forr
của chương trình, sau đó xác lập các thuộc tính cho tất cả các điễu
kiểm theo như bảng đã cho ở trên Đước 2 VIẾT CODE CHO CHƯƠNG TRÌNH Option Explicit
1) Viết Code cho điều kiểm CmdKetqua
Private Sub CmdKetqua_Click()
Dim Sogiay As Double
Dim Gio As Integer
Trang 22Dim Phut As Integer Dim Xh As String Xh = Chr(13) & Chr(10) Gio = TxtNhap \ 3600 Sogiay = TxtNhap Mod 3600 Phut = Sogiay \ 60 Sogiay = Sogiay Mod 60
TxtKetqua = TxtNhap & " giây sẽ đổi ra là : " & Xh & Gio & " giờ ® & Phút & " phút " & Sogiay & " giây "
End Sub
+ Khai báo biến Sogiay có kiểu Double (mục đích để chứa được số
tớn ), đẳng thời cũng chứa số giây còn dư lại
+ Khai báo biến gio, phut có kiểu Integor dùng để chứa số giờ và số
phút đổi được
+ Khai báo biến Xh có kiểu String để chứa mã xuống hàng
+ Bạn biết một giờ có 3600 giây nên bạn lấy số giây cần đổi chia
nguyên cho 3600, bạn sẽ được số gid
+ Ma số giầy cần đổi chính là TxtNhap, do đó :
Gio = TxtNhap \ 3600
+ Để tính số dư còn lại sau khi chia cho 3600, bạn phải tính Mod
của TxtNhap cho 3600
Sogiay = TxtNhap Mod 3600
+ Kết quả này nếu bạn chia nguyên cho 60, bạn sẽ được số phút
Phụt = Sogiay \ 60
+ Bạn tính số dự còn lại của Sogiay với 60, bạn sẽ được số giây còn thừa
Sogiay = Sogiay Mod 60
+ Cuối cùng bạn cho hiện kết qua ra TextBox cd tén TxtKetqua Bạn muốn cho nội dung hiện ra là gì, lúc nào cần xuống hàng, bạn tự nối chuỗi để có kết quả như mình mong muốn
Trang 232) Viết Code cho điều kiểm CmdThoat Private Sub CmdThoat_Click() End End Sub Bước 3 CHẠY THỬ CHƯƠNG TRÌNH + Bạn nhấn F5 để chạy chương trình + Bạn thử nhập vào TextBox có tên TxtNhap số 3700 Bạn sẽ có hình như sau : CUETO Sas BO Đổi ra giờ - phút - giây Bạn nhập 03, E700 0 vu Xem kết quả Thoát khỏi Form
sian] B 5à 2) 5 | syPrwctt-o.| wywicosenw.| grere-Pant [fey oor two lý z44PM Hình 34b_ Khi nhập vào TextBox nhập số 3700
+ Sau đó, bạn Click vào nút Command Button xem kết quả, bạn sẽ
kết quả như hình sau :
Trang 24& DŨI THÔI GIAN mmm.
Đổi ra giờ - phút - giây 3700 giây sẽ đổi ra là : 1 gid 1 phút 40 giây Xem kết quả — Thoát khỏi Form stad] |B Es} W |) ty Proea | wy Mew | Z7 „e3 -|[t D0I 1 Hình 34c Bạn kiểm tra lại xem kết quả có đúng hay không nhé : + 3700 \ 3600 = 1 (gid) + 3700 Mod 3600 = 100 (giây) + 100 \ 60 = 1 (phút) + 100 Mod 60 = 40 (giây)
+ Vậy kết quả sẽ là 1 giờ 1 phút 40 giây
Bây giờ bạn thử nhập vào số 7250, sau đó Click vào nút Xem kết
quả, bạn sẽ có kết quả như sau :
Trang 25Đổi ra giờ - phút - giây mmmam
7250 giây sẽ đổi ra là : 2 giờ 0 phút 50 giây
Thoát khỏi F0im
| $8; 21 9 || kunses | RVMeoe | Z7s%-P- |[t p0IT ¬ Hình 34d Bạn thử kiểm tra lại với kết quả thông báo ở trên, bạn thấy : + 7250 \ 3600 = 2 (giờ) + 7250 Mod 3600 = 50 (giây) + 50 \ 60 = 0 (phút) + 50 Mod 60 = 50 (giây)
+ Vậy kết quả thông báo ở trên 2 giờ 0 phút 50 giây là chính xác
Bây giờ bạn thử nhập vào số 3400, sau đó click vào nút xem kết quả, bạn sẽ có hình như sau :
Trang 27
ol
CHIA HET YEU CAU CUA DAU BAL _— YÊU CAU CUA DAU BAI |
+ Viết chương trình nhập vào một số nguyên
+ Xết xem số đó có chia hết cho 2, chia hết cho 3, chia hết cho Ss,
chia hết cho 9,
+ Thông báo kết quả ra TextBox thông báo
> HƯỚNG DẪN :
* Những số tận cùng bằng 0, 2, 4, 6, 8 thì chia hết cho 2 và chỉ những số đó mới chía hết cho 2,
Vậy khi bạn nhập vào một số nguyên bất kỳ, bạn phải lấy ra chữ số
cuối cùng (chữ số hàng dan vi), và xét xem số đó có phải là một trong các số 0, 2, 4, 6, 8 hay không, Nếu đúng như vậy thì thông báo số nhập vào
sé chia hét cho 2, ngược lại sẽ báo là không chia hét cho 2
Cách 2 bạn cũng lấy ra được chữ số cuối cùng, lấy chữ số đó Mod
cho 2, nếu kết quả bằng 0 (tức là số đó chia hết cho 2), mà một số chia hết cho 2 có một chữ số thì chỉ có thể là một trong các số 0, 2, 4,
6,8
Để lấy ra chữ số cuối cùng của một số, bạn dùng hàm Right (số
nhap , 1) Vi du Right (12345, 1) = 5
* Những số tận cùng bằng 0 hoặc 5 thì chia hết cho 5 và chỉ những số đó mới chia hết cho 5
Vậy muốn biết số nhập vào có chia hết cho 5, bạn cũng thực hiện
như cách 1 ở trên, tức là lấy ra được chữ số cuối cùng, nếu số đó là O hoặc 5 thì kết luận là số nhập vào sẽ chia hết cho 5, ngược lại thì
không chia hết cho 5
Trang 28
+ Những số mà tổng các chữ số chia hết cho 9 thì chia hết cho 9 và chỉ những số đó mới chia hết cho 9
Vậy là bạn phải lấy ra được từng chữ số của số nhập vào, sau đó
cộng lại, xét số đó nếu chia hết cho 9 thì sẽ thông báo là số nhập vào chia hết cho 9, ngược lại thì báo là không chia hết,
Để lấy ra được chữ số thứ nhất, bạn dùng hàm Left và lấy ra 1 chữ số Left (Số nhập, 1) Ví dụ Left (17365, 1) = 1
Nhận xét lúc nay ham Right (Left 12345, 1), 1) = 1, hàm trên tương đương với Right (1,1) = 1 Mì Lefñ (12345, 1)= 1
Từ nhận xét trên, để lấy ra chữ số thứ 2, trước hết bạn dùng hàm Leñ (17365, 2) = 17, sau dé ding ham Right (17, 1) = 7 để lấy được
chữ số thứ 2 là 7
Tương tư như vay, bạn dùng ham Left (17365, 3) để lấy ra được 3
chữ số 173, sau đó dùng ham Right (173, 1) để lấy ra được chữ số thứ
3 là 3
Trong các ví dụ trên, bạn thấy đối số thứ 2 trong hàm Left sẽ chạy
từ 1 đến chiều đài của chuỗi số Đối số thứ 2 trong hàm Right luôn
luôn bằng 1
Bạn suy nghĩ để viết các câu lệnh sao cho đạt được kết quả trên,
Khi lấy ra được từng chữ số, bạn sẽ cho cộng dỗn vào một biến, sau đó xét tổng tính được có chia hét cho 9 hay không, bằng cách bạn lấy số
đó Mod cho 9, nếu bằng 0, kết luận số đó chia hết cho 9, ngược lại thì báo là không chia hết cho 9
+ Những số mà tổng các chữ số chia hết cho 3 thì chỉa hết cho 3 và chỉ những số đó mới chỉa hết cho 3
Bạn cũng làm như thuật toán ở trên, hoặc có thể dùng thuật toán khác Mật số chúa hết cho 9 thì chắc chắn sẽ chia hết cho 3, một số chia
hết cho.3 có thể không chia hết cho 9
Với yêu cầu như trên, chúng tôi thiết kế Form của chương trình
như sau :
Trang 29Chia hốt cho 2 Chia hốt cha 3 Chia hốt cho 5 2
Á |Í #yPoeet -Meeset | Rÿ MiooxetWod-€, [XÉT MÔT Sù— aa
Hinh 35a Form của chương trình
Nhìn vao Form trên, bạn thấy có các điều kiểm như sau :
* 2 TextBox; 1 dung dé théng bao kết quả, 1 dùng để nhập một số cần xét tính chia hết "2 Label dùng làm tiêu đề
* 5 Command Button, trong dé 1 Command Button dùng để Thoát khỏi chương trình, 4 Command button dùng để xem kết quả của các trường hợp tương ứng
* Form có tiêu để “XET MOT SO CO CHIA HET CHO 2, 3,5,9“,
Trang 30BẰNG CÁC THUỘC TÍNH CỦA CÁC ĐIỀU KIỂM
TT | Đối tượng | Các thuộc tính Giá trị
4 | Form Name FrmChiahet
BackColor Mau trắng
Caption XET MOT SO CO CHIA HET CHO 2,3,5,9
WindowState 2-Maximized
2 | Label Name LbiTieude
BackColor Mau cam nhat
Caption Xét tính chia hết của một số Font Name VNI ~ Swiss Condense Font Size 30
Font Style Bold
3 | Label Name LbINhapso
BackColor Mau cam dam
Caption Bạn nhập vào một số
Font Name VNI - Brush Font Size 24
Font Style ltalic
4 | TextBox Name TxtNhapso
BackColor Mau cam dam Font Name MS — Sans Serif
Font Size 24 Font Style Bold
Text (Xóa chữ Text)
5 | TextBox Name TxtKetqua BackColor Mau cam nhạt
Trang 31
6 |Command | Name CmdChiahet2
Button Caption Chia hết cho 2
Font Name VNI — Swiss Condense Font Size 20
Font Style Bold
7 | Command | Name CmdChiahet3
Button Caption Chia hết cho 3
Font Name VNI ~ Swiss Condense
Fant Size 20
Font Style Bold
8 | Command | Name CmdChiahet5
Button Caption Chia hét cho 5
Font Name VNI — Swiss Condense Font Size 20
Font Style Bold
9 Command | Name CmdChiahet9
Button Caption Chia hét cho 9
Font Name VNI ~ Swiss Condense
Font Size 20
Font Style Bold 10 | Command | Name CmdThoat
Button Caption Thoát khỏi Form
Trang 32Bước 1 THIẾT KẾ FORM CỦA CHƯƠNG TRÌNH
+ Bạn lần lượt lấy các điều kiểm từ hộp công cụ để đưa vào Form của chương trình, sau đó xác lập các thuộc tính cho tất cả các điều kiểm theo nhu bang da cho ở trên Bước 2 VIẾT CODE CHO CHƯƠNG TRÌNH Option Explicit
1) Viết Code cho điều kiểm CmdChiahet2
Private Sub CmdChiahet2_Click() Dim Ch As String
Ch = TxtNhapso
If Right (Ch, 1) Mod 2 = 0 Then
TxtKetqua = " Số " & Ch & "chia hét cho 2" Else TxtKetqua = " Số " & Ch & " Khéng chia hét cho 2 * End If End Sub + Khai báo biến Ch có kiểu String dùng để chứa số nhập vàc trong TextBox nhập số
+ Nếu số tận cùng bên phải của số nhập vào một chữ số và Mod cho 2 = 0 thì báo kết quả số nhập vào chia hết cho 2 Ngược lại (số lấy ra Mod cho 2 khác 0), thì báo ra số nhập vào không chia hết cho 2
Trang 33+ Chúng tôi đang dùng cách 2, vì cách này sẽ gọn hơn Bạn cũng có thể
dùng cách 1, bạn chỉ thay biểu thức điều kiện của phát biểu IF là :
Right (ch, 1) = 0 OR Right (Ch, 1) = 2 OR Right (ch, 1) = 4 OR
Right (Ch, 1) = 6 OR Right (Ch, 1) = 8
+ Viết kiểu này thì đài quá
2) Viết Code cho điều kiểm CmdChiahet3 Private Sub CmdChiahet3 _Click0 Dim Ch As String Dim i As Integer Dim n As Integer Ch = TxtNhapso Fort =1 To Len (Ch) n=n + Right (Left (Ch, i), 1) Next lín Mod 3 = 0 Then TxtKetqua = " Số " & Ch & " chia hét cho 3“ Else TxtKetqua = " Số " & Ch & " Không chia hết cho 3 " End lí End Sub
+ Biến Ch cũng giống như thứ tục trên -
+ Biến ¡ dùng để chạy trong vòng lặp For, iechay từ 1 đến chiều dài của
chuỗi số Nhờ vòng lặp For này sẽ dùng cho đối số thứ 2 của hàm Left
+ Biến n có kiểu nguyên dùng để chứa tổng cuối cùng của các chữ
Số có trong chuỗi số nhập vào, sau các bước cộng dồn
Trang 34Private Sub CmdChiahet5 Click0
+ Ham Right (Left (Ch, Ð, 1) dùng để lấy ra chữ số thứ ï
+ Nếu n Mod 3 = 0, tức tổng các chữ số trong chuỗi số nhập vào chia cho 3 có số dư bằng 0 > số đó chia hết cho 3
+ Báo ra TextBox số nhập vào chia hết cho 3
+ Ngược lại, báo ra số nhập vào không chia hết cho 3 3) Viết Code cho điều kiểm CmdChiahet5
Private Sub CmdChiahet5_ Click)
Dim Ch As String
Ch = TxtNhapso
If Right (Ch,.1) = 0 Or Right (Ch, 1) =5 Then
TxtKetqua = ° Số ° & Ch & " chia hét cho 5"
Else
TxtKetqua = " Số " & Ch & " Không chia hết cho 5 “ End tí
End Sub
+ Biến ch cũng giống như trong hai thủ tục ở trên
+ Nếu chữ số cuối cùng trong số nhập vào bằng Ø hoặc bằng 5 thì
thông báo ra TextBox là số nhập vào chia hết cho 5
+ Ngược lại báo ra TextBox số nhập vào không chia hết cho 5, 4) Viết Code cho điều kiểm CmdChiahet9
Trang 35For = 1 To Len (Chì n=n + Right (Left (Ch, 0), 1) Next If n Mod 9 = OThen TxtKetqua = " Số " & Ch & " chía hết cho 9 " Else TxtKetqua = " Số " & Ch & " Không chia hết cho 9 " End if End Sub + Thủ tục này cũng giải thích giống như thủ tục CmdChiahet3 Bạn chỉ thay đổi số 3 thành số 9
Trang 36Xót tính chia hết của một số Số 12345 Không chia hết cho 2 : Chia hốt che 38 ˆ Hình 35b
+ Nhìn vào hình trên, bạn thấy thông báo câu : Số 12345 không chia hết cho 2 Đó là điều đương nhiên, vì số tận cùng không phải là số chẵn
+ Chắc chắn số này sẽ chia hết cho 5, vì số tận cùng của số này là số 5
Trang 37+ Bạn thấy kết quả báo ra chính xác phải không
+ Bây giờ bạn thử Click vào nút Command button có tiêu đề “ Chia hết cho 3 “, bạn sẽ thấy kết quả như hình 35d
#lec:rmi |[Sxermo |e saa
Hinh 35d
+ Ban thấy kết quả báo ra là số 12345 chia hết cho 3
+ Kiểm tra lại, bạn biết một số chia hết cho 3 khi tổng các chữ số chia hết cho 3
+ Vậy 12345=1+2+3+4+5=15
+ Vay 15 Mod 3 = 0 > 15 chia hết cho 3 > 12345 chia hét cho 3
+ Nhìn vào kết quả trên, bạn thấy tổng các chữ số của 12345 là
15, mà 15 không chia hết cho 9, vậy chắc chắn nếu bạn viết Code đúng, thì chương trình sẽ báo số 12345 không chia hết cho 9
+ Bạn thử kiểm tra bằng cách Click vào nút Command Button có
tiếu để “ Chia hết cho 9 “, ban sẽ có kết quả như hình 35e
Trang 38& XET MOT SƠ CŨ CHIA HET CHỦ 2 3 5,
Số 12345 Không chia hết cho 9
Chia hốt cho 2 Chia hốt ch 3
Chia hốt cho 5
+ Vậy bạn thấy chính xác phải không
+ Ở trên, bạn thấy, một số chia hết cho 3, thì số đó chưa chắc chia
hết cho 9
+ Như số 12345 ở trên, số này chia hết cho 3 nhưng không chia hét
cho 9
+ Ngược lại một số chia hết cho 9 thì chắc chắn nó sẽ chia hết cho 3 + Chúng tôi thử cho một ví dụ, sau đó các bạn có thể kiểm tra với
nhiều số khác
+ Bây giờ chúng tôi chọn một số chia hết cho 9, và xem số này có chia hết cho 3 hay không và chắc chắn là nó sẽ chia hết cho 3 Vì 9
Trang 39SSE Chia hét che 2 Số 1800 chia hết cho 9 Chia hốt cho 3 Chia hốt chø 5 + Bạn thấy bạn đã viết Cod Hình 35f le chính xác phải không
+ Bạn thấy tổng các chữ số của số 1800 là 9, mà 9 chia hết cho 3
vậy chắc chắn số 1800 sẽ chia hết cho 3 Tuy nhiên đó là lý thuyết,
Trang 40+ Nhìn vào hình, biết là bạn đã viết Code đúng
+ Bạn Click vào nút Command Button có tiêu để “ Chia hết cho 2 “, nếu kết quả là số 1800 chia hết cho 2 thì bạn viết đúng cho thủ tục
này, nói chính xác là các bạn phải thử các số có số tận cùng là 0,2,4,6,8 Và các trường hợp này đều báo chia hết cho 2 Bạn sẽ có kết quả như hình 35h & XET MOT SỐ CŨ CHIA HET CHO 2 3 „5,9 Xót tính chia hốt cửa một số Số 1800 chia hết cho 2 hốtcho2 | Chia hốt cho3 Chia hốt chø 8 [tiệt Chia hốt che 5 - Hình 35h
+ Các bạn thử nhập nhiều số bất kỳ, chúng tôi bảo đảm chương trình sẽ báo đúng như trong thực tế Bạn cứ thử xem !