Các thao tác sử dụng phần mềm

Một phần của 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” docx (Trang 46 - 70)

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

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.

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

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

< Tập hợp các lệnh có thể gây lỗi > 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

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.

- 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ến…nê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:

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.

+ 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

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,

- 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: Tur + Pur + Fr = 0 Khi đó ta có: 2 2 F k.q tan 2 P l .mg α = = . Suy ra ( )2 0 2 3 2 7 9 60 m.g.l .tan 5.10 .10 10.10 tan 2 2 q 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"

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"

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)"

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)

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 < 0 Or 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

Một phần của 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” docx (Trang 46 - 70)