KIEM TRA TINH TOI GIAN CUA PHAN SO YEU CAU CUA DAU BAI ý và viết Code cho chương trình sao cho khi nhập vào tử số và mẫu số của một phân số, Click vào nút xem kết quả, chương trình s
Trang 1BoE) SEE
_Thoat khoi Form Ẫ
esa [fare nl prison | gr0e-ron voces |K a
Hinh 25e Form khi nhap 4 va 6
Trang 2
KIEM TRA TINH TOI GIAN CUA PHAN SO
YEU CAU CUA DAU BAI
ý và viết Code cho chương trình sao cho khi nhập vào tử
số và mẫu số của một phân số, Click vào nút xem kết quả, chương trình
sẽ cho biết phân số trên có phải là một phân số tối giản hay không
Một phân số là tối giản khi USCLN (a, b) = 1
Từ yêu cầu trên, chúng tôi thiết kế Form của chương trình như sau : ES
stat |B E54 @ |) Prec -o.| wy wcreotw.| [97 22-Pare_ [ey KieWT
Hình 26a Form của chương trình
SE tam
Nhìn vào Form trên, bạn thấy có các điều kiểm như sau :
* 3 TextBox; 1 dung dé nhập tử số, 1 để nhập mau sé, 1 để thông báo kết quả :
* 3 Label ding dé lam tiéu dé
345
Trang 32 Command Button, trong đó 1 Command Button ding để thoát khỏi chương trình, 1 Command button dùng để xem kết quả
Form có tiêu để “ KIEM TRA PHAN SƠ TOI GIAN “
BANG CAC THUOC TINH CUA CAC DIEU KIEM
TT | Đối tượng | Các thuộc tính Giá trị
Caption KIEM TRA PHAN SO TOI
GIAN
WindowState 2-Maximized
2 | Label Name LB[Tieude
BackColor Màu xanh xám
Caption Kiểm tra tính tối giản của
một phân số Font Name VNI — Swiss Condense
Font Style 8old
3 | Label Name LbITuSo
BackColor Màu xanh xám
Caption Bạn nhập vào tử số
Font Name VNI - Brush
Font Style Bolditalic
4 | Label Name LblmauSo
BackColor Màu xanh xám Caption Bạn nhập vào mẫu số
Font Name VNI — Brush
Font Style Bolditalic
346
Trang 4BackColor Mau xanh xam Font Name MS - Sans Serif
Font Style Boid Text (Xóa chữ Text)
BackColor Mẫu xanh xám Font Name MS - Sans Serif
Font Style Bold Text (Xóa chữ Text)
BackColor Mầu xanh xám
Font Name VNI — Aptima
Button Caption Xem két qua
Font Name VNi ~ Swiss Condense
Font Style Bold Command Name CmdThoat
Button Caption Thoát khdi Form
Font Name VNI ~ Swiss Condense
347
Trang 5Nếu phương trình ax2 + bx2 + c=
a-b- “lÏ Khi nào Phương trình có 2 nghiệm phần biệt
sâsut| | @ Sy) BD |) By Procct | Bý MesosoLw | 27 united Pa ff Gia THI ase
Hình 29e Form khi Click nút Nếu a - b +c =0
+ Trong thông báo này, cũng khá giống như trong trường hợp trên, nhưng biến x1 và x2 sẽ có công thức khác, đó là :
1) x1=-1
2) x2=-c/a
+ Người ta thường dùng dấu hiệu này để đi đến kết luận nghiệm
của phương trình một cách nhanh nhất
+ Bạn có thể thử lại một vài trường hợp với dạng trên, bằng cách nhập các hệ số a, b và c sao cho thỏa a — b+c =0 để xem kết quả có
đúng trong các trường hợp hay không
+ Bây giờ bạn thử Click vào nút có tên Khi nào phương trình vô nghiệm, bạn sẽ thấy thông báo trong TextBox như sau :
374
Trang 6Hinh 29{ Form khi Click nút Vô nghiém
+ Nhìn vào TextBox thông báo, bạn thấy nội dung :
“Khi Delta <Q - thì phương trình vô nghiệm “”
Đúng như trong lí thuyết toán học không các bạn, đúng như vậy, trong phương trình bậc 2, néu Delta = b*b ~ 4*a*c < 0 thì phuong
trình sẽ vô nghiệm Điều này đã được kiểm chứng trong chương trình
ở bài trên
+ Bay giờ bạn thử Click vào nút có tiêu để “ Khi hào phường trình
có nghiệm số kép “, bạn sẽ có hình như sau :
375
Trang 7[Ï Nếua-b+c=0 | Khinào Phương trìù có 2 nghiệm nhánHiệt
sRsuat| | @ 6; 2 8) || ạpgeat:M-| RỆMeoetV.| JØ36L.Pan || lal THỊ KẾ sp
Hình 29g Form khí Click nút nghiệm số kép
+ Bạn thấy khi Delta = 0, phương trình bậc 2 sẽ có nghiệm số kép + Cách xác định là x1 = x2 = —b/2*a
+ Bạn thấy có phải như vậy hay không, nếu bạn thấy không phải là
như vậy, bạn có thể vào cửa sổ Code để sửa lại, nếu sửa lại, chắc
chắn các bạn sẽ bị phê bình, vì các bạn đã cho công thức sai
+ Tiếp tục, bạn thử Click vào nút có tiêu để “ Khi nào phương trình
có 2 nghiệm phân biệt “, bạn sẽ có hình như sau :
376
Trang 8& GIẢI THÍCH PHUONG TRÌNH BAC 2
Khi DELTA > 0 > Phương trình sẽ có 2 nghiệm phân biệt
x1 =(-b+ Sqr ( Delta )) /(2*a)
x2 =(-b- Sqr ( Delta )) /(2 *a)
Hoặc các bạn có thể nhận biết phương trình sẽ có 2 nghiệm, là
khi a và c trái dấu
Điều kiện Khi nản phương trình vú nghiệm — “cece Ề
L_ ếusth+c=0 BBTTETEEINHITTEOTTTTETHTrrnTrT Ý NunaophươgTrhanonglfnadtfn |
sual | 4A | | SpProiectt Mf ny Mert v | $7359-Pait_|[tS GIA THI arte
Hình 29h Form khi Click nút có 2 nghiệm phân biệt
+ Và câu với nội dung nôm na là các bạn chỉ cần nhìn vào dấu của
2 hệ số a và c Nếu a và c trái dấu, phương trình bậc 2,sẽ có 2 nghiệm Vì khi a và c trái dấu, thì Delta = b? —,4ac sẽ luôn luôn lớn
hơn 0, mà Delta > 0 > phương trình sẽ có 2 nghiệm
+ Bây giờ bạn Click nút thoát khỏi Form, bạn sẽ thấy chương trình trở
về cửa sổ viết Code, bạn mở Project mới để chuẩn bị làm-bài tập kế tiếp
Trong Visual Basic khi mở một Project mới, VB sẽ hỏi, bạn có muốn lưu
Project vừa rồi hay không, bạn có thể lưu hoặc không bằng cách Click vào
nút Yes hoặc No trên hộp thoại Bạn thích thực hành tiếp hay không, nếu
mệt rồi, các bạn có thể để đến hôm khác làm tiếp `
377
Trang 9
GIẢI PHƯƠNG TRÌNH BAC 2
ax? + bx+c= 0 (a < >0}
YÊU CẦU CUA ĐẦU BÀI
Bạn thiết kế và viết Code cho chương trình giải phương trình bậc 2 với điều kiện a khác 0
+ Bạn nhập vào 3 hệ số a,b,c
+ Delta=b?- 4*a*c
+ Nếu Delta < 0 >> Phương trình vô nghiệm
+ Nếu Delta = 0 -> Phương trình có nghiệm số kép x1 = x2 =—b/a
+ Nếu Delta > 0 > Phương trình có 2 nghiệm :
x1 =— b + Sqr(Delta) / (2* a)
x2 = - b ~ Sqr(Delta) / (2 * a)
+ Với a, b, c nhập vào, chương trình sẽ báo kết quả ra hép TextBox
đúng với đầu bài đã cho ở trên
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 :
378
Trang 10Psat] |S Es D |) ty Prices Mise JWMEsesetWod-C |[t3 GIAI PHUONG KỆ 458M
Hình 30a _ 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 :
*" 4 TextBox; 1 dùng để nhập số a, 1 để nhập số b, 1 để nhập số c1 để thông báo kết quả
* 4 Label ding dé lam tiéu dé
* 2 Command Button, trong dé 1 Command Button dang dé thoat khỏi chuong trinh, 1 Command button ding dé xem két qua
* Form cé tiêu để “ GIAI PHUONG TRINH BAC 2 “4
379
Trang 11BANG CAC THUOC TINH CUA CAC DIEU KIEM
TT | Đốitượng | Các thuộc tính Giá trị
Caption GIẢI PHUONG TRINH BAC
WindowState 2—Maximized
21 Label Name tb[Tieude
BackColor Màu vàng đâm Caption Giải phương trình bậc 2 Font Name VNI ~ Swiss Condense
Font Style Bold
3 | Label Name LbiSoa
BackColor Màu vàng nhạt
Caption Bạn nhập số a
- Font Name VNI - Brush
Font Style Bolditalic
4 | Label Name LbISob
BackColor Mâu vàng nhạt
Caption Bạn nhập số b
Font Name VNI — Brush
Font Style Boldltalic
5 | Label Name TxtSoc
BackColor Mau vang nhat Caption Bạn nhập số c Font Name VNI - Brush
Font Style Boldttalic
BackColor Màu trắng
Trang 12
Font Name MS - Sans Serif
BackColor Mau trang
Font Name MS — Sans Serif
Font Style Bold Text (Xóa chữ Text)
BackColor Mau trang
Font Name VNI - Aptima
Text (Xóa chữ Text)
10 | Command | Name CmdKetqua
Button Caption ˆ Kết quả
Font Name VNI — Swiss Condense
Font Style Bold
11 | Command Name CmdThoat
Font Name VNI - Swiss Condense
381
Trang 13Buée 1
THIET KE FORM CUA 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 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()
PTB2 TxtSoa, TxtSob, TxtSoc
End Sub
2) Viết Code cho điều kiểm CmdThoat
Private Sub CmdThoat_Click()
End
End Sub
3) Viết thủ tục tự tạo
PTB2 {a As Single, b As Single, c As Single)
PTB2 (a As Single, b As Single, c As Single)
Dim x1 As Single
Dim x2 As Single
382
Trang 14TxtKetqua = " Phương trình vô nghiệm "
Elself Delta = 0 Then
TxtKetqua = " Phương trình có nghiệm kép" & Xh & "
xi =x2= "&-b/(2*a)
Else
TxtKetqua = " Phương trình có 2 nghiệm " & Xh & " x1
=" & Cb - Sar (Delta)) / (2 * a) & Xh & "x2 =" & (—b +
Sqr (Delta)) / (2 * a}
End if
End Sub
+ Thủ tục PTB2 với 3 tham số a, b, c có kiểu Single
+ Khai báo biến x1 và x2 có kiểu Single để chứa kết quả của các nghiệm nếu có
+ Khai báo biến Ch kiểu String để chứa mã xuống hàng
+ Gần cho biến Xh = Chr (13) & Chr (10)
+ Khai báo biến Delta có kiểu Single dùng để chứa giá trị bŸ - 4ac
+ Nếu Delta < 0 > báo ra phương trình vô nghiệm
+ Néu Delta = 0 > bao ra phương trình có nghiệm số kép :'
Trang 15sia) | 6: GÀ |) ypasel | gyMesotv.[[S Sau PH- wearer | (EC eA
Hình 30b Form khi nhap a= 1, b = 2,c=-3
+ Bạn thấy phương trình trên sẽ có 2 nghiệm, (Bạn chỉ cần nhìn a
và c trái dấu, phương trình sẽ có 2 nghiệm) Phương trình trên cũng có dạng a + b+c= 0 > sẽ có một nghiệm bằng 1 và một nghiệm là
c/a=-3/1=-3
+ Vậy kết quả báo ra là chính xác
384
Trang 16+ Bđy giờ bạn thử nhập :
- a=12
- b=3
- “C2
+ Nhận xĩt bạn thấy Delta = bˆ - 4ac = 9 _ 4(12.2) < 0 Nín
phương trình sẽ vô nghiệm
+ Bạn thử Click văo nút kết quả để xem có đúng như vậy hay không
+ Bạn thấy chương trình bâo chính xâc phải không
+ Bđy giờ bạn thử nhập giâ trị của a, b „ c sao cho Delta = 0, để xem chương trình bâo như thế nẵ Giả sử câc bạn nhập :
Trang 17+ Nếu chương trình báo là có nghiệm kép và bang —b/2a = —4/2x2 = -1
+ Bạn thấy 5 - 9 + 4 =0 vậy có dạng a - b + c = 0, nên có một
nghiệm bằng ~1, một nghiệm bằng -c/a = - 4 / 5 = ~ 0,8
+ Bạn nhập xong và Click vào nút kết quả, bạn sẽ có hình như sau :
386
Trang 18: Glai phuong trinh bac 2
+ Đồng thời với 2 trường hợp đặc biệt là a + b + c = 0 và a~ b +c=0
+ Và kết quả báo hoàn toàn chính xác Bạrf thử nhập thêm một số
trường hợp để xem kết quả có đúng trong mọi trường hợp hay không
Nếu người sử dụng nhập vào 0 cho hệ số a, chương trình sẽ
Compile và báo lỗi khi gặp câu lệnh : TxtKetqua = " Phương trình có 2
nghiệm " & Xh & "x1 =" & (~b — Sqr(Delta)) / (2 * a) & Xh & "x2 ="
& (-b + Sqr(Delta)) / (2 * a)
Bạn suy nghĩ xem tại sao Bật mí với bạn là lúc này mẫu số sẽ bằng
0 (không thể chấp nhận) Do đó bạn phải sửa Code của chương trình
lại một chút Bạn thêm vào phat biéu IF .Then Else End if, dé khi người sử dụng nhập a = 0 thi chương trình sẽ báo lỗi cho người sử
dụng biết là mình đã nhập sai
Trang 19Ban sẽ thay đổi lại như sau, trước khi thay đổi, bạn thử chạy
chương trình và nhập vào 0 cho hệ số a, bạn sẽ thấy chương trình báo lỗi như thế nào
Sub PTB2 (a As Single, b As Single, c As Single)
TxtKetqua = ° Phuong trình vô nghiệm "
Elseif Delta = 0 Then
TxtKetqua = " Phương trình có nghiệm kép" & Xh &
"xi=x2= "&-b/01*a)
Else
TxtKetqua = " Phương trình có 2 nghiệm " &
Xh & " x1 =" & (—b - Sqr (Dehla)) /(2 * a) & Xh & "x2 ="
& (—b + Sar (Delta)) / (2 * a) End lf
Trang 20+ Thêm vào phần chữ đậm, để khi bạn nhập hệ số a = 0 thì
chương trình sẽ thông báo câu “ Hệ số a không được bằng 0 “
+ Bậy giờ bạn chạy thử chương trình, sau đó bạn nhập :
- a=0
- b=4
- c=5
+ Click vào nút kết quả, ban sẽ có hình như sau :
& GIẢI PHUONG TRÌNH BAC 2 CE
Giải nhương trình bac 2
sẽ hướng dẫn và giải thích các yếu tố cần thiết để giải một phương
trình bậc 2
389
Trang 21
PHƯƠNG TRÌNH TRÙNG PHƯƠNG
YÊU CẦU CỦA ĐẦU BÀI
Bạn hãy viết chương trình giải phương trình trùng phương ax’ + bx? +c=0.(ÐK: a khác 0}
+ Người sử dụng nhập 3 hệ số a, b và c, Khi Click vào nút Command Button có tiêu để “ Nghiệm của PT trùng phương “, kết quả
của các nghiệm nếu có hoặc vô nghiệm sẽ được thông báo trong TextBox có tên TxtKetqua
+ Khi Click vào nút Command Buttlon có tiêu để “ Hướng dẫn
nghiệm của PTB 2 “, thì sẽ có thông tin hướng dẫn hiện ra trong
TextBox có tên TxtHuongDan như sau :
Delta=b*b-4*a*c
— Nếu Delta < 0 -—> Vô nghiệm
~ Nếu Delta = 0 -—> Có nghiệm kép : tÍ = 12 = —b / 2 * a)
- Nếu Delta > 0 ——> Có 2 nghiệm phân biệt : tì= -b + Sqr (Delta) / (2* a) và t2 = -b - Sqr (Delta) / (2 *a)
+ Khi Click vào nút Command Button có tiêu để “ Hướng dẫn giải
PT trùng phương ”, thì sẽ có thông tin hướng dẫn hiện ra trong TextBox
có tên TxtHuongDan như sau :
Để giải phương trình trùng phương ax^4 + bx^2 + c = 0 (1)
- PHƯƠNG PHÁP GIẢI :
Dat t = x^2, với 1! >= Ú, ta có ;
+ ()< ->at^2+bt+c=0 (2)
390
Trang 22+ PT (1) có nghiệm hay không tuỳ theo PT (2) có nghiệm
1~ Điều kiện phương trình bậc 2 có hai nghiệm cùng dấu :
4- Điều kiện có hai nghiệm trái dau :
P=c/a<0, hoặc a và c trái đấu
+ Khi Click vào nút Command Button có tiêu để ” Tóm tắt nghiệm của PTB 2 và PTTP “, thì sẽ có thông tin hướng dẫn hiện ra trong
TextBox có tên TxtHuongDan như sau ;
BANG TOM TAT
at*2+bt+c=0 ax^4 + bx^2+c=0
1~ Vô nghiệm 1~ Vô nghiệm
3— Nghiệm kép âm 3- Vô nghiệm
4- 1 nghiệm dương 4- 2 nghiệm đối nhau
5- 2 nghiệm dương 5- 4 nghiệm (2 cặp
nghiệm đối nhau
391