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 5 potx

45 343 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 16,79 MB

Nội dung

Trang 1

+ Nhung trong thủ tục, nếu bạn gán cho tên của thủ tục là GiaithuaThutuc giá trị của n ! qua biến Giaithua, thì chương trình sẽ không hiểu

5) Viết lệnh 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 chạy thử chương trình bằng cách nhấn phím F5, sau đó bạn nhập vào số 0

+ Bạn Click vào nút Command Button có tiêu để “ Tính giai thừa dùng hàm “, hoặc Click vào nút “ Tính giai thừa bằng thủ tục “ bạn cũng thấy kết quả báo ra-giống như hình sau :

= TINH GIA THUA DUNG HAM HOAC THU TUC

| Tinh giai thừa bằng thủ tục |

Thoát khủi chương trình

Aston] |B Ss) WY ( #y Poee -Meose | NVMeresetWed-C |[TS TỊNH GIAITH lẲ 631PM

Hình 18b._ Form khi nhập vào số 0

Trang 2

+ Nhìn vào hình trên, bạn thấy trong hộp TextBox có tên TxtKetqua là 0!=1

+ Bây giờ bạn thử nhập vào TextBox có tên TxtNhap một số âm, giả sử bạn nhập vào - 5 Bạn thử Click vào 2 nút Command như trên Bạn cũng có hình như sau :

PER

Tut « 1 déng haw va thi đực

ists Không tính được vì là số âm

Thoát khói chương trình

mstart| | BSA DY By Power -m.| By Microw |[ty TINH GI #j20b-Pam | (Ấ7 837PM [15] Ban ahdp udo mbt 26 dé tink gcac thea Tính giai thừa dùng hàm

Hình 18c Form khi nhập vào ~5

+ Nhìn vào hình trên, trong cả hai trường hợp bạn thấy trong hộp TextBox có tên TxtKetqua sẽ thông báo :

~5 ! = không tính được vì là số âm

+ Bây giờ bạn thử nhập vào số 10, bạn sẽ thấy hình xuất hiện như sau :

Trang 3

SS GIẢI THUA DUNG HAM HOAC THỦ TUC “7⁄4 « / ding ham vd the tue 10 ! = 3628800 Th lth gt |

Thoát khúi chương trình

net GAD | Aeron wy meoenwalleg rome Zc-Pen | KE ee Hình 18d_ Form khi nhập vào số 10

+ Nhìn vào hình trên, bạn sẽ thấy thông báo kết quả ở hộp TextBox là :

10 ! = 3628800

Trang 4

CAC PHEP TOAN CO BAN

' YÊU CẦU CỦA ĐẦU BÀI

Để giới thiệu thêm cách dùng hàm, yêu cầu các bạn viết chương trình và thiết kế sao cho người sử dụng nhập vào 2 số nguyên a và b trong hai hộp TextBox, bạn có thể xem kết quả của : 1- a+b 2- a-b 3- axb 4- a/b 5- Aa^b

Ban viết các hàm tự tạo để tính các phép toán trên, (trong cuốn tự học lập trình Visual Basic 6 0, chúng tôi dùng thủ tục, không dùng hàm; không dùng TextBox để nhập mà dùng các thanh cuốn ngang)

Theo yêu cầu của đầu bài, chúng tôi thiết kế Form của chương trình

như sau :

IỤC HIEN CAC PHEP TOAN - CÔNG THÚ, NHAN, CHIA, LUY THUA BES

Thực hiện các nhón toán cơ bản

Ban ahdp ofa Baw whip of 6 :

a+n| a-n | axn| a/m | a^h|

Thoát khỏi chương trình |

wiser] |B IEA 99 (Aynseetak.|RVMcoetw.| Z7Z16:Pa4 JÍS YHUCML- (£ 10037 Hình 19a Form của chương trình

Trang 5

6 bjchia cho sé chia

pet eee

Mời hạn nhận số chia E+ ⁄⁄4:]

Không đúng theo yêu cầu của đầu hài

Basten) |B EAD | ty reeen-m [fs wo PHO 724-Pai |BVMeoeetV.| ‹ƒ- ssym Hình 21e Form khi nhap vao - 125 va 34

+ Ban thấy chương trình sẽ báo lỗi, bây giờ ngược lại chúng tôi nhập số bị chia là số dương, giả sử là 20, nhập số chia là 34, bạn sẽ có hình như sau :

Mô phủng phép chia nguy: IIg cách trử số hị

Mời bạn nhận số bi chia

- Mời hannhận số cha R3 | Không đúng theo yêu cầu của đầu h

Pasion] | B Es A © || Ay Proectt-m ffs mo PH gr 240-Pan | wy Microsonw.| Í|(- «søpw Hinh 21f Form khi nhập vào 20 và ~34

+ Nhìn vào hình trên, bạn thấy là đã viết Code đúng, bây giờ chắc chắn khi bạn nhập vào cả 2 số đều là số âm, bạn sẽ thấy chương trình sẽ báo lỗi như trên

Trang 6

gy cae Lý 2 - ` z TONG BINH PHUONG CAC SO LE VÀ CÁC SỐ CHẴN Âu TIÊN

YÊU CẦU CỦA ĐẦU BÀI

+ Bạn hãy thiết kế và viết Code cho chương trình để khi nhập một số nguyên n, chương trình sẽ :

-_ Inra n số lẻ bình phương đầu tiên -_ In ra n số chẩn bình phương đầu tiên - In ra Tổng bình phương của n số lẻ đầu tiên ~ In ra Tổng bình phương của n số chẩn dầu tiên >» Ví dụ : + Giả sử khi nhập n = 3 +n số lễ bình phương đầu tiên sẽ là chuỗi được in ra như sau : 1^22+3^2+5^2 +n số chẩn bình phương đầu tiên sẽ là chuỗi được in ra như sau : 2^22+4^2+b6^2 + In ra Tổng bình phương của n số lẻ như sau : Tổng bình phương của 3 số lẻ là : 35 + In ra Tổng bình phương của n số chẩn như sau :

Tổng bình phương của 3 -ố chan la : 56

+ Bạn dùng 2 TextBox để hiện ra kết quả, TextBox có tên TxtKetqua1 sẽ hiện ra chuỗi tổng bình phương của n số lẻ hoặc chuỗi tổng bình phượr 3 của n sé chan dau tiên, TextBox có tên TxtKetqua2

Trang 7

sẽ hiện ra kết quả tính được của Tổng bình phương n số lẻ hoặc tổng bình phương của n số chẳn đầu tiên

+ 4 Command button dùng để thể hiện kết quả của 4 câu hỏi tương ứng ở trên (các câu hỏi đều độc lập, không có liên quan gì đến nhau)

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 : &,TONG BÌNH PHUONG CÁC SỐ LE, CÁC S0 CHAN DAU TIỀN CEG

Tổng hình nhương Số lẻ và số chấn đầu tiên nam] | | Inra: 1^2+3^2+B^2+ lnra: 2^2+4^2+8^2+,

Thoát khỏi chương trình

stort] | B Es Dy Proctt -Morosa.| BY MisosotWerd-c.[t TÔNG BNHP (Ý 30174

Hinh 22a 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 :

* 3 TextBox; 1 ding dé nhap s6 can tinh, 2 dé thông báo kết quả = 2 Label ding dé lam tiéu dé

* 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ả * Form có tiéu dé “ TONG BINH PHUONG CAC SO LE, CAC SO

CHAN DAU TIEN “

Trang 8

BANG CAC THUOC TINH CUA CAC DIEU KIEM

TT | Péditugng | Các thuộc tính Giá trị

1 | Form Name FrmTBPleChan

BackColor Mau xanh két

Caption TONG BINH PHUONG CAC

SO LE, CAC SO CHAN DAU TIEN

WindowState 2-Maximized

2 | Label Name LbITBPLeChan

BackColor Mau héng phan

Caption Tổng bình phương số lể và số chẵn đâu tiên,

Font Name VNI — Swiss Condense Font Size 20

Font Style Bold

3 | Label Name LbINhap

BackColor Mau vang

Caption Mời bạn nhập vào một số

nguyên dương

Font Name VNI - Swiss - Condense Font Size 14

Font Style Bold

4 | TextBox Name TxtNhap

BackColor Mau vang nhat Font Name MS - Sans Serif Font Size 24

Font Style Bold

Text (Xoá chữ Text)

Trang 9

Font Style Bold MultiLine True

Text (Xoá chữ Text)

6 | TextBox Name TxtKetqua2

BackColor Mau xanh xám Font Name MS ~ Aptima Font Size 16

Font Style Bold

MultiLine True

Text (Xoa chit Text)

7 | Command Name Cmdsole

Button Caption Inra: 142 + 342 +5424 Font Name MS — Swiss Condense Font Size 14

Font Style Normal

8 | Command Name CmdTBPsole

Button Caption Tính tổng : 1^2 + 3 ^2 +

322 cu

Font Name MS ~ Swiss Condense Font Size 14

Font Style Normal

9 | Command Name Cmdsochan

Button Caption In ra: 242 + 4424+ 6424 Font Name MS — Swiss Condense

Font Size 14

Font Style Normal J

Trang 10

11 | Command Name CmdThoat

Button Caption Thoát khói chương trình Font Name MS — Swiss Condense Font Size 26

Font Style Bold

Buéc 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ụ để dua vao 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ạn hai ý thiết kế TextBox nhập đầu tiên, để khi chạy chương trình, dấu nháy sẽ nằm tại TextBox này Bước 2 VIẾT CODE CHO CHƯƠNG TRÌNH Option Explicit 1) Viết Code cho điều kiểm CmdSochan Private Sub CmdSochan_Click0 Dim i As Integer Dim ch As String

For i = 2 To Txtnhap * 2 Step 2 chech &i & "42+" Next

TxtKetqual = Left (ch, Len (ch) - 3) End Sub

Trang 11

+ Trong thủ tục trên, trước tiên là khai báo biến ¡ có kiểu Số nguyên để dùng trong vòng lặp For

+ Biến Ch kiểu chuối dùng để chứa chuỗi kết quả

+ Vĩ ín ra các số chắn bình phương nên ¡ sẽ chay từ 2 cho đến số nhập vào ở TextBox nhập nhân cho 2, điều này chúng tôi đã giải thích một lần trong bài tập ở trên Step 2, dùng để nhảy 2 bước để ¡ luôn là số chan

+ Biến Ch sẽ chứa các số chắn lấy từ vòng lặp For và được nối với chuỗi “^2 +“ sau mỗi số „

+ In kết quả ra TextBox có tên là TxtKetqua1, hàm Left chúng tải đã giải thích ở trên, kết quả này sẽ bỏ bớt 3 kí tự sau cùng, bạn thử tìm hiểu tại sao phải cắt như vậy

2) Viết Code cho điều kiểm CmdSole

Private Sub Cmdsole_Click() Dim i As Integer Dim ch As String For i = 7 To Txtnhap * 2 Step 2 ch=ch&& "A2 +" Next TxiKetqual = teit (ch, Len (ch) — 3) End Sub

+ Thủ tục này chỉ khác ở biến chạy của ¡ là số 1 vì chỉ lấy các số lẽ + Còn các chỉ tiết khác cũng tương tự như giải thích trong thủ tục ở trên

Trang 12

3) Viết Code cho điều kiểm CmdTBPSochan

Private Sub CmdTBPsoChan_Ciick() Dim i As Integer Dim n As Long For i = 2 To Val(Txtnhap) * 2 Step 2 en=ntiti Next

TxtKetqua2 = "Téng bình phương của " & Txtnhap & " số chắn đầu tiên là :" &n

End Sub

+ Trong thủ tục trên, trước tiên là khai báo biến ¡ có kiểu số nguyên

để dùng trong vòng lặp For

+ Biến n kiểu Long dùng để chứa kết qua là một số

+ Vì in ra tổng bình phương của n số chắn đầu tiên, nên ¡ sẽ chạy từ 2 cho đến số nhập vào ở TextBox nhập nhân cho 2 Step 2, dùng để nhảy 2 bước để ¡ luôn là số chẩn

> Chay:

+ Trong vòng For này, bạn phải đổi số nhập vào TextBox sang kiểu số, bạn dùng ham Val 0 để đổi

+ Bạn suy nghĩ tại sao và tự tìm hiểu nhé

+ Tại sao trong các thủ tục ở rên ta không cần đổi mà chương trình vẫn thực hiện dược

+ In kết quả ra hộp TextBox có tên TxtKetqua2

Trang 13

4) Viét Code cho điều kiểm CmdTBPSole

Private Sub CmdTBPsole_Click() Dim i As Integer Dim n As Long For i= 1 To Val(Txtnhap) * 2 Step 2 n=n+i*i Next TxtKetqua2 = "Tổng bình phương của " & Txtnhap & " số lề đầu tiên là :"&n End Sub + Thủ tục này cũng giải thích như thủ tục vừa rồi, chỉ khác ở biến ¡ là 1

5) Viết Code cho điều kiểm CmdThoat

Private Sub CmdThoat_Click() End End Sub Bube 3 CHAY THU CHUONG TRINH

+ Bay giờ bạn chạy thử chương trình và nhập n = 5 trong TextBox có tên TxtNhap, Click vào nút Command Button có tiêu để “ In ra: 1 ^22+3^2+5^2, “ bạn sẽ có hình như sau :

Trang 14

Oe Ina: 2°2+4%248%2+ Tính tổng : 1^2+8^2+B^2+ Tinh tổng; 2^Z+4^2+B^2+

Thoát khỏi chương trình

st) @ 6:02 19) byhsetsM.| 8VMemAv.| 2i + lÍaYoNem lỆ 350M

Hình 22b_ Form khi nhập số 5 và Click vào nút như trên

+ Nhìn vào hình trên, bạn thấy in ra chuỗi 5 số lẻ bình phương đầu tiên, đúng như yêu cầu của đầu bài

+ Bây giờ bạn thử Click vào nút có tiêu đề “ Tính tổng : 1 ^ 2

+3^2+5^2+ “ bạn sẽ có kết quả như sau : + TÔNG BINH PHUONG CAC S0 L£, CÁC S0 CHAN DAU TIEN 1^2+3^2+5^2+7^2+9^2 | \ a

Thoát khỏi chương trình

gRsua| Ø8 6: 0) 9) (yPaetcM |fVAeseew | gam-Pae [fo toNG a Ee «seem

Hình 22c Form khi click vào nút có tiêu để như vừa nói

Trang 15

+ Bạn thấy trong TextBox có tên TxtKetqua2 sẽ thông báo câu “Tổng bình phương của 5 số lẻ đầu tiên là : 165”

+ Chúng ta thử kiểm tra xem 165 có phải là kết quả đúng hay không nhé Tathấy: 142 = 342 = 9 Sted =6, 742 = 49 9'4U na = 8] Tổng =165

+ Vậy kết quả thông báo là chính xác

+ Bây giờ bạn thử Click vào nút có tiêu đề “ In ra ; 2 ^ 2+4^2+ 6 ^ se “ bạn sẽ có hình như sau : '& TONG BÌNH PHUONG CÁC SU LE, CAC S0 CHAN DAU TIỀN 2^2+4^2+6^2 + 8^2+10^2 Tỉnh tổng: 2^2+4^2+§^ø+

Thốt khỏi chương trình

ston] | B Es 4 8 || tyPoeel -M.J[B ToNG BỊ lE124:Pam | tVMoœo.| ÍỆ“ SssPM

Hình 22d

Trang 16

+ Bạn thấy khi Click như vậy, nội dung mới sẽ được thay thế trong TextBox TxtKetqual, riêng TextBox có tên TxtKetqua2 thì không có gì thay đổi

+ Bây giờ nếu các bạn Click vào nút có tiêu để “ Tính tổng : 2^2+4^2+6^2+ “ các bạn sẽ thấy hình như sau : ESOC ET Tổng hình — Số g và số chấn đầu tiên li | 242 + 442 + 642 + BA2 + 1042 inva: 1%24+3%2+6 “2+ ae Inra: 2^2+4^2+8^2 _ Tỉnh tổn 2 822

Thốt khơi chương trì inh

stat] | @ GD || Power ffm TONG or paed-ra_ | wrMeownw.] KE 6orrw

Hinh 22e

Trang 17

+ Bây giờ giả sử bạn nhập vào số 9 và Click lần lượt 2 nút thuộc về số lẻ, bạn sẽ có hình như sau :

DE EEE -EEI Tổng hình phương Số lẻ và số chấn đầu tiên

Mũi bạn nhập vào một số nguyên dưng mm

1^2+3^2+52^2+7^2+9^2+ 11^2 + 1342 4.1542 +1742

sie) |B Os A O)|) ty Prove wilfes ro H 294-044 | Mesetw.| lẶ- eam Hinh 22f Form khi nhap sé 9 va Click 2 nut về số lẻ

Trang 18

+ Bây giờ các bạn thử Click vào 2 nút để xem số chẵn, bạn sẽ có hình như sau :

'a TONG BINH PHUONG CAC SO LE, CAC SO CHAN DAU TIEN

Vig bình phở ud $ế lủ và số chấn đầu tiên

Bren

AQ + 4A2 + GAZ + BA2 + 1042 + 1242 + 1442 + 1642 + 1842

Psion) |S Ey D1) tyemeralles rono ai đi25:043- [BWMesáu/| [( giơ

Hinh 22g Form khi Click vào 2 nút số chấn

Trang 19

TINH a x b THEO THUẬT TOÁN KHÁC

YÊU CẦU CỦA ĐẦU BÀI

+ Bạn thiết kế và viết chương trình để nhân 2 số nguyên dương a và b (a là số thứ nhất với điều kiện a > 0 „b là số thứ hai, b > = 0) vai thuật toán như sau :

+ Chia đôi số thứ nhất chỉ lấy phan nguyên và gấp đôi số thứ 2 Lập lại quá trình trên cho đến khi số thứ nhất bằng 1

+ Tổng các số thứ 2 tương ứng với các trị lẻ của số thứ nhất sẻ là tích a nhân b cần tính

+ Bạn nhập số a vào TextBox thứ nhất, + Số b vào TextBox thứ hai

+ Click vào nút xem kết quả, nó sẽ in ra như ví dụ dưới đây:

> Ví dụ: * Nhân 83 và 20

20 40 80 160 320 640 1280 83 41 20 10 5 2 1

Tích của 83 nhân 20 tính theo giải thuật của đầu bài cho = 1660 (Thử kiểm lại, bạn thấy 20 + 40 + 320 + 1280 = 1660)

* Nhân 53 và 26

26 52 104 208 416 832 53 26 13 6 3 1

Tích của 53 nhân 26 tính theo giải thuật của dau bai cho =1378 (Thử kiểm lại, bạn thấy 26 + 104 + 416+ 832 = 1378)

Trang 20

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 :

[etd

tena chadl tink od hte igud:\ Exit |

wmstat| | BE; DO || ty Preicct -merote|| By Moosstwee:C.|ÏS axb heotho |JKẾ”34PÁ” Hình 23a 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 :

= 3 TextBox; 1 dung để nhập số a, 1 để nhập số b, 1 để thông báo kết quả

=3 Label dùng để làm tiêu đề

= 2 Command Button, trong dé 1 Command Button ding dé Thoát khỏi chương trình, 1 Command button ding dé xem kết quả = Form cé tiêu để “ a x b theo thuat toan chia doi va nhan doi “

Trang 21

BANG CAC THUOC TINH CUA CAC DIEU KIỂM

TT | Đối tượng | Các thuộc tính Giá trị

1 | Form Name Frmaxb

BackColor Mau cam nhat

Caption ax b theo thuat toan chia doi va nhan doi

WindowState 2-Maximized

2 | Label Name LbITieude

BackColor Mau xanh xdm

Caption Nhân 2 số nguyên dương

theo thuật toán đã cho Font Name VNI ~ Swiss Condense

Font Size 20

Font Style Bold

3 | Label Name LblSoa

BackCalor Mau cam dém Caption Bạn nhập số thứ nhất

Font Name VNI — Brush Font Size 24

Font Style Italic

4 | Label Name LblSob

BackColor Mau cam dam Caption Bạn nhập số thứ hai

Font Name VNI — Brush Font Size 24

Font Style Italic

5 | TextBox Name TxtSoa

BackColor Mau xanh nhạt Font Name MS Sans Serif Font Size 18

Font Style Bold

Text (Xoá chữ Text)

Trang 22

6 | TextBox Name TxtSob

BackColor Màu xanh nhạt Font Name MS Sans Serif Font Size 18

Font Style Bold

Text (Xoa chit Text)

7 | TextBox Name TxtKetqua

BackColor Màu xanh xắm Font Name VNI - Aptima font Size 14

Font Style Normat

MultiLine True

Text {Xoa chit Text)

8 | Command Name CmdKetqua

Button Caption In ra chudi tinh va két qua Font Name VNI — Brush

Font Size 24 Font Style Italic

9 | Command Name CmdThoat

Button Caption Exit

Font Name MS — Swiss Condense Font Size 28 Font Style Normal 8ướ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á“ điều kiểm theo như bảng đã cho ở trên

+ Bạn lưu ý thiết kế TextBox nhập vào số thứ nhất, sau đó là đến TextBox nhập vào số thứ hai, để khi chạy chương trình, dấu nháy sẽ nằm tại textBox có tên TxtSoa, sau đó sẽ nhảy đến TextBox có tên Txt5ob

Trang 23

Bước 2

VIẾT CODE CHO CHƯƠNG TRÌNH

Option Explicit

1) Viết Code cho điều kiểm CmdKetqua

Trang 24

Soa (0) = TxtSoa Sob (0) = TxtSob

If Soa {0) Mod 2 = 1 Then Tong = Tong + Sob (0) End If Ch2 = Sob (0) &"," Fork=1Toi-1 Sob (k) = TxtSob * 2 TxtSob = Sob (k) Ch2 = Ch2 & Sob (k) & ", " Next Chỉ = Soa (0) &"," forj=1Toi-1 Soa (j) = TxtSoa \ 2 TxtSoa = Soa {j}

Ch1 = Ch† & Soa (j) & ", " lí TxtSoa Mod 2 = 1 Then

Tong = Tong + Sob ()

Endlf

Next

Xh = Chr(13} & Chr(10)

Trang 25

TxtKetqua = Ch2 & Xh & Ch] & Xh & "Tích của " & Soa(0) & " nhân " & Sob(0) & " Tính theo giải thuật của đầu

bai cho" & "=" & Tong

TxtSoa = Soa(0) TxtSob = Sob(0) Else

TxtKetqua = " Bạn xem lại số a và b có đúng theo yêu cầu của đầu bài hay không 7

End If End Sub

+ Nếu số a hoặc số b nhập vào mà không đúng theo điều kiện của đầu bài, ví dụ nếu nhập a<= 0, hoặc b < 0 Chương trình sẽ báo là bạn nhập số a hoặc số b không đúng theo yêu cầu của đầu bài

+ Trong thủ tục trên, biến ¡ có kiểu nguyên dùng để đếm số lần xuất hiện của các số khi chia số thứ nhất cho 2 đến khi có kết quả bằng 1

> Ví dụ: 20 10 5 2 1 + Trong trường hợp này ¡ sẽ bằng 5

+ Chúng tôi dùng biến này để làm điều kiện trong các vòng lặp For để duyệt các số ở trên

+ Biến ¡ này sẽ tính được qua vòng lặp Do While trong thủ tục Tại sao đầu tiên biến ¡ = 2 Với ví dụ trên, bạn thấy khi số thứ nhất chia cho 2 lần đầu tiên (có kết quả là 10), ¡ sẽ tăng lên 1 đơn vị, tiếp tục chia lần thứ 2 (có kết quả là 5), ¡ sẽ tăng lên 1 đơn vị, tiếp tục chia lần 3 (có kết quả là 2), ¡ sẽ tăng thêm 1 đơn vị, quay lại vòng lặp lúc này điều kiện không thoả vì 2 \ 2 = 1 (mà điều kiện là phải khác 1) Dọ

Trang 26

đó khi bạn nhập bất kỳ số nguyên dương nào thì số nguyên đó và số 1 sẽ không được tính, mất 2 số nên ta phải cho biến ¡ = 2 là như vậy

+ Tiếp đến ta gán số thứ nhất cho phần tử đầu tiên của mảng 1 là Soa (0), số thứ hai cho phần tử đầu tiên của mảng 2 là Sob (0) Sở dĩ ta gán như vậy để thuận tiện cho các vòng lặp For

+ Vì số thứ nhất bạn nhập vào có thé là số chắn hoặc số lẻ, nếu là số lẻ thi số thứ hai sẽ được cộng vào phép tính, nêủ chúng tôi dùng biến Tong để lấy được số dau tiên tham gia vào phép tính kết quả

> Vídụ: 20, 40, 80

5, 2, 1

Trong trường hợp này số thứ nhất là số 5, là số lẻ, nên số thứ 2 là 20 sẽ được lấy để tham gia tính toán

»> Chú ý:

Số thứ nhất chúng tôi để ở hàng dưới

+ Để in ra chuỗi các số nhân đôi của số thứ 2, chúng tôi dùng biến

Ch2 có kiểu String để chứa

+ Đầu tiên chúng tôi gán biến Ch2= Sob (0) & “„ “, Sau đó dùng vòng lặp For với k chạy từ 1 đến ¡ — 1 để in ra được số thứ 2 nhập vào và tất cả các số sau khi đã nhân đôi, số cuối cùng sẽ là số tương ứng với số thứ nhất sau khi chia 2 có kết quả bằng 1, và các số này sẽ được cách nhau bởi dấu phẩy “,*

Trang 27

+ Tương tự như vậy với vòng lặp For bên dưới để xác định được chuỗi số thứ nhất và các số sau khi đã được chia cho 2

+ Tuy nhiên trong vòng For này sẽ có thêm phát biểu lí với điều kiện xác định với từng số kể từ số có thứ tự thứ 2 có phải là số lễ hay không „ nếu là số lẻ thì số nhân đôi có vị trí tương ứng là chỉ số j sẽ

được tham gia vào tính toán, nó sẽ được cộng thêm vào biến Tong

Nếu chú ý bạn sẽ thấy tại sao chúng tôi phải xác định được các số nhân đôi trước để lưu vào mảng, vì phải có các số này rồi thì chúng ta mới lấy được giá trị của chúng tương ứng với số chia đôi là số lẻ (biến Tong chọn kiểu Long để chứa được trị lớn han)

+ Việc lưu vào các mảng, chúng tôi phải khai báo các mang với chỉ số như trên, đó là Đim Soa (20) As Integer va Dim Sob (20) As Integer ban có thể tăng giảm số này sao cho phù hợp với chương trình

+ Kế đến dùng biến Xh có kiểu Sting để chứa các mà kí tự xuống hàng + Thông báo kết quả ra màn hình chuỗi Ch2, sau đó xuống hang in ra chuỗi Ch1, sau đó xuống hàng in ra các chuỗi nối với các biến

+ Phải gán TextBox có tên TxtSoa = Soa (0) và TextBox có tên TxtSob = Sob (0) để lấy lại đúng giá trị của 2 số mà người sử dụng nhập vào ban đầu, để dễ theo dõi việc tính tốn, Nếu khơng có 2 lệnh gan này thì trong 2 TextBox này sẽ có giá trị là giá trị của số sau cùng của chuỗi Ch1 và Ch2 Chính các vòng lặp For đã làm thay đổi giá trị bạn đầu của người sử dụng nhập vào Bạn có thể thử bằng cách đánh dấu ghi chú 2 dòng lệnh này để thứ xem có dung như vậy hay không ‡ 2) Viết Code cho điều kiếm CmdThoat

Private Sub CmdThoat_Click() End

End Sub

Trang 28

Bước 3 CHẠY THỬ CHƯƠNG TRÌNH + Bạn chạy thử chương trình, nhập vào số thứ nhất là 543 và số thứ hai là 13

+ Click vào nút command button có tiêu để “ In ra chuỗi tính và kết quả “, bạn sẽ có hình như sau : [%e na chee tink va he gud Exit | se |6 8:0 Bll turer arsine tena [Sarees TESA Hình 23b_ Kết quả khi nhập 543 và 13

+ Nhìn vào hình trên, ban thay in ra 2 dãy số, dòng thứ nhất in ra chuỗi là số thứ hai và các số nhân đôi, dòng thứ hai in ra chuỗi là số thứ nhất và các số sau khi đã chia cho 2 Dòng thứ 3 in ra câu văn và

kết quả

+ Bạn thử lấy giấy nháp và tính toán xem, chắc chắn các bạn sẽ

có kết quả đúng như vậy

+ Bạn thấy 13 + 26 + 52 + 104 + 208 + 6656 = 7059

+ Các số trên tương ứng với giá trị là số lẻ của chuỗi số Ch1

+ Bây giờ giả sử bạn nhập số thứ nhất là 200, số thứ hai là 0, bạn sẽ thấy kết quả như thế nào, bạn thử chắc chắn sẽ có hình như sau :

Trang 29

[Tae xa chads Cink wage aad) (ES ae

mista] | @ B14 W || ty Pomc m.| wy Micron w.| (of 20-Pain [[Saxbine Qi EHPM

Hình 23c Form khi nhập 200 và 0

+ Nhìn vào hình trên, bạn thấy chuỗi Ch1 trong hàng thứ hai có 8 số, tương ứng như vậy với chuỗi Ch2 bạn thấy sẽ có 8 số 0, và kết quả báo ra sẽ bằng 0

+ Bây giờ nếu bạn sửa lại số a = 0 xem chương trình sẽ báo như thế nào

Exit |

Ascent] | BGs G2 © |) By noset - | Rý Meoset | [By200-pat [Saab me [eo FP

Hình 23d_ Form khi sửa lại Soa = 0

Trang 30

+ Vì số a = 0, không thoả điều kiện của đầu bài đó đó trong >xtBox sẽ thông báo là không thoả điều kiện của đầu bài

+ Bây giờ bạn thử sửa lại a = 12, b = -5, bạn cũng thấy báo kết quả không thỏa, vì b < 0

&c a xb theo thuat toạn chia đọi và nhan doi II (ae an oe (Iu na chuse tink ua bt gud) Em |

stat] BS] || ty Pcisat om | py Micro w.| (G7 20d-Pait [Fe xbme {igi FON Hinh 23e Form khi a = 12 và b= ~5

Trang 31

_ YEU CAU CUA DAU BÀI

Ban hãy thiết kế và viết Code cho chương trình in ra day Fibonacci được xác định như sau : +Ng=N;¡=1 +MNa=Na_-†y+MNn-¿ (n>=2) 1~ Viết chương trình in ra n + 1 số Fibonaci với n là số được nhập vào 2~ In ra số Fibonaci thứ Nn 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 : & FIBONACI SE i BoE

stad] | 25H WD || By Pret! Mew | By Misoon Wad ff FRONATT PN

Hình 24a Form của chương trình

Trang 32

Nhìn vào Form trên, bạn thấy có các diéu kiểm như sau :

« 2 TextBox mat dùng để nhập số n, một để thông báo kết quả

"2 Label dùng để làm tiêu dé

“2 Command Button, trong đó 1 Command Button dùng để thoát khối chương trình, 1 Command buton dùng để xem kết quả " Form có tiêu để “ FIBONACI ”

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ị

1 |Form Name FrmFibonaci

BackColor Mau nau

Caption FIBONACI

WindowState 2-Maximized

2 | Label Name LblTieude

BackColor Mau xanh két

Caption In ra n số Fibonaci đầu tiên Font Name VNI - Swiss Condense Font Size 36

Font Style Bold

3 | Label Name LbINhap

BackColor Mau xanh két dam Caption Mời bạn nhập vào số n

Font Name VNI - Brush

Font Size 26

Font Style Bolditalic

4 | TextBox Name TxtNhap

BackColor Mau xanh két dam Font Name MS — Sans Serif Font Size 30

Font Style Regular

Text (Xoa chit Text)

Trang 33

5 | TextBox Name TxtKetqua

BackColor Mau xanh nhat Font Name VNI — Aptima

Font Size 24

Font Style Bold

MultiLine Trục

Text (Xóa chữ Text)

6 | Command Name CmdKetqua

Button Caption Xem kết quả

Font Name MS ~ Sans Condanse

Font Size 24

Font Style Bold

7 | Command Name CmdThoat

Button Caption Thoát khối Form

Font Name MS - Swiss Condense Font Size 24 Font Style 8old Đước 1

THIẾT KẾ FORM CỦA CHƯƠNG TRÌNH

+ Bạn lần lượt lấy các diề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 như bảng đã cho ở trên

Trang 34

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 i As Integer Dim So (20) As Integer Dim Ch As String Dim Xh As String Xh = Chr(13) & Chr(10) If TxtNhap >= 2 Then So (0) = 1 So(1)=1 For i = 2 To TxtNhap Ch=Ch & So fi - 1) + Sofi - 2) &"," So (i) = So (ï — 1) + So Ñ — 2) Next

TxtKketqua =" * n + 1 96 Fibonaci vdi n nhap vao = " &

TxtNhạp & " là " & Xh &" "& So (0) &"," & So() &","& Left (Ch, Len (Chì - 2) & Xh & "* Số Fibonaci thứ " & TxtNhap & " là " & 5o (TxtNhap)

Else

Trang 35

TxtKetqua = " Bạn nhập số n chưa đúng theo yêu cầu của dau bài, a phải lớn hơn hoặc bằng 2 (n >= 2)"

End If End Sub

+ Biến ï có kiểu nguyên dùng để chạy trong vòng lặp For + Khai báo mảng dùng để chứa các số Fibonaci

+ Biến ch dùng để nối chuỗi có ¡ chạy từ 2 đến số nhập vào + Biến Xh dùng để chứa mã xuống hàng

+ Gán biến Xh = Chr (13) & Chr (10}

+ Nếu số n nhập vào mà nhỏ hơn 2 thì sẽ báo ra câu có nội dung là số n nhập vào không hợp lệ Nếu n > = 2 thì sẽ gần phần tử thứ nhất của mảng, phần tử thứ hai của mang la 1 (5 (0) = 1 và S (1) = 1),

+ Vòng For có ¡ chạy từ 2 đến số nhập vào để chứa chuỗi các số tibonaci tìm được vào biến Ch,

+ Cau lénh So (f) = So fi —~1) + Sø (ï ~ 2) Đùng để tính cho lần lặp sau + Sau đó báo kết quả ra hộp TextBox có tên TxtKetqua chuỗi chú thích, phần tử thứ nhất của mang, phản tử thứ hai của mảng và chuỗi Fibonaci tìm được trong vòng lặp For

2) Viết Code cho điều kiểm CmdThoat

Private Sub CmdThoat_Click() End

End Sub

Trang 36

Bước 3

CHAY THU CHUONG TRINH

Bạn chạy thử chương trình, sau đó nhập số 5 vào TextBox nhập, Click vào nút xem kết quả, bạn sẽ có kết quả như hình sau : *n + 1 số Fibonaci với n nhập vào = 5 là 1,1,2,3,5,8 * Số Fibonaci thứ N 5 là 8 Í Xemkếốtquả | ThốtkhỏiForm

_"Rsun| | @ 8: ® || ty Proeert-o.| RỆMeosotW.| jØ286:.Pxt fs reonacy |: s53eM

Hình 24b Form khi nhập vào số 5

Trong hình trên, bạn thấy in ra câu chú thích, 6 số Fibonaci từ Nọ dén Ns, va gia tri của số Fibonaci thứ N: Các câu nằm ở các hàng

khác nhau nhờ biến Xh là biến xuống hàng và xác lập thuộc tính MultiLine của TextBox có tên TxtKetqua là True

Nếu nhập vào số 11, bạn sẽ có 12 số Fibonaci từ Nọ đến N¡¡ và số Fibonaci thứ Nụ: có giá trị như sau :

Trang 37

*n + 1 s6 Fibonaci véi n nhập vào = 11 là 1,1,2,3,5,8,13,21,34, 55,89 144 * Số Fibonaci thứ N 11 là 144 Xem

Bon) ea 2 {| Byram Ey meson #izo:Pzm |[triBOMAOL (| 655PM Hình 24c Form khi nhập vào số 11

Nhìn vào hình trên, bạn sẽ thấy bất cứ số Fibonaci từ N¿ trờ về sau, luôn luôn bằng tổng 2 số Fibonaci đứng trước nó

Bây giờ bạn thử nhập số n nhỏ hơn 2, giả sử bạn nhập vào số 1, bạn sẽ có hình như sau :

Bạn nhập số n chưa đúng theo yêu cầu

Trang 38

Nhập vào 2 số nguyên bất ky a va b, Click vào nút xem kết quả, sẽ thấy ước số chung lớn nhất của 2 số này

Form của chương trình được thiết kế như sau : Sn ñ CE bee Ban ahifpp vao wa Ben nhipe uia of 6 amare Sa

| Thoát khỏi Form

` UES as Kitobš 05a 13a 8,5 VỀ a

Pasron| |B Es] DY tyPraect-M| RVMcosetw | Z124.:Pan |[SU0CS0 LÝ bai

Trang 39

2 Command Button, trong đó 1 Command Button dùng dể Thoát

khỏi chuong trinh, 1 Command button dùng để xem kết quả

Form có tiêu dé “ UOC SO CHUNG LON NHAT *

BANG CAG THUOC TINH CUA CÁC DIEU KIEM

TT | Đối tượng | Các thuộc tính Giá trị

1 | Fom Name FrmUSCLN

BackColor Mau cam

Caption UOC SO CHUNG LON NHAT

WindowState 2~Maximized

2 | Label Name LblTieude

BackColor Mau xanh két

Caption Tìm ước số chung lớn nhất của 2 số

Font Name VNI ~ Swiss Condense font Size 28

Font Style Bold

3 | Label Name tblSoa

BackColor Mau cam nhạt

Caption Bạn nhập vao sé a

Font Name VNI ~ Brush Font Size 24

Font Style Bolditalic

4 | Label Name LbISob

Trang 40

5 | TextBox Name TxtSoa

BackColor Mau cam nhat Font Name MS — Sans Serif Font Size 24

Font Style Bold

Text (Xóa chữ TexU

6 | TextBox Name TxtSob

BackColor Màu cam nhạt Font Name MS ~ Sans Serif Font Size 24

Font Style Bold

Text (Xóa chữ Text)

7 | TextBox Name TxtKetqua

BackColor Mẫu cam nhạt

Font Name VNI ~ Swiss Condense Font Size 24

Font Style Bold

MultiLine True

Text (Xóa chữ Text)

8 | Command Name CmdKetqua

Button Caption Xem kết quả

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

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