Đề 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

Ở 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.

pdf70 trang | Chia sẻ: baoanh98 | Ngày: 11/12/2018 | Lượt xem: 461 | Lượt tải: 0download
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:

  • pdfXT1232.pdf