Ở bài này có 3 biến số và một kết quả nên ta sẽ thiết kế giao diện có 3 cửa sổ nhập liệu
và 1 ô hiện kết quả. Vậy ta sẽ chọn 3 ô nhập liệu và 1 ô hiện kết quả cho nó hiện lên
còn các ô còn lại sẽ ẩn đi thông qua thuộc tính Visible của Textbox.
- Mặt khác, các biến số có biến thuộc font chử VNI – times, có biến thuộc font chử
symbol nên để cho các biến số hiện đúng như biến số được nêu ở đề bài thì ta dùng
thuộc tính FontName của Textbox.
- Để hiện các biến số ( m, l, α ) và đơn vị ( g, cm, 0 ) lên màn hình giao tiếp thì ta sử
dụng thuộc tính Text của Textbox.
- Nhưng để hiện được đúng đề bài tập này lên màn hình khi ta chọn Chương trình Vật lí
11, chương 1 và bài tập 3 thì ta phải đặt các đoạn Code trên trong câu lệnh IF và đoạn
lệnh này phải được đặt ở nút Combo3.
70 trang |
Chia sẻ: baoanh98 | Lượt xem: 1194 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Biên soạn phần mềm – soạn thảo nhanh một số bài tập Vật lí 11 cơ bản - Phần Điện học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
lực điện
F = P và lực điện ngược hướng với trọng lực.
Từ (1) và (2) ta được : Uq mg
d
=
Vậy hiệu điện thế đặt vào hai tấm kim loại là
15 2
18
m.g.d 3,06.10 .10.2.10U
q 4,8.10
− −
−= = = 127,5 (V)
Trang 27
A B
R1 R2
8./ Bắn một electron với vận tốc đầu rất nhỏ vào một điện trường đều giữa hai bản kim loại
phẳng theo phương song song với các đường sức điện. Electron được tăng tốc trong điện
trường. Ra khỏi điện trường, nó có vận tốc 107m/s. Tính hiệu điện thế UAB giữa hai bản.
Biết điện tích của electron là -1,6.10-19 C. Khối lượng của electron là 9,1.10-31 kg.
Bài giải
Áp dụng định lí động năng cho chuyển động của electron
Ta có : A = e.UAB = 2 2 22 1 2
1 1 1mv mv mv
2 2 2
− =
Hiệu điện thế giữa hai bản kim loại là
( ) ( )
22 31 7
AB 2 19
1 1U m.v .9,1.10 . 10
2.e 2 1,6.10
−
−= = − = 2,484 (V)
CHƯƠNG II : DÒNG ĐIỆN KHÔNG ĐỔI
1./ Nếu dùng hiệu điện thế 6V để nạp điện cho acquy có điện trở r = 0,5Ω . Ampe kế chỉ
2A. Acquy được nạp điện trong 1h. Tính điện năng đã chuyển thành hóa năng trong
acquy.
Bài giải
Điện năng mà acquy tiêu thụ
A = U.I.t = 6.2.(1.3600) = 43200 J
Nhiệt lượng mà acquy tỏa ra
Q = r.I2.t = 0,5.22.(1.3600) = 7200 J
Điện năng đã chuyển thành hóa năng trong acquy
A’ = A – Q = 43200 – 7200 = 36000 J
2./ Cho mạch điện như sơ đồ hình vẽ. Trong đó:
R1 = 30Ω ; R2 = 20Ω ; UAB = 6V. Tính công suất tỏa
nhiệt trên điện trở R1.
Bài giải
Điện trở tương đương
RAB = R1 + R2 = 30 + 20 = 50 (Ω )
Cường độ dòng điện qua mạch chính
AB
AB
U 6I = 0,12(A)
R 50
= =
Công suất tỏa nhiệt trên điện trở R1
P = R1.I2 = 30.(0,12)2 = 0,432 (W)
Trang 28
3./ Cho mạch điện như sơ đồ hình vẽ. Trong
đó : R1 = 60Ω ; R2 = 60Ω ; R3 = 120Ω ;
UAC = 120V. Tính công suất tỏa nhiệt của
mạch.
Bài giải
Điện trở tương đương ở hai đầu BC
2 3
BC
2 3
R .R 60.120R = 40( )
R R 60 120
= = Ω+ +
Điện trở tương đương ở hai đầu AC
RAC = R1 + RBC = 60 + 40 = 100 (Ω )
Cường độ dòng điện qua mạch chính
AC
AC
U 120I = 1,2(A)
R 100
= =
Công suất tỏa nhiệt trên toàn mạch
P = U.I = 120.1,2 = 144 (W)
4./ Khi mắc điện trở R1 = 4 Ω vào hai cực của nguồn điện thì dòng điện trong mạch có
cường độ I1 = 0,5 A. Khi mắc điện trở R2 = 10Ω thì dòng điện trong mạch là
I2 = 0,25A. Tính suất điện động và điện trở trong r của nguồn điện.
Bài giải
Áp dụng định luật ôm đối với toàn mạch ta có
E = I1.R1 + I1.r (1)
E = I2.R2 + I2.r (2)
Từ (1) và (2) ta được :
1 2 2 1
1 2
I .I .(R R ) 0,5.0,25.(10 4)E
(I I ) (0,5 0,25)
− −= =− − = 3 (V)
( ) ( )2 2 1 1
1 2
I .R - I .R 0,25.10-0,5.4
r = = 2 ( )
0,5 0,25
= Ω− −I I
5./ Một điện trở R1 được mắc vào hai cực của nguồn điện có điện trở trong r = 4Ω thì dòng
điện chạy trong mạch có cường độ I1 = 1,2 A. Nếu mắc thêm điện trở R2 = 2Ω nối tiếp
với điện trở R1 thì dòng điện chạy trong mạch có cường độ là I2 = 1 A. Tính điện trở R1.
Bài giải
Áp dụng định luật ôm đối với toàn mạch ta có:
E = I1.R1 + I1.r (1)
E = I2.(R1 + R2) + I2.r (2)
CBA
R1
R2
R3
Trang 29
Từ (1) và (2) ta được
2 2 1 21
1 2
I .R (I I ).r 1.2 (1,2 1).4R
(I I ) (1,2 1)
− − − −= =− − = 6 (Ω )
6./ Mắc một điện trở 14Ω vào hai cực của nguồn điện có điện trở trong là 1Ω thì hiệu điện
thế giữa hai cực của nguồn là 8,4V.
a) Tính cường độ dòng điện chạy trong mạch.
b) Tính công suất của nguồn điện khi đó.
Bài giải
a) Cường độ dòng điện : U 8,4I 0,6
R 14
= = = (A)
b) Suất điện động của nguồn
E = I.R + I.r = 0,6.14 + 0,6.1 = 9 (V)
Công suất của nguồn điện
Png = E.I = 9.0,6 = 5,4 (W)
7./ Điện trở trong của một acquy là 0,06Ω và trên vỏ của nó có ghi 12V. Mắc vào hai cực
của acquy này một bóng đèn có ghi 12V – 5W. Tính cường độ dòng điện và hiệu suất
của nguồn điện trong trường hợp này.
Bài giải
Điện trở bóng đèn
R =
2 2U 12
P 5
= = 28,8 (Ω )
Dòng điện trong mạch
E 12I 0,4158 (A)
R r 28,8 0,06
= = =+ +
Hiệu suất của nguồn điện
N N
N
U I.RH .100% .100%
E I(R r)
= = +
N
N
R 28,8H .100% .100% 99,8%
(R r) (28,8 0,06)
= = =+ +
8./ Nguồn điện có suất điện động là 3V có điện trở trong là 2Ω . Mắc song song hai bóng
đèn như nhau có cùng điện trở là 6Ω vào hai cực của nguồn điện này. Tính công suất
tiêu thụ của mỗi bóng đèn.
Trang 30
Bài giải
Ta có: 1 212
1 2
R .R 6.6R 3 ( )
R R 6 6
= = = Ω+ +
Dòng điện trong mạch
12
E 3I 0,6 (A)
R r 3 2
= = =+ +
Hiệu điện thế giữa hai đầu bóng đèn
U = E – I.r = 3 – 0,6.2 = 1,8 (V)
Công suất tiêu thụ của mỗi bóng đèn
2 2 2
1 2
1 2
U U 1,8P P
R R 6
= = = = = 0,54 (W)
9./ Hai nguồn có cùng suất điện động E, cùng điện trở trong r = 2Ω được mắc thành bộ
nguồn và được mắc với điện trở R = 11Ω như sơ đồ. Dòng điện chạy qua R có cường
độ I = 0,25 A. Tính suất điện động E của mỗi nguồn.
Bài giải
Ta có : rb =
r
2
Áp dụng định luật ôm ta có
Eb = R.I + I.rb = R.I + I.
r
2
Eb = 11.0,25 + 0,25.
2
2
= 3 (V)
Vậy : E1 = E2 = Eb = 3 (V)
Chương III : DÒNG ĐIỆN TRONG CÁC MÔI TRƯỜNG
1./ Một dây bạch kim ở 20 0C có điện trở suất ρ 0 = 10,6.10-8 .mΩ . Tính điện trở suất ρ
của dây bạch kim này ở 1120 0C. Giả thiết rằng, điện trở suất của dây bạch kim trong
khoảng nhiệt độ này tăng bậc một theo nhiệt độ với hệ số nhiệt điện trở không đổi là
α = 3,9.10-3 K-1.
Bài giải
Điện trở suất ρ của dây bạch kim khi ở 11200C là
( )0 0ρ = ρ 1+α t - t⎡ ⎤⎣ ⎦
ρ ( )-8 -3= 10,6.10 1+ 3,9.10 1120 - 20⎡ ⎤⎣ ⎦
ρ 856,1.10 ( . )m−≈ Ω
E, r
E, r
R
Trang 31
2./ Một bóng đèn 220 V – 40 W có dây tóc dây tóc làm bằng vonfam. Điện trở của dây tóc
bóng đèn ở 200C là R0 = 121Ω . Tính nhiệt độ t của dây tóc bóng đèn khi sáng bình
thường. Giả thiết điện trở của dây tóc đèn trong khoảng nhiệt độ này tăng bậc nhất theo
nhiệt độ với hệ số nhiệt điện trở không đổi là α = 4,5.10-3 K-1.
Bài giải
Điện trở dây tóc bóng đèn khi sáng bình thường
2 2U (220)R 1210( )
P 40
= = = Ω
Ta có : ( )0 0R = R 1+α t - t⎡ ⎤⎣ ⎦ .
Nhiệt độ của dây tóc bóng đèn khi sáng bình thường
0
0
1 Rt = -1 + t
R
⎛ ⎞⎜ ⎟α ⎝ ⎠
t 03
1 1210= 1 20 2020 .
4,5.10 121
C−
⎛ ⎞− + =⎜ ⎟⎝ ⎠
3./ Dây tóc bóng đèn 220 V – 100 W chế tạo bằng bạch kim khi sáng bình thường ở
25000C, điện trở của nó ở 250C bằng 40,3Ω . Tính hệ số nhiệt điện trở α . Coi rằng
điện trở suất của bạch kim trong khoảng nhiệt độ này tăng tỉ lệ bậc nhất theo nhiệt độ.
Bài giải
Điện trở dây tóc bóng đèn khi sáng bình thường :
2 2U (220)R 484( )
P 100
= = = Ω
Ta có : ( )0 0R = R 1+α t - t⎡ ⎤⎣ ⎦
Hệ số nhiệt điện trở
3 1
0 0
1 R 1 4841 1 4, 45.10 (K )
t t R 2500 25 40,3
− −⎛ ⎞ ⎛ ⎞α = − = − =⎜ ⎟ ⎜ ⎟− − ⎝ ⎠⎝ ⎠
4./ Ở nhệt độ t1 = 250C, hiệu điện thế giữa hai cực bóng đèn là U1 = 10mV và cường độ
dòng điện chạy qua đèn là I1 = 4mA. Khi sáng bình thường, hiệu điện thế giữa hai cực
bóng đèn là U2 = 120V và cường độ dòng điện chạy qua đèn là I2 = 4A. Tính nhiệt độ t
của dây tóc đèn khi sáng bình thường. Coi rằng điện trở suất của bạch kim trong khoảng
nhiệt độ này tăng tỉ lệ bậc nhất theo nhiệt độ với hệ số nhiệt điện trở không đổi là
α = 4,2.10-3 K-1.
Trang 32
Bài giải
Điện trở bóng đèn
( )11
1
U 10R 2,5
I 4
= = = Ω
( )22
2
U 120R 30
I 4
= = = Ω
Mặt khác ta có : ( )2 1 2 1R = R 1+α t - t⎡ ⎤⎣ ⎦
Nhiệt độ của dây tóc bóng đèn khi sáng bình thường
022 1 3
1
R 1 30t = 1 t = 1 25 2644 C
R 4, 2.10 2,5−
⎛ ⎞1 ⎛ ⎞− + − + =⎜ ⎟ ⎜ ⎟α ⎝ ⎠⎝ ⎠
5./ Dùng cặp nhiệt điện sắt – Constantan có hệ số suất điện động α = 50,4µ V/K nối với
milivôn kế để đo nhiệt độ nóng chảy của vàng. Giữ nguyên mối hàn thứ nhất của cặp
nhiệt điện này trong nước đá đang tan và nhúng mối hàn thứ hai của nó vào vàng đang
nóng chảy. Khi đó milivôn kế chỉ 53,5 mV. Tính nhiệt độ nóng chảy tC của vàng.
Bài giải
Ta có: c 0E (t t )= α −
Suy ra :
3
0
c 0 6
E 53,5.10t t 0 1062 C
50, 4.10
−
−= + = + =α
6./ Người ta muốn bóc một lớp đồng dày d = 10 µm trên một bản đồng diện tích S = 1 cm2
bằng phương pháp điện phân. Cường độ dòng điện là 0,01 A. Tính thời gian cần thiết để
bóc được lớp đồng. Cho biết đồng có khối lượng riêng là ρ = 8900 kg/m3.
Bài giải
Thể tích lớp đồng phải bóc đi: V = d.S
Khối lượng đồng phải bóc đi: m = ρ .V = ρ .d.S
m = 8900.10-5.10-4 = 8,9.10-6 (kg) = 8,9.10-3 (g)
Mặt khác ta có: 1 Am I.t
F n
=
Thời gian cần thiết để bóc được lớp đồng
3m.F.n 8,9.10 .96500.2t 2,68(s)
A.I 64.0,01
−
= = =
Trang 33
7./ Một vật kim loại được mạ niken có diện tích là 120 cm2. Dòng điện chạy qua bình điện
phân có cường độ 0,3 A và thời gian mạ là 5 giờ. Tính độ dày h của lớp niken phủ đều
trên mặt của vật được mạ. Niken có khối lượng mol nguyên tử là A = 58,7 g/mol; hóa trị
n = 2 và khối lượng riêng ρ = 8,8.103 kg/m3.
Bài giải
Ta có: 1 Am I.t
F n
= (1)
Mặt khác ta có: m = ρ .V = ρ .S.h (2)
Thế (2) vào (1) ta được: 1 A.S.h I.t
F n
ρ =
Vậy độ dày của lớp niken phủ trên mặt vật được mạ là
3
5
3 4
1 A I.t 1 58,7.10 0,3.5.3600h 1,56.10 m
F n .S 96500 2 8,8.10 .120.10
−
−
−= = =ρ
2. Thiết kế giao diện
- Do các máy tính của người dùng sẽ rất khác nhau nên để thiết kế giao diện sao cho tất
cả các máy có thể sử dụng được thì chúng tôi thiết kế một giao diện lấy màn hình 14
inch làm chuẩn và cố định mọi chế độ màn hình của giao diện. Do đó, các máy khác
nhau đều sử dụng được.
- Đặc biệt, phần mềm còn có thêm chức năng là hiển thị thứ, ngày, tháng, năm theo thời
gian hiện hành của máy tính, để người sử dụng được thuận tiện hơn.
- Ngoài ra do đặc thù của từng bài toán: mỗi bài toán có số biến số sử dụng khác
nhau,nên giao diện được thiết kế với số cửa sổ nhập dữ liệu tối đa và được hiệu
chỉnh tùy theo nhu cầu của từng bài, như Hình 2.
Hình 2. Các đối tượng trên màn hình giao diện
1
2
3
5
4
Trang 34
Hình 3. Giao diện của bài tập 5 chương 1
Trong đó các đối tượng điều khiển chương trình gồm:
(1) Text Box: gồm 6 ô để nhập giá trị của biến số và 2 ô để thể hiện kết quả.
(2) Command Button: gồm có các nút Tính, Tiếp, Kết Thúc, Hướng Dẫn dùng để xử
lý biến cố.
• Nút Tính có tác dụng thực hiện lệnh tính khi đã nhập đầy đủ số liệu của bài toán.
• Nút Tiếp có tác dụng xóa các số liệu trong các ô nhập số liệu.
• Nút Kết Thúc dùng để thoát khỏi chương trình.
(3) Label: dùng để thể hiện các biến số của bài tập lên giao diện.
(4) Image: có tác dụng dùng để hiện thị bài toán dưới dạng hình ảnh lên giao diện.
(5) Combo Box: gồm các nút Chương trình, nút Chương, nút Bài tập.
Đối với từng bài tập được chọn, giao diện thay đổi linh hoạt để phù hợp với nội dung.
Thí dụ giao diện của bài tập 5 chương 1 như Hình 3.
3. Lập trình
3.1) Chuẩn bị
- Để chuẩn bị cho việc lập trình thì trước hết chúng tôi phải lựa chọn và giải một số
bài tập tiêu biểu của phần Điện học trên Word. Sau đó chuyển về dạng pdf và sử
dụng phần mềm đồ họa Corel Draw để chuyển các bài tập về dạng hình ảnh.
- Vì phần mềm này là phiên bản đầu tiên cho nên để tập trung hoàn toàn vào phần tính
toán thì chúng tôi phải thể hiện các đề bài đều ở dạng hình ảnh. Vì nếu trình bày đề
bài ở dạng Word thì cần phải có trình độ lập trình Visual Basic cao hơn nữa.
Trang 35
3.2) Cài đặt Visual Basic
- Khởi động Windows.
- Đưa đĩa CD – Rom chứa Visual Basic 6.0 vào ổ đĩa CD.
- Bạn nhấp đúp vào biểu tượng My computer.
- Nhấp đúp vào biểu tượng ổ đĩa CD – Rom của bạn.
- Nhấp đúp vào biểu tượng Setup.exe để chạy chương trình cài đặt.
- Bạn trả lời các câu hỏi của chương trình Setup, cài các thành phần phụ, sau đó bạn
chọn ô Microsoft Visual Basic 6.0, chương trình sẽ tự động cài biểu tượng chương
trình Visual Basic 6.0 trong nhóm chương trình Visual Basic 6.0 mới tạo.
- Lúc này việc cài đặt đã hoàn thành, bạn sẽ lựa chọn hoặc trở về Windows hoặc khởi
động lại máy tính.
3.3) Khởi động chương trình Visual Basic
- Chọn Start/Program/Microsoft VisualBasic 6.0/Microsoft Visual Basic 6.0
Hình 4. Đường dẫn để khởi động Visual Basic 6.0
Hình 5. Cửa sổ khi chọn Standard EXE
Trang 36
- Màn hình chương trình xuất hiện, chọn Standard EXE và click Open khi đó xuất
hiện màn hình Form (Hình 5).
- Đây là màn hình làm việc của Visual Basic, ở đây ta sẽ thiết kế giao diện của phần
mềm bằng cách vẽ vào màn hình Form những control điều khiển và viết các đoạn
lệnh xử lí các biến cố.
3.4) Ngôn ngữ lập trình Visual Basic
3.4.1) Biến
Tương tự như các ngôn ngữ lập trình khác, biến là một yếu tố không thể thiếu. Biến
như là một phần của bộ nhớ, muốn sử dụng phải khai báo. Tên biến không dài quá
255 kí tự.
3.4.2) Khai báo biến
Có 2 chế độ khai báo và sử dụng biến trong Visual Basic. Đó là khai báo không
tường minh và khai báo tường minh. Trong chế độ khai báo không tường minh,
chúng ta không cần khai báo biến trước khi sử dụng. Với chế độ khai báo tường
minh thì mỗi biến sử dụng cần phải khai báo trước.
Để khai báo biến chúng ta có thể dùng cú pháp:
Dim Tên_biến [As Kiểu_dữ_liệu]
Tên_biến là một chuỗi ký tự dài không quá 255 ký tự và không trùng với các tên
biến khác trong cùng phạm vi khai báo.
3.4.3) Các Kiểu dữ liệu thường dùng
Trong Visual Basic có các kiểu dữ liệu thường dùng như:
- Integer: kiểu số nguyên.
- Single: kiểu số thực.
- String: là dữ liệu kiểu chuỗi.
- Double: là kiểu dữ liệu nhị phân.
- Bolean: là kiểu dữ liệu lý luận (Yes/No)
3.4.4) Các toán tử trong Visual Basic
- Toán tử + : Cộng hai số hạng.
- Toán tử - : Trừ hai số hạng.
- Toán tử ^ : Dùng để tính lũy thừa.
- Toán tử * : Dùng để nhân hai số hạng.
- Toán tử chia \ : Chia bỏ phần thập phân.
- Toán tử chia / : Chia và làm tròn.
- Mod : lấy phần dư.
- Toán tử nối chuỗi : &
Trang 37
- Toán tử logic: And, Or.
- Toán tử so sánh:
= Bằng nhau
< Nhỏ hơn
<= Nhỏ hơn hoặc bằng
Khác nhau
> Lớn hơn
>= Lớn hơn hoặc bằng
3.5) Tạo và chạy một chương trình
Để tạo một chương trình ứng dụng trong Visual Basic chúng ta lần lượt tiến hành
các bước sau :
Bước 1 : Vẽ các giao diện màn hình Form
Bước 2 : Đặt tên, giá trị những thuộc tính cần thiết cho các điều khiển trên Form.
Bước 3 : Thêm lệnh cho các thủ tục xử lý biến cố. Khi có biến cố xảy ra như biến
cố (click, dblclick, change) thì chương trình sẽ thực hiện một đoạn lệnh ứng với
một chương trình con để xử lí biến cố đó.
Sau khi xây dựng hoàn tất chương trình theo ba bước trên chúng ta có thể chạy và
kiểm tra lỗi của chương trình bằng cách nhấn phím F5 hay nhấn chuột tại nút trên
thanh công cụ Toolbar
• Để vẽ các đối tượng vào Form có 2 cách thực hiện như sau:
Cách 1
- Double click vào control điều khiển trong hộp công cụ mà bạn muốn đưa vào biểu
mẫu, lúc đó đối tượng này sẽ xuất hiện giữa biểu mẫu.
- Nếu bạn chọn nhiều đối tượng thì các đối tượng này sẽ nằm chồng lên nhau, bạn
click trái chuột vào từng đối tượng và rê chuột đến vị trí bạn muốn. Để thay đổi kích
thước của các đối tượng thì click vào đối tượng cần thay đổi khi đó sẽ có 8 nút bao
quanh đối tượng, bạn trỏ chuột vào các nút này cho đến khi con trỏ chuột biến thành
hình mũi tên thì bạn có thể kéo lớn hay thu nhỏ lại.
Cách 2
- Click chọn đối tượng trong toolbox, đưa con trỏ của chuột vào trong biểu mẫu, lúc
này con trỏ có hình dấu cộng, khi đó giữ chuột trái và kéo đến khi đối tượng có kích
thước bạn muốn rồi thả chuột ra.
- Để điều chỉnh các đối tượng nằm thẳng hàng với nhau thì ta thực hiện như sau: chọn
các đối tượng cần điều chỉnh, sau đó chọn Format \ Align và tùy theo việc điều
Trang 38
chỉnh các đối tượng thẳng hàng theo chiều dọc hay chiều ngang mà ta chọn Centers
hay Middle
• Thêm lệnh cho các thủ tục xử lý biến cố.
- Để viết lệnh cho các đối tượng thì ta có thể thực hiện một trong những cách sau:
+ Click phải chuột vào bất cứ vị trí nào màn hình form, lúc đó sẽ xuất hiện menu,
bạn chọn View Code.
+ Double Click vào form hoặc đối tượng bạn cần viết mã, cửa sổ sẽ hiện ra.
+ Mở cửa sổ Project Explorer, chọn Form cần mở, sau đó chọn Tab View Code.
+ Vào Menu View rồi chọn View Code.
- Khi đó sẽ xuất hiện cửa sổ để viết Code (Hình 6).
Hình 6. Cửa sổ viết Code
- Hộp Combobox bên trái cho phép ta chọn các đối tượng để viết Code, để chọn đối
tượng viết Code thì ta click vào vào combobox này và chọn đối tượng mà ta cần viết
Code (Hình 7).
Hình 7. Đối tượng để viết Code
Trang 39
- Hộp combobox bên phải ghi tất cả các biến cố. Bạn click chuột vào mũi tên bên
phải thì sẽ xuất hiện ra một menu sự kiện, bạn chọn sự kiện nào thì lick chuột vào
sự kiện đó (Hình 8).
Hình 8. Biến cố của các đối tượng
- Đoạn lệnh được viết nằm ở giữa hai dòng sau:
Private Sub Command1_Click()
End Sub
Hai dòng lệnh này là hai dòng lệnh đầu và cuối của thủ tục.
- Bước viết lệnh là bước quan trọng hơn cả bởi vì nó là yếu tố quyết định chương
trình của bạn chạy đúng theo yêu cầu hay không, có tối ưu hay không...
Các cấu trúc điều khiển của Visual Basic được sử dụng trong đề tài
- Cấu trúc lệnh IF: cho phép ta rẽ chương trình làm hai nhánh, nếu bạn muốn rẽ nhiều
nhánh thì có thể sử dụng cấu trúc IF lồng vào nhau. Cấu trúc này có hai dạng:
+ Cấu trúc IF không có ElSE
IF Then
...
End IF
+ Cấu trúc IF có ELSE
IF Then
...
ELSE
...
End IF
Trang 40
Một số lệnh của Visual Basic được sử dụng trong đề tài
- Lệnh End: dùng để chấm dứt chương trình đang chạy, khi lệnh này thực hiện thì
các cửa sổ của chương trình sẽ đóng lại và giải phóng khỏi bộ nhớ. Lệnh này
thường sử dụng cho nút lệnh có tên Exit với biến cố Click.
Private Sub KetThuc_Click()
End
End Sub
- Lệnh Exit Sub: lệnh này dùng để thoát khỏi vòng lặp Sub.
Private Sub KetThuc_Click()
If gtbien1.Text = "" Or gtbien3.Text = "" Then
tb = MsgBox("Hay nhap day du so lieu", "Thong Bao")
Exit Sub
End If
End Sub
- Lệnh Load Picture: lệnh này dùng để nạp một hình ảnh vào màn hình Form.
taptin = chuong & bai & ".jpg"
Set cau = LoadPicture(taptin)
Set debai = cau
Đoạn lệnh trên có tác dụng đưa hình ảnh các đề bài lên màn hình form.
Một số hàm của Visual Basic được sử dụng trong đề tài
- Hàm Abs (Number): hàm này là hàm lấy giá trị tuyệt đối của Number.
Private Sub Form_Load()
Dim MyNumber
MyNumber = Abs(50.3)' Returns 50.3.
MyNumber = Abs(-50.3)' Returns 50.3.
End Sub
- Hàm Cos (Number As Double): tính cos của một góc.
Private Sub Form_Load()
Dim MyNumber
MyNumber = cos(number)
End Sub
- Hàm Tan (Number As Double)Tính Tan của một góc.
Private Sub Form_Load()
Dim MyNumber
MyNumber = tan(number)
End Sub
Trang 41
- Hàm Atn (Number As Double): lấy Arctang của một số.
Private Sub Form_Load()
Dim MyNumber
MyNumber = Atn(number)
End Sub
- Hàm Sqr (Number): tính căn bậc hai của một số.
Private Sub Form_Load()
Dim MyNumber
MyNumber = Sqr(number)
End Sub
- Hàm Val (String): chuyển chuỗi string thành số
Private Sub Form_Load()
Dim MyValue
MyValue = Val("2457")' Returns 2457.
MyValue = Val(" 2 45 7")' Returns 2457.
End Sub
3.6) Ví dụ minh họa về phép cộng
Để hiểu rõ hơn về cách tạo một chương trình thì ta làm một ví dụ về phép tính cộng
Bước 1: Dựng các điều khiển lên màn hình Form
Để tạo một chương trình tính tổng hai số thì ta vẽ vào màn hình Form 3 Textbox, 3
CommandButton như Hình 9. Với chức năng của các nút như sau:
Nút tính: tính tổng hai giá trị Số 1 và Số 2. Tổng tính được sẽ được gán vào ô KQ.
Nút tiếp: xóa dữ liệu có sẵn trong các ô textbox.
Nút thoát: đóng màn hình.
Hình 9. Ví dụ Phép cộng
Trang 42
Bước 2 : Đặt tên, giá trị những thuộc tính cần thiết cho các điều khiển trên Form.
Form
Name frmMain
Caption “ Phep Cong”
CommandButton
Name Tinh
Caption “Tính”
Name Tiep
Caption “Tiếp”
Name Thoat
Caption “Thoát”
TextBox
Name So1
Name So2
Name KQ
Bước 3 : Thêm lệnh cho các thủ tục xử lý biến cố.
Private Sub Tinh_Click( )
KQ.Text = Val(So1.Text) + Val(So2.Text)
End Sub
Private Sub Tiep_Click( )
So1.Text = ""
So2.Text = ""
KQ.Text = ""
End Sub
Private Sub Thoat_Click( )
End
End Sub
4. Các thao tác sử dụng phần mềm
- Mở phần mềm, khi đó giao diện xuất hiện (Hình 10).
- Chọn chương trình: có ba tùy chọn Vật lí 10; Vật lí 11; Vật lí 12, nút chương xuất
hiện. Nhưng trong phần mềm này chỉ nêu một số bài tập tiêu biểu về Điện học –
Chương trình Vật lí 11.
Trang 43
Hình 10. Màn hình giao diện khi chọn chương trình
- Chọn chương : gồm Chương 1, Chương 2, Chương 3. Sau khi Click vào chương thì
nút bài hiện lên (Hình 11).
Hình 11. Màn hình giao diện khi chọn chương
- Chọn bài tập trong ô bài tập. Sau đó màn hình sẽ xuất hiện đề bài và các ô nhập liệu
và các nút lệnh ( Tính, Tiếp, Kết thúc, Hướng dẫn ) (Hình 12).
- Dựa vào đề bài hãy chọn giá trị của các biến số nhập vào các ô nhập liệu.
- Bấm nút Tính thì phép toán sẽ được tính và hiện giá trị ở ô kết quả (Hình 13).
- Nếu muốn thay đổi số liệu khác thì nhấn nút Tiếp khi đó các ô nhập liệu sẽ trả về
trống (Hình 14).
- Để biết thêm về cách sử dụng phần mềm thì nhấn vào nút Hướng dẫn. Khi đó trên
màn hình sẽ xuất hiện các hướng dẫn cơ bản cũng như các lỗi khi sử dụng phần
mềm.
- Để thoát khỏi phần mềm thì nhấn nút Kết thúc.
Trang 44
Hình 12. Màn hình giao diện khi đã chọn bài tập
Hình 13. Màn hình giao diện khi đã nhập số liệu và tính
Hình 14. Màn hình giao diện sau khi click Tiếp
Trang 45
Một điểm người dùng cần chú ý là dấu chấm làm dấu thập phân chứ không phải
dấu phẩy. Ta chỉnh ở hệ thống của mỗi máy như sau: Vào Control Panel Regional
and Language Options thẻ Format Customize this format thẻ Numbers
Decimal symbol “dấu chấm”. Hệ thống sẽ hiện dấu chấm làm dấu phân cách thập
phân. Nếu không, chương trình sẽ hoạt động rối loạn.
5. Các kỹ thuật được sử dụng
¾ Xử lí lỗi
- Quá trình thao tác mở, ghi và đọc tập tin như trên sẽ có thể phát sinh lỗi do nhiều
nguyên nhân khác nhau như không tìm thấy tập tin, hay tập tin bị hỏng,
- Mặc nhiên, khi có lỗi phát sinh thì hệ thống sẽ thông báo lỗi nhưng thường rất khó
hiểu và hơn nữa việc cắt ngang chương trình đang chạy như vậy sẽ làm người sử
dụng cảm thấy khó chịu.
- Để khai báo xử lí bẫy lỗi trong một thủ tục hay hàm của chương trình, chúng ta có
thể dùng cấu trúc lệnh chung có dạng như sau :
Private Sub tinh_Click()
Dim tb As Boolean
On Error GoTo thongbao
Exit Sub
thongbao:
tb = MsgBox("Du lieu khong hop li", vbCritical, " Loi nhap lieu")
End Sub
¾ Không cho nhập các ký tự vào ô Textbox
- Để không cho nhập ký tự vào các ô textbox mà chỉ cho nhập số thì ta sử dụng một
đoạn lệnh sau :
Private Sub gtbien2_KeyPress(KeyAscii As Integer)
Dim Tmp As String
Tmp = gtbien2.Text
Select Case Chr$(KeyAscii)
Case "0" To "9", Chr$(8)
Case "-"
If InStr(1, Tmp, "-") = 0 Then
If gtbien2.SelStart > 0 Then
KeyAscii = 0
End If
Else
KeyAscii = 0
Trang 46
End If
Case "."
If InStr(1, Tmp, ".") > 0 Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
- Đoạn lệnh trên có nghĩa là khi một ô nhập liệu nhận một kí tự do người dùng cung
cấp thì đoạn lệnh xem xét kí tự đó có phải từ 0 đến 9, dấu thập phân “.”, dấu trừ “-”
hay không ? Nếu đúng thì nhận còn sai thì loại.
- Trường hợp nếu đã nhập dấu “.” ( hoặc dấu “-”) vào ô Textbox rồi thì không chấp
nhận dấu “.” ( hoặc dấu “-”) thứ hai.
¾ Thông báo lỗi nhập số liệu
- Để thông báo khi chưa nhập đầy đủ số liệu vào các ô nhập số liệu thì ta sử dụng
đoạn lệnh sau :
If gtbien1.Text = "" Or gtbien2.Text = "" Or gtbien3.Text = "" Then
tb = MsgBox("Hay nhap day du so lieu", vbOKOnly, "Thong Bao")
Exit Sub
End If
- Đoạn lệnh này cho biết rằng nếu giá trị biến 1 chưa nhập số liệu hoặc giá trị biến 2
chưa nhập số liệu hoặc giá trị biến 3 chưa nhập số liệu thì chương trình sẽ hiện lên
bảng thông báo với nội dung là “Hay nhap day du so lieu” và nếu người dùng chọn
nút OK thì chương trình sẽ ở trạng thái chờ người sử dụng nhập lại số liệu.
Hình 15. Chương trình báo lỗi
Trang 47
- Ngoài ra chương trình cũng có thể báo lỗi khi thương số bằng 0 và đưa ra các điều
kiện đối với hàm lượng giác.
- Đặc biệt chương trình còn có một số ràng buộc về thông số, ý nghĩa Vật lí.
¾ Hiện đề bài toán lên giao diện
Để hiện đề bài toán lên giao diện ta sử dụng đoạn lệnh sau:
taptin = chuong & bai & ".jpg"
Set cau = LoadPicture(taptin)
Set debai = cau
¾ Chữ chạy trên nền màn hình
Trường hợp này khi thiết lập ta cần có một biểu tượng Timer và một Label. Sau
đó, ta sẽ lập đoạn chương trình cho các dòng chữ trong Label chạy trên màn hình.
Private Sub Timer1_Timer()
Dim x As String
Dim y As String
x = Left(Label4.Caption, 1)
y = Right(Label4.Caption, Len(Label4.Caption) - 1)
Label4.Caption = y + x
End Sub.
¾ Biến đổi giao diện cho phù hợp với từng bài tập cụ thể
Do đặc thù của từng bài toán: mỗi bài có bài có số biến số sử dụng khác nhau, có
bài có 2 biến, có bài có 5 biếnnên giao diện được thiết kế với số cửa sổ nhập dữ
liệu tối đa là 6 và 2 cửa sổ hiện kết quả. Để biến đổi giao diện cho phù hợp với từng
bài thì chúng tôi làm như sau:
- Đặt các ô nhập liệu ở dạng ẩn thông qua thuộc tính Visible = False.
gtbien1.Visible = False
gtbien2.Visible = False
gtbien3.Visible = False
gtbien4.Visible = False
gtbien5.Visible = False
gtbien6.Visible = False
gtkq1.Visible = False
gtkq2.Visible = False
- Để cho các cửa sổ nhập số liệu hiện lên thì ta đặt thuộc tính Visible của cửa sổ cần
hiện = True.
Ví dụ: đối với bài 2 chương 5 (Hình 14) thì có 3 ô nhập số liệu và 1 ô hiện kết quả.
Vậy để hiện 3 ô nhập số liệu và 1 ô hiện kết quả đó thì ta viết một đoạn Code như
sau:
Trang 48
gtbien1.Visible = True
gtbien2.Visible = True
gtbien3.Visible = True
gtkq1.Visible = True
6. Lập trình một số bài tập tiêu biểu
6.1) Vẽ và đặt tên, giá trị cho các đối tượng trên màn hình Form
Trước tiên chúng tôi sẽ vẽ lên màn hình Form các control cần thiết cho chương
trình như:
- Textbox có 25 đối tượng
+ TextBox1: Name là bien1, thuộc tính Text là rỗng.
+ TextBox2: Name là bien2, thuộc tính Text là rỗng.
+ TextBox3: Name là bien3, thuộc tính Text là rỗng.
+ TextBox4: Name là bien4, thuộc tính Text là rỗng.
+ TextBox5: Name là bien5, thuộc tính Text là rỗng.
+ TextBox6: Name là bien6, thuộc tính Text là rỗng.
+ TextBox7: Name là donvibien1, thuộc tính Text rỗng.
+ TextBox8: Name là donvibien2, thuộc tính Text rỗng.
+ TextBox9: Name là donvibien3, thuộc tính Text rỗng.
+ TextBox10: Name là donvibien4, thuộc tính Text rỗng.
+ TextBox11: Name là donvibien5, thuộc tính Text rỗng.
+ TextBox12: Name là donvibien6, thuộc tính Text rỗng.
+ TextBox13: Name là gtbien1, thuộc tính Text rỗng.
+ TextBox14: Name là gtbien2, thuộc tính Text rỗng.
+ TextBox15: Name là gtbien3, thuộc tính Text rỗng.
+ TextBox16: Name là gtbien4, thuộc tính Text rỗng.
+ TextBox17: Name là gtbien5, thuộc tính Text rỗng.
+ TextBox18: Name là gtbien6, thuộc tính Text rỗng.
+ TextBox19: Name là kq1, thuộc tính Text rỗng.
+ TextBox20: Name là kq2, thuộc tính Text rỗng.
+ TextBox21: Name là donvikq1, thuộc tính Text rỗng.
+ TextBox22: Name là donvikq, thuộc tính Text rỗng.
+ TextBox23: Name là gtkq1, thuộc tính Text rỗng.
+ TextBox24: Name là gtkq, thuộc tính Text rỗng.
Trang 49
+ TextBox25: Name là Text1, thuộc tính Text rỗng.
- Combobox gồm 5 đối tượng
+ Combo Box 1: Name là Chuongtrinh, thuộc tính List là Vật lí 10, Vật lí 11, Vật
lí 12.
+ Combo Box 2: Name là Combo2, thuộc tính List là 1, 2, 3.
+ Combo Box 3: Name là Combo3, thuộc tính List là từ 1 → 20.
+ Combo Box 4: Name là Combo4, thuộc tính List là từ 1 → 20.
+ Combo Box 5: Name là Combo5, thuộc tính List là từ 1 → 15.
- CommandButton gồm 4 đối tượng
+ CommandButton 1: Name là tinh, thuộc tính Caption là Tính.
+ CommandButton 2: Name là ketthuc, thuộc tính Caption là Kết Thúc.
+ CommandButton 3: Name là tiep, thuộc tính Caption là Tiếp.
+ CommandButton 4: Name là huongdan, thuộc tính Caption là Hướng Dẫn.
- Lable gồm 4 đối tượng
+ Label1: Name là Label1, thuộc tính Caption là Chương trình
+ Label2: Name là Label2, thuộc tính Caption là Chương.
+ Label3: Name là Label3, thuộc tính Caption là Bài tập.
+ Label4: Name là Label4, thuộc tính Caption là Kết quả.
- Image gồm 2 đối tượng
+ Image 1: Name là nengd.
+ Image 2: Name là đebai.
+ Image 3: Name là donvibien3.
+ Image 4: Name là donvikq1.
+ Image 5: Name là nenbs.
+ Image 6: Name là nenkq.
- Timer có một đối tượng: Name là Timer.
Để thuận lợi cho việc viết Code thì ta đặt các biến mới và khai báo cho biến đó.
Chẳng hạn:
Dim chuong, bai, taptin As String
Dim cau As New StdPicture
Với taptin = chuong&bai.jpg
6.2) Viết Code cho các đối tượng
Combobox: Chương trình
Trang 50
Private Sub chuongtrinh_Click()
If chuongtrinh.ListIndex = 1 Then Combo2.Enabled = True
If chuongtrinh.ListIndex = 0 Or chuongtrinh.ListIndex = 2 Then
Dim tb As Integer
tb = MsgBox(" Chuong trinh chua cap nhat ", vbCritical, "Thong Bao")
End If
End Sub
Đoạn lệnh này cho biết: nếu chuongtrinh.ListIndex = 1 ( hay ta click chọn
chương trình Vật lí 11) thì Combo2 đang mờ sẽ hiện lên, còn nếu click chọn Vật lí
10 hay Vật lí 12 thì chương trình sẽ hiện bảng thông báo với nội dung là “ Chuong
trinh cât cap nhat ”.
Combobox: Chương
Private Sub Combo2_Click()
If Combo2.ListIndex = 0 Then
Combo3.Visible = True
Combo4.Visible = False
Combo5.Enabled = False
End If
If Combo2.ListIndex = 1 Then
Combo4.Visible = True
Combo3.Visible = False
Combo5.Enabled = False
End If
If Combo2.ListIndex = 2 Then
Combo5.Enabled = True
Combo4.Visible = False
Combo3.Visible = False
End If
If Combo2.ListIndex = 0 Then chuong = "01"
If Combo2.ListIndex = 1 Then chuong = "02"
If Combo2.ListIndex = 2 Then chuong = "03"
Set debai = LoadPicture("bia2.jpg")
End Sub
Đoạn lệnh này nói lên rằng:
- Khi Combo2 được click thì hình có tên bia2.jpg sẽ hiện lên màn hình giao diện.
- Nếu Combo2.Listindex = 0 (hay click vào 01) thì Combo3 sẽ hiện còn Combo4,
Combo5 sẽ ẩn và chuong sẽ là “01”.
Trang 51
- Nếu Combo2.Listindex = 1 (hay click vào 02) thì Combo4 sẽ hiện còn Combo3,
Combo5 sẽ ẩn và chuong sẽ là “02”.
- Nếu Combo2.Listindex = 2 (hay click vào 03) thì Combo5 sẽ hiện còn Combo3,
Combo4 sẽ ẩn và chuong sẽ là “03”.
Sau đây chúng tôi sẽ viết Code đối với Bài tập 3, Chương 1, Chương trình
Vật lí 11. Đề bài có nội dung sau:
1.3/ Hai quả cầu kim loại giống nhau, có khối lượng 5g, được treo vào cùng một điểm O
bằng sợi dây chỉ không dãn, dài 10 cm. Hai quả cầu tiếp xúc với nhau. Tích điện cho
một quả cầu thì thấy hai quả cầu đẩy nhau cho đến khi hai dây treo hợp với nhau một
góc 600. Tính điện tích mà ta đã truyền cho các quả cầu. Lấy g = 10m/s2.
Bài giải
Điều kiện cân bằng của quả cầu: T
ur
+ P
ur
+ F
r
= 0
Khi đó ta có:
2
2
F k.qtan
2 P l .mg
α = = .
Suy ra
( ) 022 3 2
7
9
60m.g.l . tan 5.10 .10 10.10 tan
2 2q 1,79.10 C
k 9.10
− −
−
α
= = =
Điện tích mà ta truyền cho các quả cầu là
Q = 2.q = 2.1,79.10-7 = 3,58.10-7 (C)
- Ở bài này có 3 biến số và một kết quả nên ta sẽ thiết kế giao diện có 3 cửa sổ nhập liệu
và 1 ô hiện kết quả. Vậy ta sẽ chọn 3 ô nhập liệu và 1 ô hiện kết quả cho nó hiện lên
còn các ô còn lại sẽ ẩn đi thông qua thuộc tính Visible của Textbox.
- Mặt khác, các biến số có biến thuộc font chử VNI – times, có biến thuộc font chử
symbol nên để cho các biến số hiện đúng như biến số được nêu ở đề bài thì ta dùng
thuộc tính FontName của Textbox.
- Để hiện các biến số ( m, l, α ) và đơn vị ( g, cm, 0 ) lên màn hình giao tiếp thì ta sử
dụng thuộc tính Text của Textbox.
- Nhưng để hiện được đúng đề bài tập này lên màn hình khi ta chọn Chương trình Vật lí
11, chương 1 và bài tập 3 thì ta phải đặt các đoạn Code trên trong câu lệnh IF và đoạn
lệnh này phải được đặt ở nút Combo3.
Private Sub Combo3_Click()
If Combo3.ListIndex = 0 Then bai = "01"
If Combo3.ListIndex = 1 Then bai = "02"
If Combo3.ListIndex = 2 Then bai = "03"
If Combo3.ListIndex = 3 Then bai = "04"
If Combo3.ListIndex = 4 Then bai = "05"
Trang 52
If Combo3.ListIndex = 5 Then bai = "06"
If Combo3.ListIndex = 6 Then bai = "07"
If Combo3.ListIndex = 7 Then bai = "08"
If Combo3.ListIndex = 8 Then bai = "09"
If Combo3.ListIndex = 9 Then bai = "10"
If Combo3.ListIndex = 10 Then bai = "11"
If Combo3.ListIndex = 11 Then bai = "12"
If Combo3.ListIndex = 12 Then bai = "13"
If Combo3.ListIndex = 13 Then bai = "14"
If Combo3.ListIndex = 14 Then bai = "15"
If Combo3.ListIndex = 15 Then bai = "16"
If Combo3.ListIndex = 16 Then bai = "17"
If Combo3.ListIndex = 17 Then bai = "18"
If Combo3.ListIndex = 18 Then bai = "19"
If Combo3.ListIndex = 19 Then bai = "20"
gtbien1.Text = ""
gtbien2.Text = ""
gtbien3.Text = ""
gtbien4.Text = ""
gtbien5.Text = ""
gtbien6.Text = ""
gtkq1.Text = ""
gtkq2.Text = ""
tinh.Visible = True
tiep.Visible = True
Label4.Visible = True
nenbs.Visible = True
nenkq.Visible = True
Text1.Visible = True
taptin = chuong & bai & ".jpg"
Set cau = LoadPicture(taptin)
Set debai = cau
If taptin = "0103.jpg" Then
bien1.FontName = "VNI-times"
bien3.FontName = "symbol"
bien4.FontName = "VNI-times"
donvibien1.FontName = "VNI-times"
Trang 53
donvibien3.FontName = "VNI-times"
donvibien4.FontName = "VNI-times"
kq1.FontName = "VNI-times"
donvikq1.FontName = "VNI-times"
bien1.Visible = True
gtbien1.Visible = True
donvibien1.Visible = True
bien2.Visible = False
gtbien2.Visible = False
donvibien2.Visible = False
bien3.Visible = True
gtbien3.Visible = True
donvibien3.Visible = True
bien4.Visible = True
gtbien4.Visible = True
donvibien4.Visible = True
bien5.Visible = False
gtbien5.Visible = False
donvibien5.Visible = False
bien6.Visible = False
gtbien6.Visible = False
donvibien6.Visible = False
kq1.Visible = True
gtkq1.Visible = True
donvikq1.Visible = True
kq2.Visible = False
gtkq2.Visible = False
donvikq2.Visible = False
bien1.Text = "l ="
bien3.Text = "a ="
bien4.Text = "m ="
kq1.Text = "Q ="
donvibien1.Text = "(cm)"
donvibien3.Text = "(o)"
donvibien4.Text = "(g)"
donvikq1.Text = "10^-8 (C)"
bien1.FontName = "VNI-times"
Trang 54
bien3.FontName = "symbol"
bien4.FontName = "VNI-times"
donvibien1.FontName = "VNI-times"
donvibien3.FontName = "VNI-times"
donvibien4.FontName = "VNI-times"
kq1.FontName = "VNI-times"
donvikq1.FontName = "VNI-times"
End If
End Sub
- Đoạn lệnh nói lên rằng nếu ta chọn chương trình Vật lí 11, Chương 1, Bài tập 3 [khi
đó taptin (hay tên đề bài) là 0103.jpg] thì màn hình giao diện sẽ hiển thị đề bài và hiển
thị các biến số 1, 3, 4; giá trị của biến số 1, 3, 4; đơn vị biến 1, 3, 4; kết quả quả 1, giá
trị kết quả 1 và đơn vị kết quả 1. Còn các biến số, giá trị, đơn vị của các biến sô khác
sẽ ẩn. Lúc đó màn hình giao diện có dạng như Hình 16.
Hình 16. Màn hình đề bài bài 3 chương 1
Viết Code cho nút Tính
Khi ta nhập đủ số liệu vào ô nhập liệu và click vào nút Tính thì ở ô kết quả sẽ hiển
thị kết quả của phép tính. Để làm được việc này thì nhờ vào đoạn Code sau đây:
Private Sub tinh_Click()
a1 = Val(gtbien1.Text)
a2 = Val(gtbien2.Text)
a3 = Val(gtbien3.Text)
a4 = Val(gtbien4.Text)
a5 = Val(gtbien5.Text)
a6 = Val(gtbien6.Text)
k1 = Val(gtkq1.Text)
Trang 55
k2 = Val(gtkq2.Text)
If taptin = "0103.jpg" Then
If gtbien1.Text = "" Or gtbien3.Text = "" Or gtbien4.Text = "" Then
tb = MsgBox(" Hay nhap day du so lieu ", vbCritical, "Thong Bao")
Exit Sub
End If
If a4 < 0 Or a4 = 0 Then
tb = MsgBox("m chi nhan gia tri > 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien4.Text = ""
Exit Sub
End If
If a1 < 0 Or a1 = 0 Then
tb = MsgBox("l chi nhan gia tri > 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien1.Text = ""
Exit Sub
End If
If a3 180 Then
tb = MsgBox("Anpha chi nhan gia tri tu 0 den 180. Xin hay
nhap lai!", vbCritical, "Thong Bao")
gtbien3.Text = ""
End If
If a3 = 180 Then
tb = MsgBox("Anpha phai khac 180. Xin hay nhap lai!",
vbCritical, "Thong Bao")
gtbien3.Text = ""
End If
q = Tan(a3 * 3.141 / (180 * 2))
k1 = ((a4 * 10 * a1 ^ 2 * q / 9) ^ 0.5) * 2
gtkq1.Text = Val(k1)
End If
End Sub
Đoạn Code này cho biết rằng: nếu taptin = 0103.jpg (chương 1 bài tập 3) thì chương
trình sẽ kiểm tra tiếp xem các biến số nhập vào có thỏa mãn điều kiện Toán học, điều kiện
Vật lí hay không? Nếu không thỏa mãn thì chương trình sẽ báo lỗi, còn nếu thỏa mãn thì
kết quả bài toán sẽ được tính theo công thức:
q = Tan(a3 * 3.141 / (180 * 2))
k1 = ((a4 * 10 * a1 ^ 2 * q / 9) ^ 0.5) * 2
Ở bài tập này: m là khối lượng của quả cầu kim loại nên m không thể âm và không thể
bằng không. Do đó, khi người dùng nhập vào giá trị m là 1 số < 0 hay = 0 thì chương trình
Trang 56
phải thông báo lỗi để người dùng biết và sửa lỗi. Để thực hiện được điều này ta sử dụng
đoạn Code sau:
If a4 < 0 Or a4 = 0 Then
tb = MsgBox(" m chi nhan gia tri > 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien4.Text = ""
Exit Sub
End If
Tương tự, l là chiều dài sợi dây nên chỉ nhận giá trị > 0 và gócα trong trường hợp này
chỉ được nhận giá trị 0 < α < 1800. Do đó chúng ta cũng phải thông báo lỗi khi người dùng
nhập số liệu không phù hợp và xóa giá trị không phù hợp đó. Và chúng tôi đã thực hiện
điều bằng cách sử dụng đoạn Code sau:
If a1 < 0 Or a1 = 0 Then
tb = MsgBox("l chi nhan gia tri > 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien1.Text = ""
Exit Sub
End If
If a3 180 Then
tb = MsgBox("Anpha chi nhan gia tri tu 0 den 180. Xin hay nhap
lai!", vbCritical, "Thong Bao")
gtbien3.Text = ""
Exit Sub
End If
If a3 = 180 Then
tb = MsgBox("Anpha phai khac 180. Xin hay nhap lai!", vbCritical,
"Thong Bao")
gtbien3.Text = ""
Exit Sub
End If
Trong đoạn Code trên có sử dụng hàm Val nhằm mục đích biến đổi dữ liệu ở dạng
chuỗi thành dạng số để đưa vào phép tính.
Viết Code cho nút Tiếp
Nút tiếp có tác dụng là xóa các số liệu đã nhập ở các ô nhập liệu để người dùng
có thể thay thế số liệu khác. Việc này được thực hiện thông qua đoạn Code sau:
Private Sub tiep_Click()
gtbien1.Text = ""
gtbien2.Text = ""
gtbien3.Text = ""
gtbien4.Text = ""
Trang 57
gtbien5.Text = ""
gtbien6.Text = ""
gtkq1.Text = ""
gtkq2.Text = ""
End Sub
Viết Code cho nút Kết thúc
Nút Kết thúc có tác dụng là khi ta click vào nó thì sẽ tắt chương trình. Đoạn
Code của lệnh này được viết như sau:
Private Sub KetThuc_Click()
End
End Sub
Viết Code cho nút Hướng Dẫn
Khi click vào nút Hướng Dẫn thì trên màn hình sẽ hiện lên cách sử dụng phần
mềm, nếu muốn thoát thì click vào nút Trở về. Đoạn Code được viết cho đối tượng
này như sau:
Private Sub HuongDan_Click()
Picture1.Visible = True
Command1.Visible = True
End Sub
Đối với Bài tập 19, Chương 2, Chương trình Vật lí 11.
2.19./ Hai nguồn điện có suất điện động và điện trở trong tương ứng là E1 = 3V; r1 = 0,6Ω
và E2 = 1,5 V; r2 = 0,4Ω được mắc với điện trở R = 4Ω thành mạch kín có sơ đồ như
hình.
a) Tính cường độ dòng điện chạy trong mạch.
b) Tính hiệu điện thế giữa hai cực của nguồn 1.
Bài giải
a) Ta có : Eb = E1 + E2 = 3 + 1,5 = 4,5 (V)
rb = r1 + r2 = 0,6 + 0,4 = 1 (Ω )
Áp dụng định luật ôm đối với toàn mạch ta có :
b
b
E 4,5I 0,9 ( )
R r 4 1
= = = Ω+ +
b) Hiệu điện thế giữa hai cực của nguồn 1:
U1 = E1 – I.r1 = 3 – 0,9.0,6 = 2,46 (V)
E1, r1 E2, r2
R
Trang 58
Hình 17. Giao diện của bài tập 19 chương 2
Private Sub Combo4_Click()
If Combo4.ListIndex = 0 Then bai = "01"
If Combo4.ListIndex = 1 Then bai = "02"
If Combo4.ListIndex = 2 Then bai = "03"
If Combo4.ListIndex = 3 Then bai = "04"
If Combo4.ListIndex = 4 Then bai = "05"
If Combo4.ListIndex = 5 Then bai = "06"
If Combo4.ListIndex = 6 Then bai = "07"
If Combo4.ListIndex = 7 Then bai = "08"
If Combo4.ListIndex = 8 Then bai = "09"
If Combo4.ListIndex = 9 Then bai = "10"
If Combo4.ListIndex = 10 Then bai = "11"
If Combo4.ListIndex = 11 Then bai = "12"
If Combo4.ListIndex = 12 Then bai = "13"
If Combo4.ListIndex = 13 Then bai = "14"
If Combo4.ListIndex = 14 Then bai = "15"
If Combo4.ListIndex = 15 Then bai = "16"
If Combo4.ListIndex = 16 Then bai = "17"
If Combo4.ListIndex = 17 Then bai = "18"
If Combo4.ListIndex = 18 Then bai = "19"
If Combo4.ListIndex = 19 Then bai = "20"
Picture1.Visible = False
gtbien1.Text = ""
gtbien2.Text = ""
gtbien3.Text = ""
Trang 59
gtbien4.Text = ""
gtbien5.Text = ""
gtbien6.Text = ""
gtkq1.Text = ""
gtkq2.Text = ""
tinh.Visible = True
tiep.Visible = True
Label4.Visible = True
nenbs.Visible = True
nenkq.Visible = True
Text1.Visible = True
taptin = chuong & bai & ".jpg"
Set cau = LoadPicture(taptin)
Set debai = cau
Imagedvkq1.Visible = False
Imagedvbien3.Visible = False
If taptin = "0219.jpg" Then
bien1.FontName = "VNI-times"
bien2.FontName = "VNI-times"
bien3.FontName = "VNI-times"
bien4.FontName = "VNI-times"
bien5.FontName = "VNI-times"
donvibien1.FontName = "symbol"
donvibien2.FontName = "symbol"
donvibien3.FontName = "VNI-times"
donvibien4.FontName = "VNI-times"
donvibien5.FontName = "symbol"
kq1.FontName = "VNI-times"
donvikq1.FontName = "VNI-times"
kq2.FontName = "VNI-times"
donvikq2.FontName = "VNI-times"
bien1.Visible = True
gtbien1.Visible = True
donvibien1.Visible = True
bien2.Visible = True
gtbien2.Visible = True
donvibien2.Visible = True
bien3.Visible = True
gtbien3.Visible = True
Trang 60
donvibien3.Visible = True
bien4.Visible = True
gtbien4.Visible = True
donvibien4.Visible = True
bien5.Visible = True
gtbien5.Visible = True
donvibien5.Visible = True
bien6.Visible = False
gtbien6.Visible = False
donvibien6.Visible = False
kq1.Visible = True
gtkq1.Visible = True
donvikq1.Visible = True
kq2.Visible = True
gtkq2.Visible = True
donvikq2.Visible = True
bien1.Text = "r1 ="
bien2.Text = "r2 ="
bien3.Text = "E1 ="
bien4.Text = "E2 ="
bien5.Text = "R ="
kq1.Text = "I ="
kq2.Text = "U1 ="
donvibien1.Text = "(W)"
donvibien2.Text = "(W)"
donvibien3.Text = "(V)"
donvibien4.Text = "(V)"
donvibien5.Text = "(W)"
donvikq1.Text = "(A)"
donvikq2.Text = "(V)"
bien1.FontName = "VNI-times"
bien2.FontName = "VNI-times"
bien3.FontName = "VNI-times"
bien4.FontName = "VNI-times"
bien5.FontName = "VNI-times"
donvibien1.FontName = "symbol"
donvibien2.FontName = "symbol"
donvibien3.FontName = "VNI-times"
donvibien4.FontName = "VNI-times"
Trang 61
donvibien5.FontName = "symbol"
kq1.FontName = "VNI-times"
donvikq1.FontName = "VNI-times"
kq2.FontName = "VNI-times"
donvikq2.FontName = "VNI-times"
End If
If taptin = "0219.jpg" Then
If gtbien1.Text = "" Or gtbien2.Text = "" Or gtbien3.Text = "" Or
gtbien4.Text = "" Or gtbien5.Text = "" Then
tb = MsgBox(" Hay nhap day du so lieu ", vbCritical,
"Thong Bao")
Exit Sub
End If
If a3 < 0 Then
tb = MsgBox("E1 khong nhan gia tri < 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien3.Text = ""
Exit Sub
End If
If a4 < 0 Then
tb = MsgBox("E2 khong nhan gia tri < 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien4.Text = ""
Exit Sub
End If
If a1 < 0 Then
tb = MsgBox("r1 khong nhan gia tri < 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien1.Text = ""
Exit Sub
End If
If a2 < 0 Then
tb = MsgBox("r2 khong nhan gia tri < 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien2.Text = ""
Exit Sub
End If
If a5 < 0 Then
tb = MsgBox("R khong nhan gia tri < 0. Xin hay nhap lai !",
vbCritical, "Thong Bao")
gtbien5.Text = ""
Exit Sub
Trang 62
End If
If a1 = 0 And a2 = 0 And a5 = 0 Then
tb = MsgBox("r1, r2, R phai dong thoi khac 0. Xin hay nhap lai
!", vbCritical, "Thong Bao")
gtbien1.Text = ""
gtbien2.Text = ""
gtbien5.Text = ""
Exit Sub
End If
q = a3 + a4
F = a1 + a2
k1 = q / (a5 + F)
gtkq1.Text = Val(k1)
k2 = a3 - k1 * a1
gtkq2.Text = Val(k2)
End If
Đối với 2 bài tập được trình bày ở trên, ta thấy hai bài tập có số biến số khác nhau. Vì
vậy, chúng ta phải thiết kế cho phù hợp với từng bài cụ thể.
7. Thử nghiệm
Sau khi hoàn thành phần mềm chúng tôi đã giới thiệu đến một số sinh viên sư phạm
Vật lí và nhờ họ sử dụng phần mềm. Với mục đích là nhằm kiểm tra lại hoạt động của
chương trình và để phát hiện xem có gặp lỗi gì khác trong khi chạy chương trình hay
không? Để chúng tôi kịp thời khắc phục.
Sau khi được thử nghiệm và chúng tôi đã phát hiện thêm được một số lỗi như:
- Người dùng có thể thay đổi các biến số trên giao diện.
- Khi chuyển từ bài này sang bài khác thì các biến số bị thay đổi font.
- Giao diện chương trình khi sử dụng ở những máy tính có màn hình 14 inch thì giao
diện quá lớn so với màn hình.
Sau đó chúng tôi đã tìm cách khắc phục những khuyết điểm đó và đã thực hiện được:
- Đối với lỗi người dùng có thể thay đổi các biến số thì chúng tôi khắc phục bằng cách
đặt thuộc tính Locked = True ở những ô Textbox chứa các biến số để khóa không cho
người dùng thay đổi.
- Để khắc phục sự thay đổi font khi chuyển từ bài này sang bài khác thì chúng tôi đã sử
dụng thuộc tính FontName của Textbox và chặn ở hai đầu của mỗi bài.
- Còn đối với kích cỡ của giao diện thì chúng tôi đã sử dụng máy tính màn hình 14 inch
để thiết kế sao cho vừa với màn hình 14 inch, khi đó đối với bất kỳ máy tính nào thì
giao diện chương trình cũng không bị khuất mất.
Trang 63
Trang 64
1. Kết Quả Đạt Được
Qua thời gian nghiên cứu tôi nhận thấy Visual Basic 6.0 là một trong những phần mềm
hiện nay đang được ứng dụng rất nhiều trong lĩnh vực giáo dục và nhất là trong lĩnh vực lập
trình. Một ưu điểm của việc lập trình trong môi trường Visual Basic 6.0 là chương trình có
thể được biên dịch thành phần mềm hoàn chỉnh, đóng gói gọn gàng và chạy được trên hầu
hết các máy tính sử dụng hệ điều hành Window với nhiều phiên bản khác nhau từ
window98 đến window xp và nhất là cả các máy có cấu hình thấp. Điều này đã được tính
đến trước khi tiến hành nghiên cứu lập trình. Cần phải trình bày thêm là nếu kết hợp với
phần mềm Install Creator, sản phẩm sẽ được chuyển thành một tập tin duy nhất tự động cài
đặt vào máy mà không cần một can thiệp nào của người dùng khiến cho phần mềm có đủ
sức hấp dẫn như các phần mềm thương phẩm khác.
Sau một thời gian nghiên cứu, chúng tôi đã hoàn thành các nhiệm vụ đặt ra như:
Chọn lựa và giải một số bài tập tiêu biểu của phần Điện học – chương trình Vật lí 11 cơ
bản.
Biên soạn được phần mềm với tính năng: đưa được những bài tập vào phần mềm và các
ô nhập liệu, sau khi nhập đầy đủ số liệu vào ô nhập liệu và nhấn nút Tính thì sẽ hiện kết quả
bài toán ở ô kết quả.
Với phần mềm này sẽ giúp ích cho giáo viên trong việc soạn nhiều bài tập trắc nghiệm.
Vì với nội dung bài toán này, giáo viên chỉ cần thay đổi số liệu và nhấn nút Tính thì sẽ hiện
ra kết quả chứ không cần phải lập công thức tính rồi dùng máy tính tay để tính cho mỗi lần
soạn bài.
Đặc điểm này của phần mềm nó đã tiết kiệm được rất nhiều thời gian cho giáo viên.
2. Hạn Chế Của Phần Mềm
Trang 65
Tuy nhiên phần mềm vẫn còn một hạn chế gây trở ngại cho người dùng đó là: không
thể Copy hay Cut đề bài để Paste vào Word.
Mặc dù đã hết sức cố gắng nhưng chắc chắn đề tài không thể tránh khỏi những hạn chế.
Kính mong sự góp ý của thầy cô và các bạn.
Trong tương lai chúng tôi sẽ tiếp tục nghiên cứu để hoàn thiện hơn phần mềm này như:
chuẩn bị các bài tập nhiều hơn, đa dạng và phong phú hơn đặc biệt là cố gắng khắc phục
vấn đề phần mềm chưa tương tác và mang chuyển được với các phần mềm khác. Nhằm để
phục vụ tốt hơn trong công việc soạn đề kiểm tra trắc nghiệm của giáo viên.
3. Những Kiến Nghị
Mong được sự giúp đỡ của Trường để phổ biến phần mềm này đến nhiều người sử dụng
nhằm mục đích thu hồi kết quả. Để từ đó có hướng khắc phục những nhược điểm của phần
mềm.
Mong Trường tạo điều kiện cho các Sinh viên ngành sư phạm Vật lí ở các khóa sau tiếp
tục hoàn thiện phần mềm này và mở rộng thêm ở chương trình Vật lí 12, cao hơn nữa là
chương trình Vật lí của Đại học.
Nếu có thể được, mong Trường đưa học phần Visual Basic trở thành học phần chính
thức của chuyên ngành sư phạm Vật lí.
TÀI LIỆU THAM KHẢO
[1] Lương Duyên Bình; Vũ Quang; Nguyễn Xuân Chi; Bùi Quang Hân; Đoàn Duy Hinh.
2007. “Vật lí 11 cơ bản”.Hà Nội: NXB giáo dục.
[2] Lương Duyên Bình; Vũ Quang; Nguyễn Xuân Chi; Bùi Quang Hân; Đoàn Duy Hinh.
2007. “Bài Tập Vật lí 11 cơ bản”. Hà Nội: NXB giáo dục.
[3] Đặng Thế Khoa. 2001. “Lập Trình Ứng Dụng Visual Basic 6.0”. NXB Đại Học Quốc
Gia TP. Hồ Chí Minh.
[4] Vũ Thị Phát Minh; Châu Văn Tạo; Nguyễn Đăng Khoa; Võ Thị Mai Thuận. 2007.
“Giải Bài Tập Vật lí 11”. TP. Hồ Chí Minh: NXB Đại Học Quốc Gia TP. Hồ Chí Minh.
[5] Võ Hiếu Nghĩa. 2000. “Các Chương Trình Mẫu Visual Basic 6.0”. NXB Thống Kê.
[6] Trần Thể. 2005. “Phương Pháp Dạy Học Vật Lý ”. Trường Đại Học An Giang.
[7] Trần Thể. 2006. “Bài Tập Vật lí Phổ Thông”. Trường Đại Học An Giang.
[8] Lê Văn Thông. 2007. “Phương Pháp Giải Toán Vật lí 11 nâng cao”. TP. Hồ Chí Minh:
NXB Đại Học Quốc Gia TP. Hồ Chí Minh.
[9] Lê Văn Thông. 2007. “Ôn Luyện Bài Tập Vật lí 11 Chương Trình Cơ Bản”. TP. Hồ Chí
Minh: NXB Đại Học Quốc Gia TP. Hồ Chí Minh.
[10] Tác giả: iVB Group. Phần Mềm Tin Học “Visual Basic Library – Version 2.4.0 ”.
Trang 66
( Email: ivb@caulacbovb.com hoặc ivbgroup@gmail.com;
Website: www.caulacbovb.com hoặc www.vblib.caulacbovb.com )
Giảng viên hướng dẫn
ThS. Giang Văn Phúc
Các file đính kèm theo tài liệu này:
- XT1232.pdf