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 BackColor Mau cam nhat Caption Bạn nhập vào tử số Font Name VNI ~ Brush F
Trang 1BackColor Mau cam dam
Caption Uớc lượng một phân số Font Name VNI — Swiss Condense
Font Size 36
Font Style Bold
BackColor Mau cam nhat
Caption Bạn nhập vào tử số
Font Name VNI ~ Brush
Font Size 24
Font Style Bolditalic
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
415
Trang 28 | Command Name CmdKetqua
Button Caption Phân số tối giản
Font Name VNI - Swiss Condense
Font Size 24
Font Style Bold
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
1) Viết Code cho điều kiểm CmdKetqua
Private Sub CmdKetqua_Click()
Dim n As Integer
Dim Tuso As String
416
Trang 3Dim Mauso As String
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
417
Trang 4số 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
418
Trang 5Mau = TxtMausol * TxtMauso2
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
Function USC! Nia As Integer, b As Integer)
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
_ 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,
447
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 ngoài giấy hay không
-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
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
+ 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 :
449
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
+ 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 :
450
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 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ố)
451
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 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ộ,
452
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 toá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 :
+ Bạn thấy thông báo kết quả là “ Thương của 2 phân số là - 8 / 3”
Bạn thử kiểm tra xem kết quả ra sao nhé :
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
Š Hiệu của 2 phân số
Psat} BAY ®ạPseelM|[ToNG s73.Pmv | WMeoetw.| VỆ stzpu
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ố
+ 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 :
456
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 :
457
Trang 18+ Bạn thấy trong TextBox sẽ thông báo kết quả “ Thương của 2 phân số là 0/12
+ Kiểm tra lại, bạn sẽ thấy :
Trang 19Đổ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
459
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ị
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
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
BackColor Màu xanh biển nhạt
460
Trang 21Text (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
461
Trang 22Dim Phut As Integer
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
462
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
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 :
463
Trang 24& DŨI THÔI GIAN mmm.
Đổi ra giờ - phút - giây
+ 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 :
464
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 ¬
+ 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 :
465
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,
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
467