Đề 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ý 10 cơ bản phần Nhiệt học

Nhiệm vụ của ta lúc này là Click vào nút OK, sau đó con trỏ sẽ di chuyển đến vị trí các ô nhập liệu cần thiết để ta có thể nhập các số liệu vào tính toán. Công việc chuẩn bị, thiết lập các đề bài, xây dựng mối quan hệ giữa các nút điều khiển và thiết lập được giao diện của các bài tập cụ thể. Yêu cầu cần thiết cho công việc tiếp theo là ta nhập các số liệu vào các đối tượng Text nhập liệu và thực hiện tính toán để đưa ra một kết quả hợp lý và phù hợp với từng điều kiện của bài toán.

pdf60 trang | Chia sẻ: baoanh98 | Lượt xem: 1014 | 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ý 10 cơ bản phần Nhiệt học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i với kết quả hoàn toàn mới để cung cấp cho học sinh. Như vậy, dưới đây tôi sẽ đưa ra một số bài toán đã được lập trình rồi, từ đó nó có thể xem là tài liệu tham khảo cho các giáo viên và sinh viên. ***************** Trang 24 B - THỰC NGHIỆM NGÔN NGỮ LẬP TRÌNH VISUAL VỚI MỘT SỐ BÀI TẬP CỤ THỂ CỦA PHẦN NHIỆT HỌC LỚP 10 CƠ BẢN I. ÁP DỤNG KIẾN THỨC CỦA VISUAL BASIC VÀO LẬP TRÌNH MỘT SỐ BÀI TẬP Ở SÁCH BÀI TẬP VẬT LÝ 10 CƠ BẢN PHẦN NHIỆT HỌC: 1. Công việc chuẩn bị cho lập trình Mỗi một bài tập đều có một đặc thù và có cách giải riêng của nó. Để chuẩn bị cho việc lập trình được một bài tập như ý muốn thì trước tiên tôi phải có đề bài, có cả cách giải bài tập đó dưới dạng một văn bản Word. Sau đó sử dụng chương trình PrimoPDF để chuyển toàn bộ File Word sang File PDF. * Đặc điểm của File PDF: Đây là một ứng dụng đặc sắc, cho phép xuất bản PDF chất lượng cao và hỗ trợ mọi chương trình có sử dụng lệnh in, từ bộ phần mềm điện toán văn phòng của Microsoft cho đến các trình biên tập ảnh số Primo PDF còn giúp chúng ta dễ dàng tối ưu hóa chất lượng xuất bản PDF theo hướng sát với mục đích sử dụng (để xem, in ra giấy, làm sách điện tử, chế bản), gia tăng độ bảo mật dữ liệu (phải mở tập tin bằng mật khẩu, mã hóa dữ liệu, cấm in ra giấy, chống sao chép nội dung vào Clipboard), không đóng dấu nước lên tập tin xuất, đặc biệt còn cho phép ghép nhiều tập tin PDF rời rạc thành một tập tin duy nhất. Như vậy, với một máy tính thông thường chúng ta sẽ cài đặt chương trình Adobe Reader 7.0 để đọc và hiển thị được File PDF. Một phần không thể thiếu trong quá trình lập trình là máy tính phải cài đặt thêm chương trình Corel Graphics Suite 11 trong đó có phần mềm Corel PHOTO-PAINT 11, để sử dụng lệnh cắt trong File PDF và chuyển sang Corel PHOTO-PAINT 11 dán vào và lưu lại với File dạng hình ảnh có tên (*.jpg). Một phần không thể thiếu và nó có vai trò rất quan trọng là máy tính phải được cài đặt chương trình của Visual Basic 6.0, để từ đó chúng ta có thể lập trình được những chương trình khá quan trọng phù hợp với từng nhu cầu của công việc. Nghiên cứu các kiến thức cơ sở của Visual Basic 6.0. Làm một số bài tập ứng dụng của Visual Basic 6.0. 2. Quá trình lập trình 2.1. Thiết kế giao diện Bài tập Vật lý là một phần rất quan trọng trong bộ môn Vật lý. Vì vậy, để lập trình được một loạt các bài tập theo chương trình phổ thông dưới ứng dụng của Visual Basic. Tôi chọn một số bài tập tiêu biểu, đại diện cho từng chương trong phần giới hạn đề tài mà tôi nghiên cứu. Tuy với số lượng bài tập có giới hạn nhưng mỗi bài đều có một nét riêng và một đặc trưng riêng cần nghiên cứu. Phần Nhiệt học cuả chương trình lớp 10 cơ bản có 3 chương nên tôi quyết định chọn 15 bài tập trong chương V, 10 bài tập trong chương VI và 15 bài tập trong chương VII ở sách bài tập để lập trình. Dưới đây là một số bài tiêu biểu cho từng chương: 29.8. Tính khối lượng khí oxi đựng trong bình thể tích 10lit dưới áp suất 150atm ở nhiệt độ 0oC. Biết ở điều kiện chuẩn khối lượng riêng của oxi là 1,43 kg/m3. Giải Trang 25 Biết 0 0 m V ρ = và m V ρ = suy ra 0 0V Vρ ρ= (1) Mặt khác 0 0PV PV= (2) (vì nhiệt độ của khí bằng nhiệt độ ở điều kiện chuẩn). Từ (1) và(2) suy ra: 30 0 1, 43.150 214,5 / 1 p kg m p ρρ = = = và 2214,5.10 2,145 .m kg−= = Đối với bài tập này chỉ có hai biến số thể tích V và áp suất p có thể thay đổi được còn 0ρ , 0p là những thông số cố định, vì vậy ta có thể xây dựng giao diện của bài tập này như sau: Gồm có hai ô nhập liệu với hai giá trị V và p. Đến phần kết quả có hai ô, một ô chỉ khối lượng riêng của không khí ở áp suất p và một ô chỉ giá trị khối lượng m cần tính. Qua quá trình viết các đoạn lệnh cho bài toán thì ta có thể nhập vào hai ô nhập liệu V và p một số bất kỳ, sau đó click vào nút Tính thì ta sẽ được một kết quả phù hợp mà không cần tính toán phức tạp. Hình 06. Giao diện bài tập 29.8 sách BT 30.10*. Một chai chứa không khí được nút kín bằng một nút có trọng lượng không đáng kể, tiết diện 2,5cm2. Hỏi phải đun nóng không khí trong chai lên tới nhiệt độ tối thiểu bằng bao nhiêu để nút bật ra? Biết lực ma sát giữa nút và chai có độ lớn là 12N, áp suất ban đầu của không khí trong chai bằng áp suất khí quyển và bằng 9,8.104Pa, nhiệt độ ban đầu của không khí trong chai là -30C. Giải Trang 26 Trước khi nút bật ra, thể tích khí trong chai không đổi và quá trình đun nóng là quá trình đẳng tích. Tại thời điểm nút bật ra, áp lực không khí trong chai tác dụng lên nút phải lớn hơn áp lực của khí quyển và lực ma sát: 2 1msp S F p S> + Do đó: 2 1msFp pS> + Vì quá trình là đẳng tích nên: 1 2 1 2 2 2 1 1 1 2 1 1 4 2 4 4 270 12 9,8.10 402 9,8.10 2,5.10 ms p p T T pT T p FTT p p S T K− = ⇒ = ⎛ ⎞⇒ = +⎜ ⎟⎝ ⎠ ⎛ ⎞⇒ = + ≈⎜ ⎟⎝ ⎠ Phải đun nóng tới nhiệt độ ít nhất là T2 = 402 K hoặc t2 = 1290C. Hình 07. Giao diện bài tập 30.10* sách BT Đối với bài này có ba thông số tiết diện S của chai, nhiệt độ ban đầu của không khí trong chai và lực ma sát giữa nút và chai là những đại lượng có thể thay đổi được nên riêng bài này sẽ có ba biến số cần nhập liệu. Ở phần kết quả của đề bài yêu cầu tính nhiệt độ. Vậy nhiệm vụ của mình là phải tính được nhiệt độ tuyệt đối T, từ đó suy ra nhiệt độ t của không khí phải đun nóng trong chai. Nên ta sẽ thiết lập hai ô kết quả tính được, một ô là nhiệt độ tuyệt đối T và một ô là nhiệt độ t cần tìm. Trang 27 Tóm lại, đối với từng bài toán khác nhau, tôi sẽ thiết lập một giao diện của màn hình tương đối và phù hợp với nó. Điều đó thể hiện nét đặc trưng của bài tập cần thiết kế. Mặt khác, do có nhiều loại máy tính khác nhau nên khi thiết lập giao diện của Visual Basic, tôi đã chọn màn hình 14inch làm chuẩn và cố định các kích thước: chiều ngang là 11310, và chiều dọc là 8640 cho mọi chế độ của màn hình để đảm bảo khi cho chương trình hoạt động sẽ đáp ứng đủ màn hình của từng loại máy, nhằm tạo cho người dùng làm việc một cách dễ dàng với chương trình. 2.2. Kỹ thuật thực hiện * Tạo màn hình của chương trình được trình diễn Mở phần mềm Visual Basic 6.0 bằng cách vào menu Start | Programs | Microsoft Visual Basic 6.0| Chọn biểu tượng của Microsoft Visual Basic 6.0 | Stadard EXE. Khi đó màn hình của chương trình Visual Basic 6.0 sẽ có dạng như sau: Hình 08. Màn hình làm việc của Visual Basic 6.0 Lúc màn hình hiện lên như trên, ta sẽ làm việc với giao diện Visual Basic này. - Dùng TextBox để vẽ các ô Text: + TextBox1: Name là Text1, thuộc tính Text là CHƯƠNG TRÌNH. + TextBox2: Name là Text2, thuộc tính Text là CHƯƠNG. + TextBox3: Name là Text3, thuộc tính Text là Text3. + TextBox4: Name là Text4, thuộc tính Text là BÀI. Trang 28 + TextBox5: Name là Text5, thuộc tính Text là “TRƯỜNG ĐẠI HỌC AN GIANG GVHD: Ths. GIANG VĂN PHÚC SVTH: NGUYỄN THỊ KIM HUỆ LỚP DH5L” + TextBox6: Name là Bienso_1, thuộc tính Text rỗng. + TextBox7: Name là Bienso_2, thuộc tính Text rỗng. + TextBox8: Name là Bienso_3, thuộc tính Text rỗng. + TextBox9: Name là Bienso_4, thuộc tính Text rỗng. + TextBox10: Name là Bienso_5, thuộc tính Text rỗng. + TextBox11: Name là Bienso_6, thuộc tính Text rỗng. + TextBox12: Name là donvibien_1, thuộc tính Text rỗng. + TextBox13: Name là donvibien_2, thuộc tính Text rỗng. + TextBox14: Name là donvibien_3, thuộc tính Text rỗng. + TextBox15: Name là donvibien_4, thuộc tính Text rỗng. + TextBox16: Name là donvibien_5, thuộc tính Text rỗng. + TextBox17: Name là donvibien_6, thuộc tính Text rỗng. + TextBox18: Name là Biensokq_1, thuộc tính Text rỗng. + TextBox19: Name là Biensokq_2, thuộc tính Text rỗng. + TextBox20: Name là donvibienkq_1, thuộc tính Text rỗng. + TextBox21: Name là donvibienkq_1, thuộc tính Text rỗng. - Dùng Label để nhập các chuỗi dữ liệu: + Label1 : Name là Label1, thuộc tính Caption là Bộ môn Vật Lý khoa Sư Phạm trường Đại Học An Giang biên soạn và giữ bản quyền. + Label2 : Name là Label2, thuộc tính Caption là “Có công mài sắt, có ngày nên kim”. + Label3 : Name là Label3, thuộc tính Caption là ĐỀ BÀI. + Label4 : Name là Label4, thuộc tính Caption là soạn nhanh bài tập Vật Lý 10 phần Nhiệt học. + Label5: Name là Label5, thuộc tính Caption là kết quả. - Dùng Combo Box để thêm vào các list của chương trình: + Combo Box1: Name là Chuongtrinh_Combo, thuộc tính List là VẬT LÝ 10, VẬT LÝ 11, VẬT LÝ 12. + Combo Box2: Name là Chuong_Combo, thuộc tính List là 1,2,3,4,5,6,7. + Combo Box3: Name là Bai_Combo, thuộc tính List là từ 1 → 15. - Dùng nút CommandButton để vẽ các nút lệnh điều khiển : Trang 29 + CommandButton1: Name là Giothieu_Cmd, thuộc tính Caption là GIỚI THIỆU. + CommandButton2: Name là Ketthuc_Cmd, thuộc tính Caption là KẾT THÚC. + CommandButton3: Name là Cmd_batdau, thuộc tính Caption là BẮT ĐẦU. + CommandButton4: Name là Cmd_Tinh, thuộc tính Caption là TÍNH. + CommandButton5: Name là Cmd_tieptuc, thuộc tính Caption là TIẾP TỤC. + CommandButton6: Name là Command_phu, thuộc tính Caption là Cau b. - Dùng nút Image vẽ các khung hình chữ nhật để load các file có dạng hình ảnh (*.jpg) vào đó : + Image1: Name là Image_debai. + Image2: Name là Image_bien_1. + Image3: Name là Image_bien_2. + Image4: Name là Image_bien_3. + Image5: Name là Image_bien_4. + Image6: Name là Image_bien_5. + Image7: Name là Image_bien_6. + Image8: Name là Image_bienkq_1. + Image9: Name là Image_bienkq_2. - Dùng nút Shape để vẽ thêm các hình đa giác trên màn hình giao tiếp Form. Hình Shape được vẽ là hình chữ nhật bao luôn các ô TextBox chỉ giá trị của các biến, các Image và các CommandButton. - Dùng nút Timer : quy định thời gian chữ chạy trên màn hình khi trình diễn. * Xây dựng mối liên quan giữa các Control điều khiển Đầu tiên trước khi lập trình cho một chương trình thì công việc đầu tiên ta sẽ khai báo các biến có trong chương trình làm việc. Phần lập trình Visual ở trên các biến “chuongtrinh, chuong, bai, tentaptin” là những biến kiểu dữ liệu cơ sở dưới dạng chuỗi. Do đó khi khai báo biến, ta sẽ chọn thuộc tính String. String cho phép sử dụng chuỗi dữ liệu từ 0 đến 65.500 ký tự hay ký số, thậm chí là các giá trị đặc biệt như ^%@. Giá trị kiểu chuỗi được đặt giữa hai dấu ngoặc kép (“ ”). ** Đối với từng Combo Box - Ứng với Chuongtrinh_Combo để nó hiển thị khi chạy thuộc tính gán cho Combo này là Visible = True. Đồng thời thuộc tính List của Combo phải có 3 chuỗi là VẬT LÝ 10, VẬT LÝ 11, VẬT LÝ 12. Private Sub Chuongtrinh_Combo_Click() If Chuongtrinh_Combo.ListIndex = 0 Then Chuong_Combo.Enabled = True If Chuongtrinh_Combo.ListIndex=1OrChuongtrinh_Combo.ListIndex=2 Then Dim thongbao As Boolean thongbao = MsgBox("PHAN NAY CHUA CAP NHAT", vbOKOnly) End If Trang 30 End Sub Khi Click vào Chuongtrinh_Combo thì List của Combo sẽ hiện lên 3 chuỗi VẬT LÝ 10, VẬT LÝ 11, VẬT LÝ 12, nhiệm vụ ta chọn một trong ba dòng chuỗi này để chương trình hiện lên theo yêu cầu của người sử dụng. Do giới hạn đề tài, tôi chỉ nghiên cứu các bài tập trong chương trình VẬT LÝ 10 nên khi gặp dòng lệnh: “If Chuongtrinh_Combo.ListIndex = 0 Then Chuong_Combo.Enabled = True” là nếu List của Combo chuongtrinh được click vào vị trí đầu tiên “ListIndex=0” là ứng với chuỗi VẬT LÝ 10 thì chuong_Combo có thuộc tính Enabled = True là hiện sáng. Ngược lại, nếu List của chuongtrinh_Combo được click vào vị trí kế tiếp “ListIndex=1Or ListIndex=2” là ứng với chuỗi VẬT LÝ 11 hoặc VẬT LÝ 12 thì chuong_Combo có thuộc tính Enabled = False là làm mờ đối tượng. Đồng thời chương trình chạy hiện lên một thông báo lỗi với biến thongbao dạng lý luận “PHAN NAY CHUA CAP NHAT” nhờ lệnh MsgBox có thuộc tính vbOKOnly chỉ có thể đọc và Click OK. “Dim thongbao As Boolean thongbao = MsgBox("PHAN NAY CHUA CAP NHAT", vbOKOnly)” Hình 09. Màn hình thông báo giới hạn của đề tài không có chương trình Vật Lý 11. Bất kỳ một nút lệnh nào cũng vậy, khi viết code cho nút điều khiển đó thì nó cũng được bắt đầu “Private Sub Chuongtrinh_Combo_Click()” và kết thúc là “End Sub”. - Khi Click vào List VẬT LÝ 10 của Chuongtrinh_Combo thì nút Chuong_Combo sẽ bật sáng, điều đó nói lên rằng chương trình cho phép người sử dụng được tiếp tục chọn với List của Chuong_Combo. Cũng tương tự như cách sử dụng các thuộc tính trong Chuongtrinh_Combo, cũng do đề tài có giới hạn nghiên cứu, tôi chỉ làm việc với ba chương của phần Nhiệt học là chương 5, chương 6 và chương 7. Vì thế, khi nút Chuong_Combo đang ở chế độ làm việc (bật sáng) nếu ta Click vào vị trí List của Trang 31 Chuong_Combo là các chương 5,6,7 thì nút Bai_Combo tiếp tục bật sáng và ở tư thế sẵn sàng làm việc. Ngược lại, nếu ta Click vào vị trí List của Chuong_Combo là các chương 1,2,3,4 thì chương trình sẽ hiện lên một thông báo lỗi “PHAN NAY CHUA CAP NHAT”. Như vậy đoạn lệnh chương trình con của Chuong_Combo được thiết lập như sau: Private Sub Chuong_Combo_Click() If (Chuong_Combo.ListIndex = 0) Then chuong = "01" If (Chuong_Combo.ListIndex = 1) Then chuong = "02" If (Chuong_Combo.ListIndex = 2) Then chuong = "03" If (Chuong_Combo.ListIndex = 3) Then chuong = "04" If Chuong_Combo.ListIndex = 0 Or Chuong_Combo.ListIndex = 1 Or Chuong_Combo.ListIndex = 2 Or Chuong_Combo.ListIndex = 3 Then Dim thongbao As Boolean thongbao = MsgBox(" PHAN NAY CHUA CAP NHAT", vbOKOnly) End If If (Chuong_Combo.ListIndex = 4) Then chuong = "05" If (Chuong_Combo.ListIndex = 5) Then chuong = "06" If (Chuong_Combo.ListIndex = 6) Then chuong = "07" If Chuong_Combo.ListIndex = 4 Or Chuong_Combo.ListIndex = 5 Or Chuong_Combo.ListIndex = 6 Then Bai_Combo.Enabled = True Mỗi Combo Box đều có những thuộc tính riêng nhưng nó đều được liên hệ với nhau. Chẳng hạn như có làm việc được với Chuongtrinh_Combo rồi tiếp tục mới làm việc được với Chuong_Combo và như thế mới có thể làm việc tiếp với Bai_Combo được. Ở Bai_Combo List của Combo này gồm 15 bài có số thứ tự từ 01 đến 15. Khi Click vào đúng vị trí đang làm việc của Chuong_Combo thì Bai_Combo sẽ bật sáng và cùng làm việc chung với chương trình đang chạy. Vì vậy, khi viết code cho Combo này trước hết phải xác định được vị trí bài ứng với từng lúc click chuột vào List nào. Khi đó, đoạn code có dạng như sau: Hình 10. Màn hình đoạn lệnh của nút Bai_Combo. Trang 32 - Tiếp tục để thiết lập được mối quan hệ giữa các biến “chuong” và “bai” trong khi chương trình hoạt động, thể hiện được từng đề bài của bài tập cần lập trình. Tôi đã đặt thêm một tên biến mới là “tentaptin”, khi đó dùng lệnh ghép chuỗi “&” để ghép các biến lại tạo thành một chuỗi có tên là “tentaptin”, tên này được gán vào giá trị của ô Text3 tentaptin = chuong & bai & ".jpg" Text3.Text = tentaptin Như vậy, khi Click vào Bai_Combo chọn được bài thì ô Text3 sẽ hiện lên chương được chọn & bài được chọn & ".jpg", đây là một File dạng hình ảnh đã được cắt ra từ File PrimoPDF chuyển qua Corel PHOTO-PAINT và Save lại dưới dạng một File ảnh ".jpg". Ví dụ: Tôi muốn chọn chương 05 bài 05 lúc này ô Text3 chỉ hiện lên một chuỗi có tên như sau: Đó là một chuỗi dữ liệu đã được ghép sẽ hiện lên trong Text3 khi trình diễn chương trình. Nhưng chỉ hiện lên bao nhiêu chưa đủ, quan trọng là phải làm sao cho thấy được đề bài dưới dạng một hình ảnh. Lúc này, ta cần đặt thêm một lệnh SET vào chỗ Image là khung chứa hình ảnh một Picture. Vì vậy khi chương trình hoạt động lệnh Set này sẽ LoadPicture với tên phù hợp vào Image_debai trong giao diện làm việc của Visual nói trên. Set cau = LoadPicture(tentaptin) Set Image_debai = cau Ngay đây, chúng ta hãy quan sát một đề bài đã được Load vào ô Image_debai. Chúng ta trở lại ví dụ chọn ở trên là chương 05 bài 05, đề bài được save dưới dạng File hình ảnh có tên là “0505.jpg”. Hình 11. Màn hình giao diện của bài 0505.jpg. Trang 33 ** Đối với các Command Button - Người ta thường nói để vào một chương trình, một buổi họp nào đó thì thường có một “Lời mở đầu” như có ý mời gọi mọi người cùng tham gia với mình. Ở đây cũng vậy, chúng ta muốn vào được bên trong một cách hệ thống thì giao diện Giới thiệu là phần rất quan trọng. Vì vậy, khi chương trình được trình diễn chúng ta sẽ Click vào nút “GIỚI THIỆU” thì màn hình sẽ hiện lên một hình bìa “Phần mềm SOẠN BÀI TẬP VẬT LÝ”. Muốn vậy, tôi đã đặt thuộc tính cho Command giới thiệu như sau: Private Sub Giothieu_Cmd_Click() Set Image_debai = LoadPicture("gioithieunhoA.jpg") Text5.Visible = True Label1.Visible = True Picture1. Visible = False Bienso_1.Visible = False Bienso_2.Visible = False Bienso_3.Visible = False Bienso_4.Visible = False Bienso_5.Visible = False Bienso_6.Visible = False Biensokq_1.Visible = False Biensokq_2.Visible = False donvibien_1.Visible = False donvibien_2.Visible = False donvibien_3.Visible = False donvibien_4.Visible = False donvibien_5.Visible = False donvibien_6.Visible = False donvibienkq_1.Visible = False donvibienkq_2.Visible = False Image_bien_1.Visible = False Image_bien_2.Visible = False Image_bien_3.Visible = False Image_bien_4.Visible = False Image_bien_5.Visible = False Image_bien_6.Visible = False Image_bienkq_1.Visible = False Image_bienkq_2.Visible = False Cmd_batdau.Visible = False Cmd_Tinh.Visible = False Cmd_ketqua.Visible = False Cmd_tieptuc.Visible = False Trang 34 End Sub Hình 12. Màn hình khi Click vào nút “GIỚI THIỆU”. Hình 12, mà chúng ta quan sát được ở trên là khi ta Click chuột vào nút “GIỚI THIỆU”. Hình ảnh này cũng được Lệnh Set vào khung Image_debai tương tự như lúc ta đặt thuộc tính cho Bai_Combo. Khi đó, các ô TextBox nhập liệu và các Command còn lại được đặt thuộc tính ẩn. - Một chương trình, một bài tập hay một quyển sách nào cũng vậy, có mở đầu thì phải có kết thúc. Vì thế, bên cạnh Giothieu_Cmd thì Ketthuc_Cmd cũng có một vai trò rất quan trọng. Nó có tác dụng đóng chương trình trình diễn lại bất cứ lúc nào không cần sử dụng nữa. Ketthuc_Cmd có thể viết code một trong hai cách sau đây, nhưng nó đều có cùng một tác dụng là khi click chuột vào nút “KẾT THÚC” (Sub có thuộc tính Click) thì sự trình diễn sẽ tạm ngưng để trở về màn hình nền của Viual. Cách 1: Private Sub Ketthuc_Cmd_Click() End End Sub Cách 2: Private Sub Ketthuc_Cmd_Click() Unload Me End Sub - Dữ liệu về các đề của bài tập đã được chuẩn bị xong, nhưng ứng với mỗi bài tập có thể có một biến số thay đổi, có bài tập lại có tới hai hoặc ba, bốn biến số thay đổi, nên việc trình bày một giao diện của từng bài tập cũng có phần khác nhau, chẳng hạn như đối với chương 05 bài tập 01 có một biến thay đổi là thể tích V; còn đối với chương 06 bài tập 05 có 4 biến số thay đổi là m1, m2, t, t2. Do vậy, việc thiết kế giao diện của từng bài tập cũng Trang 35 đòi hỏi phải có một đặc điểm riêng. Chúng ta sẽ trở lại với Bai_Combo, sử dụng lệnh If để tạo các giao diện tương ứng của từng bài. Private Sub Bai_Combo_Click() If tentaptin = "0501.jpg" Then Label1.Visible = True Text5.Visible = False donvibien_2.FontName = "VNI-times" Bienso_1.Visible = False donvibien_1.Visible = False Bienso_2.Visible = True donvibien_2.Visible = True Bienso_3.Visible = False donvibien_3.Visible = False Bienso_4.Visible = False donvibien_4.Visible = False Bienso_5.Visible = False donvibien_5.Visible = False Bienso_6.Visible = False donvibien_6.Visible = False Biensokq_1.Visible = True donvibienkq_1.Visible = True Biensokq_2.Visible = False donvibienkq_2.Visible = False Cmd_batdau.Visible = True Cmd_Tinh.Visible = True Cmd_tieptuc.Visible = True Cmd_ketqua.Visible = True donvibien_2.Text = "(cm3)" donvibienkq_1.Text = "(phan tu)" Trang 36 Set Image_bien_2 = LoadPicture("thetich V.jpg") Image_bien_2.Visible = True Image_bien_1.Visible = False Image_bien_3.Visible = False Image_bien_4.Visible = False Image_bien_5.Visible = False Image_bien_6.Visible = False Set Image_bienkq_1 = LoadPicture("n.jpg") Image_bienkq_1.Visible = True Image_bienkq_2.Visible = False End If Nếu bài tập được chọn là bài 01 chương 05 thì Label1 hiện ra, Text5 ẩn đi, các biến số chỉ có biến số thứ 2, biến số kết quả thứ 1, đơn vị của biến số thứ 2, đơn vị của biến số kết quả thứ 1, Imgae_bien_2 và Imgae_bienkq_1 hiện ra còn các biến khác có thuộc tính ẩn (tức là không nhìn thấy khi chạy chương trình). Hình 13. Màn hình giao diện của bài 0501. jpg Nếu bài tập được chọn là bài 05 chương 06 thì Label1 hiện ra, Text5 ẩn đi, các biến số chỉ có biến số thứ 2,3,4,5; biến số kết quả thứ 1, đơn vị của biến số thứ 2,3,4,5; đơn vị của biến số kết quả thứ 1, Imgae_bien_2,3,4,5 và Imgae_bienkq_1 hiện ra còn các biến khác có thuộc tính ẩn. If tentaptin = "0605.jpg" Then Label1.Visible = True Text5.Visible = False Trang 37 donvibien_2.FontName = "VNI-times" donvibien_3.FontName = "VNI-times" donvibien_4.FontName = "VNI-times" donvibien_5.FontName = "VNI-times" Bienso_1.Visible = False donvibien_1.Visible = False Bienso_2.Visible = True donvibien_2.Visible = True Bienso_3.Visible = True donvibien_3.Visible = True Bienso_4.Visible = True donvibien_4.Visible = True Bienso_5.Visible = True donvibien_5.Visible = True Bienso_6.Visible = False donvibien_6.Visible = False Biensokq_1.Visible = True donvibienkq_1.Visible = True Biensokq_2.Visible = False donvibienkq_2.Visible = False Cmd_batdau.Visible = True Cmd_Tinh.Visible = True Cmd_tieptuc.Visible = True Cmd_ketqua.Visible = True donvibien_2.Text = "(g)" donvibien_3.Text = "(kg)" donvibien_4.Text = "(kJ)" donvibien_5.Text = "(oC)" Trang 38 donvibienkq_1.Text = "(oC)" Set Image_bien_2 = LoadPicture("m1.jpg") Image_bien_2.Visible = True Image_bien_1.Visible = False Set Image_bien_3 = LoadPicture("m2.jpg") Image_bien_3.Visible = True Set Image_bien_4 = LoadPicture("nhietluong Q.jpg") Image_bien_4.Visible = True Set Image_bien_5 = LoadPicture("ndt2.jpg") Image_bien_5.Visible = True Image_bien_6.Visible = False Set Image_bienkq_1 = LoadPicture("ndt1.jpg") Image_bienkq_1.Visible = True Image_bienkq_2.Visible = False End If Hình 14. Màn hình giao diện của bài 0605. jpg - Khi các giao diện của các bài được thiết lập cho tương ứng với từng bài xong. Mỗi bài sẽ có các ô nhập số liệu để thực hiện việc tính toán. Trước hết, ta sẽ dùng chuột Click vào nút “BẮT ĐẦU”, lúc đó trên màn hình sẽ xuất hiện một thông báo “XIN NHAP CAC BIEN SO” nhờ lệnh MsgBox. Private Sub Cmd_batdau_Click() Trang 39 Dim thongbao As Boolean thongbao = MsgBox("XIN NHAP CAC BIEN SO", vbOKOnly) End Sub Hình 15. Màn hình thông báo khi Click vào nút “BẮT ĐẦU”. Nhiệm vụ của ta lúc này là Click vào nút OK, sau đó con trỏ sẽ di chuyển đến vị trí các ô nhập liệu cần thiết để ta có thể nhập các số liệu vào tính toán. Công việc chuẩn bị, thiết lập các đề bài, xây dựng mối quan hệ giữa các nút điều khiển và thiết lập được giao diện của các bài tập cụ thể. Yêu cầu cần thiết cho công việc tiếp theo là ta nhập các số liệu vào các đối tượng Text nhập liệu và thực hiện tính toán để đưa ra một kết quả hợp lý và phù hợp với từng điều kiện của bài toán. * Lập trình một số bài tập cụ thể Khi xây dựng xong các giao diện của các bài tập, tôi tiến hành lập trình đối với các bài toán này. Các bài tập khác nhau tôi sẽ có những công thức và biểu thức phù hợp với nó, thể hiện đặc trưng của từng bài. Công việc này thực chất là viết lại các biểu thức tính toán của bài tập. Để làm được điều này tôi tiến hành với nút lệnh Command “TÍNH”. Từ hình nền của Visual đã làm, double Click vào Cmd_Tinh, khi đó sẽ hiện một Sub của nút lệnh “TÍNH” Private Sub Cmd_Tinh_Click() End Sub Tôi đã sử dụng lệnh If để chọn vào từng bài tập mà lập trình. Ứng với từng bài, tôi xác định nó có bao nhiêu biến, có bao nhiêu kết quả, mỗi biến có đơn vị là gì, xác định được giao diện của mỗi bài. Từ đó, tiến hành viết code cho từng bài tập ở nút lệnh Cmd_Tinh. Ở đây tôi sẽ đưa ra một số bài tượng trưng cho quá trình viết, chẳng hạn như: “0502.jpg”, “0514.jpg”, “0601.jpg”, “0605.jpg”, “0701.jpg”, “0709.jpg”. Để giải được bài tập một cách nhanh chóng ta cần biết được đề bài như sau: * “0502.jpg” là bài V.9* sách BT V.9* Một khí cầu vỏ thể tích 3336V m= và khối lượng vỏ 84m kg= được bơm không khí nóng tới áp suất bằng áp suất không khí bên ngoài. Không khí nóng phải có nhiệt độ Trang 40 bằng bao nhiêu để khí cầu bắt đầu bay lên? Biết không khí bên ngoài có nhiệt độ 270C và áp suất 1 atm; khối lượng mol của không khí ở điều kiện chuẩn là 29.10-3 kg/mol. Giải Gọi 1ρ và 2ρ là khối lượng riêng của không khí ở nhiệt độ 1 27 273 300T K= + = ,và nhiệt độ 2T khi khí cầu bắt đầu bay lên. Khi khí cầu bắt đầu bay lên: A v kknF P P= + 1 2gV mg gVρ ρ= + 2 1 mVρ ρ⇒ = − (1) Ở điều kiện chuẩn ta có : 3 30 29 1,295 / 1,295 / 22,4 g g dm kg m l ρ = = = Khi áp suất không đổi, ta có: 01 0 1 T T ρ ρ= (2) Từ (1) và (2): 31 273.1,295 1,178 / 300 kg mρ = = . Do đó: 32 0,928 /kg mρ = Vì 0 0 02 0 2 2 2 273.1,295 381 0,928 T TT K T ρρ ρ ρ= ⇒ = = = 02 108t C⇒ = | Đoạn lệnh lập trình được trình bày như sau: If tentaptin = "0502.jpg" Then If Val(Bienso_1.Text) = 0 Or Val(Bienso_1.Text) < 0 Then Bienso_1.Text = "" MsgBox "m chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_3.Text) = 0 Or Val(Bienso_3.Text) < 0 Then Bienso_3.Text = "" MsgBox "V chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_5.Text) < -273 Then Bienso_5.Text = "" MsgBox "t1>-273. Xin hay nhap lai!" Exit Sub End If Dim giatri_1, giatri_2 As Single giatri_1 = 273 * 1.295 / (Val(Bienso_5.Text) + 273) Trang 41 giatri_2 = giatri_1 - (Val(Bienso_1.Text) / Val(Bienso_3.Text)) tam = 273 * 1.295 / giatri_2 Biensokq_1.Text = tam Biensokq_2.Text = tam – 273 Biensokq_2.Visible = False donvibienkq_2.Visible = False Image_bienkq_2.Visible = False Command_phu.Visible = True End If * “0514.jpg” là bài 31.10* sách BT 31.10*. Người ta bơm khí oxi ở điều kiện chuẩn vào một bình có thể tích 5000l. Sau nữa giờ bình chứa đầy khí ở nhiệt độ 240C và áp suất 765mmHg. Xác định khối lượng khí bơm vào sau mỗi giây. Coi quá trình bơm diễn ra một cách đều đặn. Giải Sau t giây khối lượng khí trong bình là: m Vt Vρ ρ= ∆ = . Với ρ là khối lượng riêng của khí. V∆ là thể tích khí bơm vào sau mỗi giây. V là thể tích khí bơm vào sau t giây. 0 0 0 p VpV T T = (1) với mV ρ= và 0 0 mV ρ= thay V và V0 vào (1) ta được: 0 0 0 pT p T ρρ = Lượng khí bơm vào sau mỗi giây là: 0 0 0 5.765.273.1, 29. 0,0033 / 3,3 / . 1800.760.297 pTm V Vx kg s g s t t t p T ρρ= = = = = = | Đoạn lập trình được trình bày như sau: If tentaptin = "0514.jpg" Then If Val(Bienso_2.Text) = 0 Or Val(Bienso_2.Text) < 0 Then Bienso_2.Text = "" MsgBox "V chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_3.Text) = 0 Or Val(Bienso_3.Text) < 0 Then Bienso_3.Text = "" MsgBox "T chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub Trang 42 End If If Val(Bienso_4.Text) = 0 Or Val(Bienso_4.Text) < 0 Then Bienso_4.Text = "" MsgBox "t>0. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_5.Text) = 0 Or Val(Bienso_5.Text) < 0 Then Bienso_5.Text = "" MsgBox "p chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If Dim thuong As Single tam = (Bienso_5.Text) * 273 * 1.29 / (760 * (Bienso_3.Text)) Biensokq_1.Text = tam thuong = tam * (Bienso_2.Text) * (10 ^ -3)/((Bienso_4.Text) * 3600) Biensokq_2.Text = thuong End If * “0601.jpg” là bài 32.6 sách BT 32.6. Người ta bỏ một miếng hợp kim chì và kẽm có khối lượng 50g ở nhiệt độ 136oC vào một nhiệt lượng kế có nhiệt dung (nhiệt lượng cần để làm cho vật nóng lên thêm 1oC) là 50 J/K chứa một 100g nước ở 14oC. Xác định khối lượng của kẽm và chì trong hợp kim trên, biết nhiệt độ khi bắt đầu có sự cân bằng nhiệt trong nhiệt kế là 18oC. Bỏ qua sự trao đổi nhiệt với môi trường bên ngoài. Nhiệt dung riêng của kẽm là 337 (J/kg.K), của chì là 126 (J/kg.K), của nước là 4180 (J/kg.K). Giải Nhiệt lượng tỏa ra : ( ) tcmtcmQ ∆−+∆= 2111 05,0 (1) Với m1, c1 là khối lượng và nhiệt dung riêng của kẽm c2 là nhiệt dung riêng của chì. Nhiệt lượng thu vào: ( ) '''''' tcmctctmcQ ∆+=∆+∆= (2) Với m,c là khối lượng và nhiệt dung riêng của nước c’là nhiệt dung của nhiệt lượng kế. Từ (1) & (2) rút ra: 'Q Q= ( )( ) 21 1 2 ' ' 0,05 0,045 mc c t c t m kg t c c + ∆ − ∆= =∆ − Khối lượng của chì: kgmm 005,0045,005,005,0 12 =−=−= | Đoạn lệnh lập trình được trình bày như sau: If tentaptin = "0601.jpg" Then Trang 43 If Val(Bienso_1.Text) = 0 Or Val(Bienso_1.Text) < 0 Then Bienso_1.Text = "" MsgBox "M chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_2.Text) = 0 Or Val(Bienso_2.Text) < 0 Then Bienso_2.Text = "" MsgBox "m chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_3.Text) < -273 Then Bienso_3.Text = "" MsgBox "t1>-273. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_4.Text) < -273 Then Bienso_4.Text = "" MsgBox "t2>-273. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_5.Text) < -273 Then Bienso_5.Text = "" MsgBox "t>-273. Xin hay nhap lai!" Exit Sub End If tam = ((Val(Bienso_2.Text) * (10 ^ -3) * 4180 + 50) * (Val(Bienso_5.Text) - Val(Bienso_4.Text)) - Val(Bienso_1.Text) * (10 ^ -3) * 126 * (Val(Bienso_3.Text) - Val(Bienso_5.Text))) / ((Val(Bienso_3.Text) - Val(Bienso_5.Text)) * (337 - 126)) Biensokq_1.Text = tam thuong = Val(Bienso_1.Text) * (10 ^ -3) – tam Biensokq_2.Text = thuong End If * “0605.jpg” là bài tập thêm sách tham khảo [10] BT thêm.6.05. Một ấm đun nước bằng nhôm có khối lượng 400g, chứa 3 kg nước, được đun trên bếp. Khi nhận được nhiệt lượng là 646,9 kJ thì ấm đạt đến nhiệt độ 600C. Hỏi nhiệt độ ban đầu của ấm là bao nhiêu? Biết nhiệt dung riêng của nhôm và nước lần lượt là 920 / .Alc J kg K= và 4190 / .nc J kg K= . Giải Khối lượng ấm nhôm: 1 400 0, 4m g kg= = Trang 44 Khối lượng nước: 2 3m kg= Nhiệt lượng ấm nhôm đựng nước nhận được: 1 2Al nQ m c t m c t= ∆ + ∆ ( ) ( )1 2 1 2 2 1Al nQ m c t t m c t t= − + − Nhiệt độ ban đầu của ấm nhôm: ( )( )1 2 21 1 2 Al n Al n m c m c t Q t m c m c + −= + ( )( ) 01 0, 4.920 3.4190 60 646900 10 0,4.920 3.4190 t C + −= =+ | Đoạn lệnh lập trình được trình bày như sau: If tentaptin = "0605.jpg" Then If Val(Bienso_2.Text) = 0 Or Val(Bienso_2.Text) < 0 Then Bienso_2.Text = "" MsgBox "m1 chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_3.Text) = 0 Or Val(Bienso_3.Text) < 0 Then Bienso_3.Text = "" MsgBox "m2 chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_4.Text) = 0 Or Val(Bienso_4.Text) < 0 Then Bienso_4.Text = "" MsgBox "Q chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_5.Text) < -273 Then Bienso_5.Text = "" MsgBox "t2>-273. Xin hay nhap lai!" Exit Sub End If tam = ((920 * Val(Bienso_2.Text) * (10 ^ -3) + Val(Bienso_3.Text) * 4190) * Val(Bienso_5.Text) - (Val(Bienso_4.Text) * (10 ^ 3))) / (920 * Val(Bienso_2.Text) * (10 ^ -3) + Val(Bienso_3.Text) * 4190) Biensokq_1.Text = tam End If Trang 45 * “0701.jpg” là bài 35.7 sách BT 35.7. Một thanh thép dài 5,0m có tiết diện 1,5cm2 được giữ chặt một đầu. Cho biết suất đàn hồi của thép là 112.10E = Pa. Lực kéo F tác dụng lên đầu kia của thanh thép bằng bao nhiêu để thanh dài thêm 2,5mm? Giải Lực kéo F tác dụng lên đầu kia của thanh thép là: 0 SF E l l = ∆ 4 11 3 41,5.102.10 . 2,5.10 1,5.10 5 F − −= = N Chọn B. | Đoạn lệnh lập trình được trình bày như sau: If tentaptin = "0701.jpg" Then If Val(Bienso_1.Text) = 0 Or Val(Bienso_1.Text) < 0 Then Bienso_1.Text = "" MsgBox "Lo chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_3.Text) = 0 Or Val(Bienso_3.Text) < 0 Then Bienso_3.Text = "" MsgBox "S chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_5.Text) = 0 Or Val(Bienso_5.Text) < 0 Then Bienso_5.Text = "" MsgBox "chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If tam= 2 * 10 ^ 11 * Val(Bienso_3.Text) * (10 ^ -4) * Val(Bienso_5.Text) * 10 ^ -3 / Val(Bienso_1.Text) Biensokq_1.Text = tam End If * “0709.jpg” là bài 37.10 sách BT 37.10 Một mẫu gỗ hình lập phương có khối lượng 20g được đặt nổi trên mặt nước. Mẫu gỗ có cạnh chiều dài 30mm và dính ướt hoàn toàn. Nước có khối lượng riêng là 1000kg/m3 và hệ số căng bề mặt là 0,072N/m. Tính độ ngậm sâu trong nước của mẫu gỗ. Giải Do mẫu gỗ bị dính ướt hoàn toàn nên: Điều kiện để mẫu gỗ nổi trên mặt nước tức là mẫu gỗ nằm cân bằng: Trang 46 0AF P F+ + = r r r hay AP F F+ = Gọi a là độ dài mỗi cạnh của mẫu gỗ, x là độ ngập sâu trong nước của mẫu gỗ. Thay , 4P mg F aσ= = và 2AF a xgρ= (bằng trọng lượng khối nước bị phần mẫu gỗ chìm trong nước chiếm chỗ), ta được: 24mg a a xgσ ρ+ = nên 2 4mg ax a g σ ρ += ( ) ( ) 3 3 23 20.10 .9,8 0,072.4.30.10 2,2 0,1 2,3 1000. 30.10 .9,8 x cm cm − − − += ≈ + = | Đoạn lệnh lập trình được trình bày như sau: If tentaptin = "0709.jpg" Then If Val(Bienso_1.Text) = 0 Or Val(Bienso_1.Text) < 0 Then Bienso_1.Text = "" MsgBox "m chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If If Val(Bienso_3.Text) = 0 Or Val(Bienso_3.Text) < 0 Then Bienso_3.Text = "" MsgBox "a chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If tam = ((Val(Bienso_1.Text) * 9.8 * 10 ^ -3) + (0.072 * 4 * Val(Bienso_3.Text) * 10 ^ -3)) / (1000 * 9.8 * (10 ^ -6) * (Val(Bienso_3.Text)) ^ 2) Biensokq_1.Text = tam End If Trên đây là một số kỹ thuật lập trình đơn giản cho từng bài tập cụ thể trong Cmd_Tinh. Như vậy, khi gọi bài tập hiển thị ra trong lúc trình diễn, sau đó nhập số liệu và click vào nút “TÍNH” kết quả sẽ được hiển thị trong TextBox kết quả. Để có thể thay số vào các TextBox nhập liệu ta sử dụng “TIẾP TỤC”. Cmd_tieptuc có các thuộc tính sau đây: Private Sub Cmd_tieptuc_Click() Bienso_1.Text = " " Bienso_2.Text = " " Bienso_3.Text = " " Bienso_4.Text = " " Bienso_5.Text = " " Bienso_6.Text = " " Trang 47 Biensokq_1.Text = " " Biensokq_2.Text = " " End Sub Nghĩa là khi ta Click vào Command “TIẾP TỤC” các ô TextBox nhập số sẽ là những ô trống để cho phép người dùng có thể điền các số khác để tính lại kết quả khác. Trên đây là một số đoạn lập trình tiêu biểu và các thuộc tính trong các nút lệnh được tạo ra lúc ban đầu khi làm việc với môi trường Visual Basic. Tuy nhiên, trong quá trình làm việc có một số trường hợp cần phải chú ý, phải đặt thuộc tính giới hạn vào những ô nhập liệu, tăng khả năng chịu lỗi của các TextBox,... Phần này sẽ được trình bày kỹ hơn ở phần một số kỹ thuật được áp dụng sau . II. MỘT SỐ KỸ THUẬT ĐƯỢC ÁP DỤNG Chương trình được thiết kế để có thể chịu lỗi do người dùng vô ý thực hiện mà không bị treo hay rối loạn bằng cách sử dụng một số kỹ xảo lập trình, bao gồm: 1. Kiểm tra dữ liệu nhập trước khi tính Trong thiết kế chương trình bất kỳ, để tăng khả năng chịu lỗi không cho phép người dùng nhập các dữ liệu không hợp lý vào ô nhập liệu. Đối với phần lập trình của đề tài này, tôi đã đưa ra một giới hạn khi nhập liệu vào các giá trị của biến số cần tính. Đoạn lệnh chương trình sau không cho nhập ký tự chỉ cho nhập số vào các ô Text Bienso_1, Bienso_2, Bienso_3, Bienso_4, Bienso_5, Bienso_6. Private Sub Bienso_1_KeyPress (KeyAscii As Integer) Dim Tmp As String Tmp = Bienso_1.Text Select Case Chr$(KeyAscii) Case "0" To "9", Chr$(8) Case "-" If InStr(1, Tmp, "-") = 0 Then If Bienso_1.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 Beep End Sub Trang 48 Trước tiên, ta khai báo biến Tmp dạng chuỗi. (KeyAscii As Integer) trong thủ tục xử lý biến cố KeyPress quy định chỉ cho phép nhập các phím ký số (09) trong Text mà thôi. + 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 xem ký tự nhập vào có phải là ký tự số từ 0 – 9 không, có phải là dấu trừ “-” hay không, có phải là dấu chấm “.” hay không? Nếu đúng thì nhận và sai tức là không thỏa điều kiện trên thì loại. + Nếu có hai dấu chấm “.”, hai dấu trừ “-” cũng bị loại ô Text không nhận. “If InStr(1, Tmp, ".") > 0 Then KeyAscii = 0” + Mỗi lần nhấn phím nhập số liệu vào sẽ có một tiếng Beep. * Trong trường hợp nhập thiếu các biến số thì tùy vào từng ô Text đó là biến gì, nó sẽ hiện lên một thông báo lỗi “Xin hay nhap lai!” bằng lệnh MsgBox. Đoạn lệnh của “0504.jpg”. If Val(Bienso_1.Text) = 0 Or Val(Bienso_1.Text) < 0 Then Bienso_1.Text = "" MsgBox "p1 chi nhan gia tri duong. Xin hay nhap lai!" Exit Sub End If * Bên cạnh mỗi một ô Text nó cũng có một ràng buộc về thông số, ý nghĩa vật lý: không thể chia cho giá trị “0”, thể hiện kết quả thập phân ở dạng lũy thừa “E”. * 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. 2. 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 3. Cập nhật nội dung trong List của Combo Box cho phù hợp với từng chương Ở chế độ thiết kế, chúng ta có thể thêm hoặc xóa bớt các mục trong danh sách chọn của List Box hoặc Combo Box bằng thuộc tính List. Nhưng khi chương trình đang chạy để thêm hoặc xóa bớt các mục của List Box hoặc Combo Box, ta phải dùng phương thức AddItem hoặc RemoveItem. Tuy nhiên, mỗi khi ta xóa một mục nào đó ra khỏi List 1, vị Trang 49 trí của các mục cũng như số phần tử còn lại trong danh sách sẽ bị thay đổi. Đồng thời, khi xóa các mục trong List 1 thì List 2 ngay sau List 1 sẽ có các thuộc tính giống như các thuộc tính của List 1, nhưng ở đây yêu cầu đòi hỏi là List 2 phải có danh sách khác hơn so với ở List 1, nên để làm được điều này ta phải làm như thế nào? Để giải quyết vấn đề nêu trên tôi đã sử dụng vòng lặp For duyệt ngược như sau: Private Sub Chuong_Combo_Click() If Chuong_Combo.ListIndex = 5 Then Dim i As Integer For i = Bai_Combo.ListCount - 1 To Bai_Combo.ListCount - 5 Step -1 Bai_Combo.RemoveItem (i) Next i End If If Chuong_Combo.ListIndex = 6 Then For i = 1 To 5 Bai_Combo.AddItem (10 + i) Next i End If End Sub Tôi nghiên cứu với 3 chương của phần Nhiệt học, ở chương 5 có 15 bài tập, chương 6 có 10 bài tập nhưng chương 7 lại có 15 bài tập. Vì vậy, để cho List của các Combo khớp với số lượng bài tập được chọn, tôi đã sử dụng vòng lặp For duyệt ngược để xóa bớt các mục trong List danh sách Bai_Combo của chương 6. Khi đó chương 7 chỉ hiện lên 10 bài tập trong List, nên tôi phải thêm vào List danh sách Bai_Combo của chương 7 số bài tập tương ứng như đã chọn bằng việc sử dụng vòng lặp For như trên. Kết quả, khi chạy chương trình List của Bai_Combo hiện đúng với số lượng bài tập đưa ra. 4. Chèn một Command khác vào bài tập cụ thể Trường hợp một bài toán có hai yêu cầu là câu a và b, tôi thiết lập bài toán sau khi tính toán được kết quả của câu a rồi dùng chuột Click vào Command “Câu b” thì kết quả câu b mới hiện lên. Điều đó yêu cầu cần thiết phải thiết lập một Command_phu mà thuộc tính Caption của Command này là “Câu b” và đoạn lệnh của Command này được viết như sau: Private Sub Command_phu_Click() Biensokq_2.Visible = True donvibienkq_2.Visible = True Image_bienkq_2.Visible = True Command_phu.Visible = False End Sub 5. Đặt thuộc tính ẩn, hiện cho một đối tượng nào đó: cần phải ghi tên đối tượng “ .Visible = True” là hiện các đối tượng, “ .Visible = Flase” là ẩn các đối tượng. 6. Chặn không cho phép người dùng nhập liệu vào các ô Text cố định Khi muốn người sử dụng không thể nhập hay thay đổi dữ liệu có trong một TextBox, ta sẽ đặt thuộc tính Locked của TextBox là True. Trang 50 7. Các phím nóng: Để có được các gạch dưới trong các Command “GIỚI THIỆU”, “KẾT THÚC” thì thuộc tính Caption ta thêm ký hiệu & trước ký hiệu cần gạch dưới. Thay vì ta phải Click chuột vào nút “GIỚI THIỆU” hay “KẾT THÚC” thì chỉ có thể nhấn phím “Alt+G” hay “Alt+K”, khi đó chương trình sẽ hoạt động như ta Click chuột. ******************* Trang 51 PHẦN KẾT LUẬN CHUNG F G 1. Kết luận Hiện nay, công nghệ thông tin phát triển rất mạnh mẽ, nó đứng ở vị trí hàng đầu trong mạch máu thông tin và xử lý số liệu. Các phần mềm hỗ trợ lần lượt ra đời để đáp ứng cho nhu cầu sử dụng ngày càng cao của con người. Trong nhiều lĩnh vực đời sống, đặc biệt là trong giáo dục, việc ứng dụng công nghệ thông tin là rất cần thiết, không những trong những bài giảng mô phỏng còn trong cả việc soạn thảo giáo án, các bài tập Vì theo xu hướng của ngày nay giáo dục theo phương pháp mới là dạy cho các em các kỹ năng thực hành và việc kiểm tra đánh giá chủ yếu là trắc nghiệm khách quan. Vì vậy, đòi hỏi các em phải hiểu được các vấn đề một cách sâu sắc mới có thể làm được thành thạo và học có kết quả cao. Trước yêu cầu cấp bách như thế, nhiệm vụ của người giáo viên là rất quan trọng, từ đó cũng tạo cho các giáo viên áp lực soạn nhiều bài tập sao cho ngắn, nhanh và chính xác cao trên các mẫu bài tập đã có. Từ đó, giáo viên sẽ cung cấp cho học sinh nhiều bài tập để học sinh có thể vận dụng nhanh các thủ thuật làm toán và hiểu được vấn đề một cách sâu sắc hơn. Bây giờ, máy tính thực sự là một công cụ đắc lực để giúp giáo viên trong công việc của mình. Bên cạnh đó, kiến thức tin học cũng đóng một vai trò rất quan trọng. Từ đó, tôi đã nghiên cứu ngôn ngữ lập trình Visual Basic để tạo ra được những sản phẩm làm công cụ hỗ trợ cho giáo viên trong công việc giảng dạy của mình. Visual Basic 6.0 là một trong những ngôn ngữ lập trình 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. Với sự hỗ trợ của ngôn ngữ này, tôi đã soạn thảo nhanh được một số bài tập ở sách bài tập, chỉ cần người dùng thay đổi bất kỳ một con số nào trong đề bài là chúng ta đã có một kết quả mới. Điều này đã giúp cho giáo viên trong công việc soạn giảng nhiều bài tập trắc nghiệm rất nhanh và chính xác. 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. Tuy nhiên, công cụ nào cũng vậy nó chỉ có thể hỗ trợ cho con người làm việc chứ nó không thay thế hoàn toàn công việc của con người. Vì vậy, sản phẩm này ngoài những ưu điểm như trên thì cũng có mặt hạn chế như chỉ lập trình với một số bài tập định lượng cụ thể, không làm việc được với các bài tập định tính, khi nghiên cứu một phần của một môn học thì chỉ có thể làm việc một số lượng bài tập nhất định chưa làm được hết tất cả các bài tập ở các sách và các đề bài, cách giải là cố định không cắt dán hoặc sao chép được. Việc tìm hiểu vấn đề này sẽ giúp ích cho bản thân tôi rất nhiều trong công việc giảng dạy sau này vì là một giáo viên Vật lý, việc soạn thảo nhiều bài tập có sự hỗ trợ của công nghệ thông tin cũng tạo cho giáo viên một hứng thú khi làm việc, thông qua đó sẽ tạo cho học sinh thái độ tích cực trong học tập nhiều hơn nữa. Đối với các bạn sinh viên cùng khóa, có thể nghiên cứu làm tài liệu cho mình sau này khi các bạn ra dạy ở các trường phổ thông. Đối với các bạn ở các khóa sau cũng có thể làm Trang 52 tư liệu tham khảo học tập và vận dụng để thiết kế nhiều chương trình khác tương tự, để có được nhiều công cụ hỗ trợ cho công việc giảng dạy sau này. Kết quả của việc nghiên cứu đề tài: Đây là một trong những phương tiện hỗ trợ đắc lực cho giáo viên trong việc soạn thảo nhanh và nhiều dạng bài tập Vật Lý, giúp cho học sinh dễ tiếp thu, dễ hệ thống hóa kiến thức Vật lý một cách chặt chẽ, sâu sắc và giúp các em nhớ bài lâu hơn. Bên cạnh đó, giúp cho người giáo viên đáp ứng được yêu cầu của thực tiễn giáo dục, đồng thời thấy được tầm quan trọng của việc ứng dụng công nghệ thông tin vào công tác giảng dạy được tốt và có hiệu quả hơn. Do thời gian có hạn nên đề tài cũng có một giới hạn cho phép, chỉ nghiên cứu với phần Nhiệt học của chương trình lớp 10. Trong quá trình thực hiện, tôi và các bạn chung nhóm có trao đổi lẫn nhau để sử dụng thử nghiệm và phát hiện các yếu tố cần bổ sung để đề tài được hoàn chỉnh. Kết quả là chúng tôi đã thành công trong công việc lập trình, và tạo ra được sản phẩm phục vụ cho nhiều độc giả, đặc biệt là các giáo viên trung học phổ thông. Mặc dù đã rất cố gắng nhưng đề tài không tránh khỏi những thiếu sót nhất định, kính mong quý thầy, cô thông cảm. Trong tương lai, tôi sẽ tiếp tục nghiên cứu vấn đề này, khi đó tôi sẽ thiết lập chuẩn bị với số lượng các bài tập nhiều hơn và có thể mở rộng ở nhiều môn khoa học tự nhiên khác, để công cụ ngày càng hoàn thiện và phục vụ tốt hơn trong công tác giảng dạy sau này. 2. Những kiến nghị rút ra từ kết quả nghiên cứu Qua quá trình thực hiện đề tài này tôi có một số kiến nghị như sau: - Đối với giáo viên, đây là một công cụ chỉ hỗ trợ cho việc soạn giảng, không phải thay thế hoàn toàn các hình thức dạy học theo kiểu cũ. Do vậy, phải hiểu và áp dụng đúng với các thiết bị công nghệ trong thời đại khoa học công nghệ thông tin đang phát triển như hiện nay. - Phần mềm soạn nhanh các bài tập Vật Lý rất cần thiết cho các giáo viên phổ thông trong công tác giảng dạy. Vì đây là lần đầu tiên biên soạn nên cần có một tổ chức để phổ biến các sản phẩm này và cần được sự phản hồi từ phía người dùng, để sản phẩm ngày càng hoàn thiện hơn. - Đối với các bạn sinh viên ở các khóa sau khi thực hiện đề tài, cần mở rộng số lượng bài tập trong cả chương trình để lắp đầy chương trình Vật lý phổ thông và đại học ở các phân môn như: Cơ, nhiệt, điện, quang. Ngoài ra, chúng ta cũng có thể mở rộng cho việc biên soạn phần mềm hỗ trợ cho các môn khoa học tự nhiên khác như: Toán, Hóa. Từ đó sẽ tạo được một bộ sản phẩm phục vụ công tác giảng dạy ngày càng hoàn thiện hơn. - Trong những năm học về sau, trường có thể đưa kỹ năng lập trình với môi trường Visual Basic thành môn học chính thức cho sinh viên các khóa học sư phạm Vật Lý, Hóa học và Toán học. **************** Trang 53 TÀI LIỆU THAM KHẢO F G [1] Đặng Thế Khoa. 2003. Giáo Trình Lập Trình Ứng Dụng Visual Basic. NXB Đại Học Quốc Gia TP.Hồ Chí Minh. [2] Lê Minh Trí. 2001. Tự học khả năng lập trình Visual Basic 6. Nhà xuất bản Thống Kê. [3] Lương Duyên Bình, Nguyễn Xuân Chi, Tô Giang, Trần Chí Minh, Vũ Quang, Bùi Gia Thịnh. 2006. Sách giáo khoa Vật Lý 10 cơ bản. Nhà xuất bản Gíáo Dục. [4] Lương Duyên Bình, Nguyễn Xuân Chi, Tô Giang, Vũ Quang, Bùi Gia Thịnh. 2006. Bài Tập Vật Lí 10. Nhà xuất bản Gíáo Dục. [5] Nguyễn Đình Tê (chủ biên), Nguyễn Ngọc Minh, Hoàng Nguyễn, Hoàng Đức Hải. 2001. Giáo trình tin học phổ thông Tự học lập trình cơ sở dữ liệu Visual Basic 6 trong 21 ngày, Tập 1. Nhà xuất bản Gíáo Dục. [6] PGS. Nguyễn Đức Thâm (chủ biên), TS. Nguyễn Ngọc Hưng, TS. Phạm Xuân Huế. 2002. Phương pháp dạy học Vật lý ở trường phổ thông. NXB Đại Học Sư Phạm. [7] PGS.TS.Lê Công Triêm. 2005. Bài giảng phân tích chương trình vật lý phổ thông. Trường Đại học Sư Phạm Huế. [8] Trần Thể. 2007. Bài giảng phương pháp dạy học Vật lý. Trường Đại học An Giang. [9] Võ Hiếu Nghĩa. 2000. Các chương trình mẫu Visual Basic 6.0. Nhà xuất bản Thống Kê. [10] Vũ Thị Phát Minh, Châu Văn Tạo, Nguyễn Hoàng Hưng, Hoàng Thị Thu. 2006. Kiến Thức Cơ Bản Vật Lí 10 (chương trình chuẩn và nâng cao). NXB Đại Học Quốc Gia TP. Hồ Chí Minh. **************** Trang 54 PHỤ LỤC Màn hình sau khi ta mở Form. Click vào nút  hoặc phím F5 Trang 55 Sau khi nhấn nút “GIỚI THIỆU” Chọn chương 5 bài 2 Trang 56 Nhập số liệu vào các ô Text theo đề bài và nhấn nút “TÍNH” Nhấn nút “TIẾP TỤC” Trang 57 Nhập số liệu khác vào các ô Text Nhấn nút “TÍNH” Sau khi làm việc xong nhấn nút “KẾT THÚC” là đóng chương trình lại.

Các file đính kèm theo tài liệu này:

  • pdfXT1233.pdf
Tài liệu liên quan