1. Trang chủ
  2. » Công Nghệ Thông Tin

Tự học thiết kế chương trình cho học sinh làm toán bằng Visual Basic 6.0 tập 1 part 7 pot

45 267 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 18 MB

Nội dung

Trang 1

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 2

Font 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 3

Dim 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 4

TxtTuso = 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 7

Bude 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 10

Thươ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 15

Bâ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 17

3 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 20

2 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 22

Dim 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 23

2) 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 29

Chia 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 30

BẰ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 32

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 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 34

Private 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 35

For = 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 36

Xó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 39

SSE 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 !

Ngày đăng: 10/08/2014, 15:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w