Biên soạn phần mềm – Soạn thảo nhanh bài tập Vật lí 11

pdf 72 trang yendo 6040
Bạn đang xem 20 trang mẫu của tài liệu "Biên soạn phần mềm – Soạn thảo nhanh bài tập Vật lí 11", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbien_soan_phan_mem_soan_thao_nhanh_bai_tap_vat_li_11.pdf

Nội dung text: Biên soạn phần mềm – Soạn thảo nhanh bài tập Vật lí 11

  1. TRƯỜNG ĐẠI HỌC AN GIANG KHOA SƯ PHẠM BỘ MÔN VẬT LÍ VĂN THÀNH TRỌNG LỚP DH5L KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC SƯ PHẠM BIÊN SOẠN PHẦN MỀM – SOẠN THẢO NHANH BÀI TẬP VẬT LÍ 11 (Phần: Điện Từ Học & Quang Hình Học) Giáo viên hướng dẫn: ThS. GIANG VĂN PHÚC Long Xuyên, tháng 5 năm 2008
  2. Lời Cảm Ơn Trong thời gian thực hiện đề tài tôi đã học hỏi được rất nhiều điều bổ ích từ thầy hướng dẫn, các đồng sự. Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy Giang Văn Phúc trên cương vị là người hướng dẫn đề tài. Thầy đã tận tình hướng dẫn và tạo mọi điều kiện thuận lợi cho tôi hoàn thành tốt đề tài này. Tôi xin chân thành cảm ơn các thầy, các cô trong Tổ Bộ Môn Vật Lí trường Đại Học An Giang; trường THPT Chuyên Thoại Ngọc Hầu; trường THPT Mỹ Thới và các bạn sinh viên khoa Sư Phạm Vật Lí trường Đại Học An Giang đã đóng góp ý kiến và những kinh nghiệm quý báo cho tôi trong quá trình thực hiện đề tài này.
  3. MỤC LỤC Phần Mở Đầu 1 I. Lý do chọn đề tài 1 II. Khách thể và đối tượng nghiên cứu 2 1. Khách thể nghiên cứu 2 2. Đối tượng nghiên cứu 2 III. Mục tiêu, nhiệm vụ nghiên cứu 2 1. Mục tiêu nghiên cứu 2 2. Nhiệm vụ nghiên cứu 2 IV. Giả thuyết khoa học 2 V. Phương pháp nghiên cứu 2 VI. Phạm vi nghiên cứu 3 VII. Đóng góp của đề tài 3 VIII. Cấu trúc khóa luận 3 Phần II : Nội Dung Nghiên Cứu 5 Chương 1: Cơ Sở Lý Luận 5 I. Vai trò và phân loại bài tập định lượng Vật Lí 5 1. Vai trò của bài tập trong việc giảng dạy Vật Lí ở trường phổ thông 5 1.1 Vai trò của bài tập Vật Lí đối với học sinh 5 1.2. Sự cần thiết của bài tập đối với giáo viên 5 2. Phân loại bài tập định lượng Vật Lí 6 2.1. Bài tập định lượng 6 2.2. Bài tập tập dượt 6 2.2.1. Chương: Từ trường 6 2.2.2. Chương: Cảm ứng điện từ 7 2.2.3. Chương: Khúc xạ ánh sáng 7 2.2.4. Chương: Mắt và các dụng cụ quang học 8 2.3. Bài tập tổng hợp 9 2.3.1. Chương: Từ trường 9 2.3.2. Chương: Cảm ứng điện từ 10 2.3.3. Chương: Khúc xạ ánh sáng 12 2.3.4. Chương: Mắt và các dụng cụ quang học 12
  4. II. Visual Basic, một cái nhìn tổng thể. Thiết kế chương trình Visual Basic 16 1. Cài đặt Visual Basic 17 2. Khởi động Visual Basic 17 3. Cửa sổ làm việc của Visual Basic khi chọn Standard.exe 18 3.1. Title bar (thanh tiêu đề) 18 3.2. Menu bar (thanh menu) 18 3.3. Thanh công cụ (Toolbar) 19 3.4. Hộp công cụ (Toolbox) 20 3.5. Cửa sổ thuộc tính 21 3.6. Form Layout Windows 25 3.7. Project Explorer Windows 26 III. Thiết kế chương trình Visual Basic 26 1. Thiết kế chương trình 26 2. Thiết kế giao diện 26 3. Viết code cho chương trình 28 3.1 Biến, kiểu và cách khai báo 30 3.1.1. Biến 30 3.1.2. Một số kiểu biến được sử dụng trong đề tài 30 3.1.3. Cách khai báo các biến 30 3.2. Các phép toán trong Visual Basic đã được sử dụng trong đề tài 30 3.2.1 Các toán tử trong Visual Basic 30 3.2.2. Thứ tự ưu tiên trong các phép toán 30 3.2.3. Toán tử gán:a = b 30 3.2.4. Toán tử quan hệ 31 3.2.5. Toán tử logic 31 3.3. Cấu trúc điều khiển của Visual Basic được sử dụng trong đề tài 31 3.4. Một số lệnh của Visual Basic được sử dụng trong đề tài 31 3.4.1. Lệnh End 31 3.4.2. Lệnh Exit Sub 31 3.4.3. Lệnh Beep 31 3.4.4. Lệnh Load 32 3.5. Một số hàm của Visual Basic được sử dụng trong đề tài 32 3.5.1. Hàm Abs (Number) 32
  5. 3.5.2. Hàm Sin (Number As Double) 32 3.5.3. Hàm Cos (Number As Double) 32 3.5.4. Hàm Tan (Number As Double) 32 3.5.5. Hàm Atn (Number As Double) 32 3.5.6. Hàm Sqr (Number) 32 3.5.7. Hàm Exp (Number) 32 3.5.8. Hàm Val (String) 32 IV. Ví dụ: Chương Trình Giải Phương Trình Bậc Nhất ax+ b = 0 32 1. Thiết kế giao diên 32 2. Viết code cho chương trình 34 Chương 2: Sử dụng Visual Basic để hỗ trợ giải một số các bài tập tiêu biểu Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) 37 I. Chuẩn bị 37 1. Soạn thảo một số bài tập định lượng tiêu biểu của Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) 37 2. Chuyển các bài tập nói trên sang File hình (.jpg) 37 2.1. Chuyển tất cả các bài tập đã soạn bằng file Word sang file PDF. Bằng cách sử dụng chương trình Foxit Reader 2.2. 37 2.2. Chuyển tất cả các bài tập từ file PDF sang File hình (.jpg). Bằng cách sử dụng chương trình Corel PHOTO-PAINT X3 37 II. Thiết kế giao diện 38 III. Viết Code cho từng đối tượng trong chương trình 42 1. Code của Combo1 42 2. Code của Combo2 45 3. Code của Combo (Bài Tập) 48 4. Code của Image 49 5. Code của nút Giải 49 6. Code của nút Tiếp Tục 52 7. Code của nút Kết Thúc 53 IV. Một số kỹ thuật được áp dụng 53 1. Một số kỹ thuật được sử dụng để tăng khả năng chịu lỗi cho chương trình53 1.1. Đề bài được load lên không đúng với tùy chọn của người sử dụng 53 1.2. Đứng chương trình khi người sử dụng đánh Text vào các Combo 54
  6. 1.3.Dữ kiện hiện lên trong chương trình không đúng với dữ kiện của bài mà người sử dụng đã chọn 54 1.4. Lỗi do người sử dụng nhập giá trị không phải số vào các ô text 55 1.5. Chưa nhập đủ các giá trị theo yêu cầu bài mà click Giải 56 1.6. Kết quả tính được không có ý nghĩa Vật Lí. 57 1.7. Chương trình không chạy khi nhập quá nhiều dữ liệu cho một đối tượng 58 1.8. Phép toán của chương trình không áp dụng đúng với bài tập mà người sử dụng đã chọn 59 1.9. Các hàm được dùng trong Visual Basic rất hạn hạn chế 59 1.10. Phép toán của chương trình sẽ cho kết quả sai khi máy tính đang sử dụng dấu “,” để ngăn cách giữa phần nguyên và phần thập phân. 59 2. Một số kỹ thuật được sử dụng để tăng sự tiện nghi cho người sử dụng 59 2.1. Kỹ thuật thiết kế giao diện 59 2.2. Phím tắt 60 2.3. Tự quy đổi đơn vị 60 V. Viết code cho một bài tập mẫu 60 1. Bài giải bài 0501 60 2. Viết code cho bài 0501 60 Phần III: Kết Luận 63 I. Thử nghiệm đánh giá 63 II. Tổng kết 63 1. Ưu điểm của phần mềm - Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) 63 2. Khuyết điểm của phần mềm - Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) 64 III. Hướng phát triển của đề tài 64 IV. Kiến nghị 64
  7. PHẦN MỞ ĐẦU I. Lý do chọn đề tài Chúng ta đang sống trong thời đại khoa học công nghệ phát triển như vũ bão. Công nghệ thông tin đã được ứng dụng rất rộng rãi trong đời sống và sản xuất, vì thế để có thể bắt kịp xu thế của thời đại và hòa mình vào dòng phát triển chung của đất nước, Bộ GD – ĐT nước ta đã và đang tiến hành cải cách nội dung và phương pháp giảng dạy trong nhà trường ở mọi cấp học, mọi ngành học. Bên cạnh việc đổi mới nội dung, đổi mới về phương pháp giảng dạy, việc ứng dụng nghệ thông tin vào công tác giảng dạy là rất quan trọng. Nó giúp người giáo viên có thể kiểm tra, đánh giá chất lượng học tập của học sinh một cách nhanh chóng và chính xác hơn, góp phần nâng cao chất lượng giáo dục. Bằng cách ứng dụng các phần mềm tin học vào việc soạn thảo các bài tập, các đề kiểm tra, như các phần mềm (Novoasoft ScienceWord 5.0; McMIX ). Các phần mềm này nếu được sử dụng một cách có chọn lọc và hiệu quả sẽ mang lại kết quả cao trong việc kiểm tra đánh giá chất lượng học tập của học sinh. Qua khảo sát, các giáo viên Vật Lí – sinh viên khoa sư phạm Vật Lí đều nhất trí cho rằng việc soạn thảo các bài tập định lượng, các đề kiểm tra Vật Lí phổ thông có một số vấn đề sau: - Hiện nay việc kiểm tra đánh giá chất lượng học tập của học sinh Trung Học Phổ Thông chủ yếu dựa trên phương pháp trắc nghiệm khách quan, nên cần soạn thảo rất nhiều bài tập và các đề kiểm tra. - Việc phân loại và hệ thống các bài tập định lượng tiêu biểu của từng chương, từng phần mất rất nhiều thời gian. - Để soạn thảo hoàn chỉnh một đề bài tập định lượng của chương trình Vật Lí phổ thông thường mất rất nhiều công sức. Nhưng trên thực tế thì không phải lúc nào cũng đạt được kết quả như mong muốn. Việc ứng dụng các phần mềm vào việc soạn thảo các bài tập Vật Lí phổ thông chưa phong phú, chưa thực sự có chiều sâu. Một phần là do hạn chế về trình độ tin học của giáo viên, một phần là do cơ sở hạ tầng công nghệ thông tin hiện nay trong trường học chưa tốt, chưa thực sự đáp ứng được yêu cầu của thực tế giảng dạy và nghiên cứu của giáo viên. Không những thế, việc ứng dụng các phần mềm hỗ trợ cho việc soạn thảo các bài tập Vât Lí phổ thông hiện nay nói chung chỉ dừng lại ở mức độ hỗ trợ về vẽ hình và trộn đề trắc nghiệm với những đáp án cố định không thể thay đổi được Chứ chưa có phần mềm nào có thể thay thế người giáo viên phân loại các bài tập định lượng, tính toán và cho ra kết quả được. Qua thời gian học tập và nghiên cứu ở trường đại học An Giang, được tiếp xúc và làm quen với nhiều phần mềm lập trình khác nhau. Tôi nhận thấy rằng Visual Basic là một trong những phần mềm lập trình có ngôn ngữ khá đơn giản và có khả năng ứng dụng cao. Nó có thể giải quyết được vấn đề soạn thảo nhanh các bài tập Vật Lí phổ thông. Với những lý do trên, tôi quyết định nghiên cứu đề tài: Biên Soạn Phần Mềm – Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học). 1
  8. II. Khách thể và đối tượng nghiên cứu 1. Khách thể nghiên cứu Sách Giáo Khoa, Sách Bài Tập và một số sách tham khảo Vật Lí 11 (Phần : Điện Từ Học & Quang Hình Học). Tìm hiểu môi trường lập trình của Visual Basic. 2. Đối tượng nghiên cứu Một số bài tập định lượng tiêu biểu (Phần: Điện Từ Học và Quang Hình Học) của chương trình Vật Lí 11. Phần Mềm – Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học). III. Mục tiêu, nhiệm vụ nghiên cứu 1. Mục tiêu nghiên cứu Qua đề tài này, nhằm tạo ra phần mềm “Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học)” hỗ trợ cho giáo viên biên soạn nhanh các bài tập định lượng của chương trình Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học). 2. Nhiệm vụ nghiên cứu Quá trình nghiên cứu có thể tóm tắt qua các bước: - Phân loại, hệ thống, nghiên cứu nội dung và phương pháp giải các bài tập định lượng của chương trình Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) trong sách giáo khoa, sách bài tập và các sách tham khảo. - Tiến hành giải và xây dựng các thuật toán hỗ trợ cho lập trình. - Tìm hiểu ngôn ngữ lập trình, giao diện đồ họa và các ứng dụng của Visual Basic. - Biên soạn từng bài tập cụ thể, sau đó kết nối thành một tổng thể chung cho tất cả các bài. - Đánh giá kết quả thu được sau khi nghiên cứu. IV. Giả thuyết khoa học Nếu soạn thảo được phần mềm “Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học)” thì nó sẽ hỗ trợ tốt cho người giáo viên trong việc giải các bài tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) nói riêng và góp phần nâng cao hiệu quả trong việc soạn thảo các đề trắc nghiệm nói chung. V. Phương pháp nghiên cứu Khi thực hiện đề tài này, tôi có sử dụng một số phương pháp nghiên cứu sau đây: - Phương pháp đọc sách và tài liệu tham khảo. - Phương pháp phân loại và hệ thống hóa các lý thuyết và các bài tập. - Phương pháp phân tích và tổng hợp. - Tham khảo ý kiến của giáo viên hướng dẫn. 2
  9. - Tham khảo các sản phẩm cùng loại. - Tham gia các diễn đàn Visual Basic, câu lạc bộ Visual Basic. VI. Phạm vi nghiên cứu Vai trò và phân loại một số bài tập định lượng tiêu biểu của Sách Giáo Khoa, Sách Bài Tập và một số sách tham khảo Vật Lí 11 (Phần : Điện Từ Học & Quang Hình Học). Ngôn ngữ lập trình, giao diện đồ họa và các ứng dụng của Visual Basic. VII. Đóng góp của đề tài Nghiên cứu đề tài này giúp tôi có được một hệ thống kiến thức tương đối hoàn chỉnh về phần mềm Visual Basic, đồng thời tích lũy được một số kiến thức và kinh nghiệm trong việc giải các bài tập Vật Lí 11 (Phần : Điện Từ Học & Quang Hình Học). Góp phần hỗ trợ đắc lực cho giáo viên các trường Trung Học Phổ Thông soạn thảo nhanh các bài tập Vật Lí 11 (Phần : Điện Từ Học & Quang Hình Học), tiết kiệm được nhiều thời gian và công sức. Nếu được sử dụng tốt nó còn có tác dụng rất lớn trong việc rèn luyện kỹ năng thực hành giải bài tập của học sinh. Bên cạnh đó còn có thể dùng làm tư liệu tham khảo cho sinh viên các khóa sau học tập và nghiên cứu. Góp phần làm phong phú thêm cho thư viện tư liệu của bộ môn Vật Lí. VIII. Cấu trúc khóa luận Phần I : Mở Đầu Phần II : Nội Dung Nghiên Cứu Chương 1: Cơ sở lý luận I. Vai trò và phân loại bài tập định lượng Vật Lí 1. Vai trò của bài tập trong việc giảng dạy Vật Lí ở trường phổ thông 1.1. Vai trò của bài tập Vật Lí đối với học sinh 1.2. Sự cần thiết của bài tập đối với giáo viên 2. Phân loại bài tập định lượng Vật Lí 2.1. Bài tập định lượng 2.2. Bài tập tập dượt 2.3. Bài tập tổng hợp II. Visual Basic, một cái nhìn tổng thể. Thiết kế chương trình Visual Basic 1. Cài đặt Visual Basic 2. Khởi động Visual Basic 3. Cửa sổ làm việc của Visual Basic III. Thiết kế chương trình Visual Basic 3
  10. 1. Thiết kế chương trình 2. Thiết kế giao diện 3. Viết code cho chương trình IV. Ví dụ: Giải phương trình bậc nhất ax+ b = 0 Chương 2: Sử Dụng Visual Basic Hỗ Trợ Giải Một Số Bài Tập Định Lượng Tiêu Biểu Của Chương Trình Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) I. Chuẩn bị 1. Soạn thảo một số bài tập định lượng tiêu biểu của chương trìnhVật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) trên Microsoft Word 2. Chuyển các File bài tập sang File hình.jpg 2.1. Chuyển tất cả các bài tập từ file Word sang file PDF 2.2. Chuyển tất cả các bài tập từ file PDF sang File hình (.jpg) II. Thiết kế giao diện III. Viết code cho từng tường đối tượng trong chương trình IV. Một số kỹ thuật được sử dụng 1. Một số kỹ thuật được sử dụng để tăng khả năng chịu lỗi của chương trình 2. Một số kỹ thuật được sử dụng để tăng sự tiện nghi cho người sử dụng V. Viết code cho một bài tập mẫu 1. Bài giải bài 0501 2. Viết code cho bài 0501 Phần III: KẾT LUẬN I. Thử nghiệm đánh giá II. Tổng kết 1. Ưu điểm của phần mềm 2. Khuyết điểm của phần mềm III. Hướng phát triển của phần mềm IV. Kiến nghị Tài Liệu Tham Khảo 4
  11. Phần II : NỘI DUNG NGHIÊN CỨU Chương 1: CƠ SỞ LÝ LUẬN I. Vai trò và phân loại bài tập định lượng Vật Lí 1. Vai trò của bài tập trong việc giảng dạy Vật Lí ở trường phổ thông 1.1 Vai trò của bài tập Vật Lí đối với học sinh Việc giảng dạy Vật Lí trong các trường phổ thông không chỉ làm cho học sinh hiểu được một cách sâu sắc đầy đủ những kiến thức qui định trong chương trình, mà còn phải làm cho các em biết vận dụng những kiến thức đó để giải quyết các nhiệm vụ học tập và những vấn đề của thực tiễn cuộc sống đặt ra. Muốn vậy cần phải thường xuyên rèn luyện cho học sinh thói quen và kỹ năng, kỹ xảo vận dụng những kiến thức đã học vào cuộc sống hằng ngày. Kỹ năng vận dụng kiến thức trong học tập và trong thực tiễn đời sống chính là thước đo mức độ sâu sắc và vững vàng của những kiến thức mà học sinh thu nhận được. Bài tập Vật Lí với chức năng là một phương pháp dạy học, có một vị trí đặc biệt quan trọng trong việc giảng dạy Vật Lí ở trường phổ thông. Trước hết bài tập Vật Lí giúp học sinh hiểu sâu hơn những kiến thức Vật Lí, biết phân tích chúng và ứng dụng vào thực tiễn và đời sống. Trong nhiều trường hợp, dù giáo viên cố gắng trình bày tài liệu một cách mạch lạc, hợp logic, phát biểu định luật chính xác, làm thí nghiệm đúng các yêu cầu, quy tắc và cho ra kết quả chính xác đi nữa. Thì đó chỉ mới là điều kiện cần chứ chưa phải là điều kiện đủ để học sinh hiểu sâu và nắm vững kiến thức. Chỉ có thông qua các bài tập ở hình thức này hay hình thức khác, nhằm tạo điều kiện cho học sinh tự lực vận dụng những kiến thức đã học để giải quyết thành công những tình huống cụ thể khác nhau, thì kiến thức đó mới trở nên sâu sắc hoàn thiện và biến thành vốn riêng của các em. Trong quá trình giải quyết các tình huống cụ thể do bài tập đặt ra học sinh phải sử dụng các thao tác tư duy như so sánh, tổng hợp, khái quát hóa, trừu tượng hóa để giải quyết các vấn đề, do đó tư duy của học sinh có điều kiện được rèn luyện và phát huy. Vì thế có thể nói bài tập Vật Lí là một phương tiện rất tốt để phát triển tư duy, óc tưởng tượng, khả năng độc lập trong suy nghĩ và hành động, tính kiên trì trong khắc phục khó khăn của học sinh. Bài tập Vật Lí là cơ hội để giáo viên đề cập đến những kiến thức mà trong giờ học không có điều kiện để đề cập, nhằm bổ sung những kiến thức còn thiếu cho học sinh. Giúp cho việc thu nhận kiến thức của các em được chặt chẽ, logic và có hệ thống. Để giải các bài tập học sinh phải nhớ lại những kiến thức vừa mới học, phải vận dụng những kiến thức của nhiều phần, nhiều chương khác nhau (nhất là đối với bài tập có nội dung tổng hợp), hoặc phải đào sâu một khía cạnh nào đó của kiến thức, do đó bài tập là một hình thức ôn tập, hệ thống hóa kiến thức rất có hiệu quả. Ngoài ra nếu xét về mặt điều khiển hoạt động nhận thức, ta thấy bài tập còn là một phương tiện tốt để kiểm tra việc thu nhận kiến thức, kỹ năng, kỹ xảo của học sinh. [1] 5
  12. 1.2. Sự cần thiết của bài tập đối với giáo viên Xu hướng mới của nền Giáo Dục hiện nay là: Dạy cho học sinh kỹ năng thực hành và kiểm tra đánh giá chất lượng học tập của các em theo phương pháp trắc nghiệm khách quan. Do đó đã tạo cho giáo viên một áp lực rất lớn là phải soạn được nhiều bài tập định lượng một cách nhanh chóng và chính xác trên các mẫu bài tập của Sách Giáo Khoa và Sách Bài Tập. ™ Từ hai nguyên nhân trên ta thấy được sự cần thiết phải ra đời một phần mềm giúp người giáo viên phân loại và soạn thảo nhanh các bài tập định lượng của chương trình Vật Lí (Phần: Điện Từ Học & Quang Hình Học). Trong giới hạn đề tài này chúng tôi đã đáp ứng được phần nào nhu cầu cấp thiết nói trên. 2. Phân loại bài tập định lượng Vật Lí 2.1. Bài tập định lượng Bài tập định lượng là những bài tập mà muốn giải nó ta phải thực hiện một loạt các phép tính. Dựa vào mục đích dạy học ta có thể phân bài tập này thành hai loại: Bài tập tập dượt và bài tập tổng hợp. [2] 2.2. Bài tập tập dượt Bài tập tập dượt là bài tập đơn giản được sử dụng ngay sau khi nghiên cứu một khái niệm, một định luật hay một quy tắc Vật Lí nào đó. Loại bài tập này có tác dụng giúp học sinh hiểu sâu sắc hơn mặt định lượng của các khái niệm, các định luật Vật Lí vừa mới nghiên cứu. Đồng thời nó cũng tạo điều kiện giúp học sinh giải được những bài toán tính toán tổng hợp phức tạp hơn. [3] Một số bài tập dược đã được sử dụng trong đề tài 2.2.1. Chương: từ trường Bài 0401: Một thanh dài 2m có dòng điện I = 5 A chạy qua, được đặt vuông góc với từ trường đều có độ lớn B = 0,1 T. Tính lực từ tác dụng lên thanh? Bài Làm: Lực từ tác dụng lên thanh: FBIl= = 1() N Bài 0406: Dòng điện thẳng dài có cường độ I = 5 A đặt trong không khí. Tính cảm ứng từ tại vị trí cách dòng điện 0,2 m. Bài Làm: I Cảm ứng từ tại điểm đang xét: BT==2.10−−76 . 5.10 ( ) r Bài 0407: Tính cảm ứng từ tại tâm của khung dây tròn có dòng điện I = 2A chạy qua. Biết khung dây tròn được tạo bởi 200 vòng dây sít nhau, có bán kính 0,2 m. Khung dây được đặt trong không khí. Bài Làm: I Cảm ứng từ tại tâm khung dây: BN==2π .10−−73 . 1,26.10 ( T ) R 6
  13. Bài 0408: Một ống dây có chiều dài 20 cm gồm N = 5000 vòng quấn đều theo chiều dài ống, ống dây không có lõi và đặt trong không khí. Cường độ dòng điện qua dây dẫn của ống là 0,5 A. Tính cảm ứng từ trong lòng ống dây. Bài Làm: N Cảm ứng từ trong lòng ống dây: BIT==4π .10−−73 . 15,7.10 ( ) l Bài 0412: Bắn một điện tử tích điện e = 1,6.10-19 C, với vận tốc v = 108 m/s vào một từ trường đều có cảm ứng từ B = 2.10-4 T theo phương vuông góc với đường sức từ. Tính lực từ tác dụng lên điện tử. Bài Làm: Lực từ tác dụng lên điện tử: f ==qvB. . .sinα 3,2.10−15 ( N ) 2.2.2. Chương: Cảm ứng điện từ r Bài 0501: Tính từ thông gây bởi một từ trường đều B (B =0,02 T) qua một hình phẳng có chu vi là hình vuông cạnh a = 10 cm. Véctơ pháp tuyến của hình phẳng hợp r với B một góc 450. Bài làm: Từ thông qua hình phẳng: Φ=B cosSWbα = 2.10(−4 ) Bài 0508: Tính độ tự cảm của một ống dây hình trụ có chiều dài 0,5 m gồm 1000 vòng dây, mỗi vòng dây có bán kính 10 cm. Bài Làm: NN22 Độ tự cảm của ống dây là: LS==4.πππ .10−−772 . . 4. .10 . . . RH ≈ 0,08 ( ) ll Bài 0511: Một cuộn tự cảm có độ tự cảm 0,1 H; trong đó dòng điện biến thiên đều 200 A/s thì suất điện động tự cảm xuất hiện. Tìm giá trị của suất điện động tự cảm. Bài Làm: ∆i Giá trị của suất điện động tự cảm: eL==20 ( V ) tc ∆t Bài 0513: Cuộn tự cảm có L = 2,0mH. Trong đó có dòng điện cường độ 10A. Năng lượng tích lũy trong cuộn đó bằng bao nhiêu? Bài Làm: 1 Năng lượng tích lũy trong cuộn: WLiJ==.0,1()2 2 2.2.3. Chương: Khúc xạ ánh sáng Bài 0601: Ánh sáng đi từ không khí vào một chất lỏng trong suốt với góc tới i = 450, thì tia khúc xạ ứng với góc khúc xạ r = 300. Tính chiết suất của chất lỏng. Bài Làm: 7
  14. sin i Chiết suất của chất lỏng: ninr.sin=⇒== .sin n 2 12 2sin r Bài 0604: Tốc độ ánh sáng trong chân không là c = 3.108 m/s và tinh thể A có chiết suất n = 2,42. Tính tốc độ truyền ánh sáng trong tinh thể A. Bài Làm: cc m Ta có: nv=⇒=≈1,24.108 ( ) vn s 2.2.4. Chương: Mắt và các dụng cụ quang học Bài 0613: Cho tia sáng truyền tới lăng kính như hình vẽ. Biết góc chiết quang A = 450, tia ló truyền đi sát mặt AC. Tính góc lệch tạo bởi lăng kính. Bài Làm: 0 Góc lệch tạo bởi lăng kính có giá trị: Di=+−12 i A =45 Bài 0701: Một thấu kính phân kì có độ tụ -5dp. Nếu vật đặt cách kính 30cm thì ảnh hiện ra ở đâu và độ phóng đại bao nhiêu? Bài Làm: 1 f ==−20 (cm ) - Tiêu cự của kính: D df. - Ảnh cách thấu kính một khoảng: dcm′ ==−12 ( ) ( ảnh ảo) df− AB′′ d ′ - Số phóng đại của ảnh: k ==−=0, 4 AB d Bài 0711: Một người cận thị lớn tuổi chỉ còn nhìn thấy rõ các vật trong khoảng cách mắt 50cm ÷ 60cm . Tính độ tụ các kính phải đeo để người này có thể: - Nhìn xa vô cùng mà không điều tiết. - Đọc được sách khi đặt gần mắt nhất, cách mắt 25cm. Coi kính đặt sát mắt. Bài Làm: 1 1 Để nhìn ở xa thì phải có: f1 = −OK CV ⇒ D1 = = − = −1,5 (dp) f1 OKCV Để đọc sách ở gần mặt nhất, phải đeo kính có tiêu cự f2 ứng với độ tụ D2 : 1 1 1 1 1 OkCc .d OkCc − d + = = − ⇒ f2 = ⇒ D2 = = 2 (dp) d d′ f2 d OkCc OkCc − d OkCc .d 8
  15. Bài 0720: Một kính lúp có tiêu cự f = 4cm . Một người mắt tốt có khoảng nhì rõ ngắn nhất là OCc = 24 cm đặt sát mắt sau kính lúp để quan sát một vật. Tìm độ bội giác khi ngắm chừng ở cực cận. Bài Làm: fd−+′ fOC Độ bội giác khi ngắm chừng ở cực cận: Gk= ==cc =7 cc ff Bài 0801: Kính hiển vi có tiêu cự vật kính và thị kính là f12==0,5cm ; f 2,5 cm . Độ dài quang học của kính là δ =17cm . Người quan sát có mắt không bị tật và có khoảng cực cận OCc = 20 cm . Tính số bội giác khi ngắm chừng ở vô cực. Bài Làm: δ.OCc Số bội giác khi ngắm chừng ở vô cực: G∞ ==272 ff12. Bài 0805: Vật kính của một kính thiên văn dùng trong trường học có tiêu cự f1 =1, 2m. Thị kính của một thấu kính hội tụ có tiêu cự f2 = 4cm . Tính khoảng cách giữa hai kính và số bộ giác của kính thiên văn khi ngắm chừng ở vô cực. Bài Làm: - Khi ngắm chừng ở vô cực. - Khoảng cách giữa hai kính: OO12= f 1+= f 2 1, 24 m f1 - Số bội giác của kính tiên văn: G∞ = = 20 f2 2.3. Bài tập tổng hợp Đó là những bài tập phức tạp mà muốn giải nó phải vận nhiều khái niệm, nhiều định luật, nhiều quy tắc và công thức ở những phần và chương khác nhau của chương trình. Mục đích của loại bài tập này là ngoài việc đào sâu, mở rộng, cũng cố kiến thức, nó còn giúp học sinh thấy được mối liên hệ giữa những phần khác nhau của chương trình, biết lựa chọn và phối hợp kiến thức để giải các vấn đề do bài tập đặt ra. Với mục đích như vậy, nội dung các bài tập tổng hợp rất phong phú, đa dạng và có mức độ khó dễ khác nhau. Bài tập tổng hợp thường tập trung vào các trọng tâm của chương trình. Ta cần lưu ý trong việc lựa chọn bài tập, những bài tập lựa chọn phải là điển hình, đại diện được những nội dung và phương pháp giải cơ bản của mỗi loại, có như vậy mới đi đúng trọng tâm và giúp học sinh giải được những bài tập tương tự. Khi giải những bài tập tính toán học sinh thường gặp những khó khăn trong việc phân tích các hiện tượng Vật Lí có trong nội dung bài tập, trong việc lựa chọn các công công thức, các định luật, các quy tắc cũng như các phương pháp đúng đắn để giải. Vì vậy khi giải các bài tập Vật Lí nói chung ta cần phải phân tích tỉ mỉ các hiện tượng và các quá trình chứa đựng trong nội dung bài tập. Đối với bài tập tính toán, đó là cơ sở để vạch ra tiến trình giải một cách hợp lý, để chọn đúng các định luật, các kiến thức Vật Lí liên quan. [4] Một số bài tập tổng hợp được sử dụng trong đề tài 9
  16. 2.3.1. Chương: Từ trường r Bài 0403: Giữa hai cực của nam châm chữ U là từ trường đều có B hướng thẳng đứng xuống, người ta treo một dây dẫn có chiều dài l = 50 cm, khối lượng 10g nằm ngang trong từ trường bằng hai dây mảnh nhẹ. Biết góc lệch giữa dây treo so với phương thẳng đứng khi cho dòng điện I = 2 A đi qua dây là 450. Cho g = 9,8 m/s2.Tính độ lớn của cảm ứng từ B. Bài Làm: r α T r rr - Hệ ở trạng thái cân bằng: TPF+ +=0 r B r F - Lực từ tác dụng lên thanh: FBIlPtg= = . α I mgtg α - Độ lớn của từ trường: B ==0,1 (T ) Il. r P r Bài 0404: Hai thanh nằm song song cách nhau l = 30 cm đặt trong từ trường B hướng lên hợp với mặt phẳng hai thanh ray góc 300, B = 0,04 T. Một thanh kim loại MN đặt trên thanh ray, có thể dịch chuyển không ma sát vuông góc với ray. Nối hai thanh ray với nguồn điện ξ = 20 V ; r = 0,5 Ω (đầu M nối với cực dương); điện trở thanh ray và dây dẫn là R = 9,5 Ω . Tính lực từ tác dụng lên thanh kim loại? Bài Làm: r M B - Cường độ dòng điện qua dây lim loại là: ξ α IA==2( ) I ξ Rr+ l - Lực từ tác dụng lên thanh kim loại: FBIl== . . .sinα 0,012 ( N ) N Bài 0417: Hạt êlectron có vận tốc đầu bằng 0, được gia tốc qua một hiệu điện thế r 400V. Tiếp đó, nó được dẫn vào một miền có từ trường đều với B ⊥ vr (vr là vận tốc của êlectron). Quỹ đạo của êlectrôn trong đó là một đường tròn bán kính R = 7cm. Xác r định độ lớn của cảm ứng từ B . Bài Làm: 1 - Công của lực điện trường bằng độ biến thiên động năng: A ==//qU mv2 (1) ee2 mv. - Bán kính quỹ đạo của êlectrôn: R = (2) //.qBe 1 2.mU - Từ (1) và (2): ⇒=B e =0,96.10−3 (T ) Rq//e 2.3.2. Chương: Cảm ứng điện từ Bài 0504: Một ống dây hình trụ dài gồm N = 1000 vòng dây, diện tích mỗi vòng S= 100cm2 . Ống dây có R =16Ω , hai đầu đoản mạch và được đặt trong từ trường đều: 10
  17. r véctơ cảm ứng từ B song song với trục của hình trụ và có độ lớn tăng đều 4.10−2 T / s . Tính công suất toả nhiệt trong ống dây. Bài Làm: ∆Φ ∆( cos)NBS α - Suất điện động trong ống dây: //eiR== = . c ∆∆tt ∆BNS. - Cường độ dòng điện cảm ứng: iA==. 0,025 ( ) ∆tR - Công suất toả nhiệt trong ống dây: P ==Ri.0,01()2 W Bài 0507: Một ống dây dẫn hình trụ dài gồm N = 1000 vòng dây, mỗi vòng có r bán kính R = 5 cm. Ống dây được đặt trong từ trường đều, B song song với trục hình ∆B trụ, có độ lớn tăng đều với thời gian theo quy luật =10−2 T . Nối hai đầu ống dây ∆t s với một tụ điện có điện dung CF=10−4 . Hãy tính năng lượng của tụ điện tích được. Bài Làm: N vòng - Độ lớn suất điện động cảm ứng trong ống dây: r ∆Φ ∆BB ∆ B eNSNR== cosαπ = 2 c ∆∆tt ∆ t R - Năng lượng tích luỹ được trong tụ điện: 2 11122⎛⎞∆B 2 WCUCeCNR=== c ⎜⎟π 222⎝⎠∆t C WJ= 3,08.10−9 ( ) Bài 0519: Một ống dây dài l = 40 cm gồm 1200 vòng dây nằm ngang trong không khí. Trục ống vuông góc với từ trường đều có B0 = 0,005 T. Trong lòng ống dây có treo 0 một kim nam châm lệch góc α = 45 .Tìm I. r r Bài Làm: B0 B - Kim nam châm chỉ chiều của từ trường tổng hợp trong lòng ống dây khi có dòng điện đi qua: rr r - Ta có: BB=+i B0 α r rr r r Bi Bi ⊥ B0 ⇒=Bi B0 (1) rr 0 (BBi ,450 ) = - Từ thông qua ống dây: Φ ==LI cos NBSi α (2) 11
  18. NB S NB S B . l - Từ (1) và (2): IA==00 = 0 =1, 33 ( ) LNN 2 4.π .10−7 . 4.π .10−7 S l 2.3.3. Chương: Khúc xạ ánh sáng Bài 0611: Một người thợ lặn ở dưới nước nhìn thấy mặt trời ở độ cao Â= 600 so với đường chân trời. Tính độ cao thực của mặt trời so với đường chân trời. Biết chiết 4 suất của nước là n = . 3 Bài Làm: - Hướng của mặt trời mà người thợ lặng nhìn thấy là hướng của tia sáng khúc xạ vào nước. S′ 0 ) ∞ - Góc khúc xạ: rA=−90 S ⎛⎞4 ) ∞ i - Góc tới: sinin=⇒= sin r iac sin⎜⎟ cos A ⎝⎠3 - Độ cao thực của mặt trời so với đường chân trời: 0 r 60 00⎛⎞4 ) 0 xiacA=−=−90 90 sin⎜⎟ cos = 48,2 ⎝⎠3 Bài 0612: Một cây gậy dài 2m cắm thẳng đứng ở đáy hồ. Gậy nhô khỏi mặt nước 0,5m. Ánh sáng mặt trời chiếu xuống hồ theo phương hợp với pháp tuyến của mặt nước góc 600. Tìm chiều dài bóng của cây gậy in trên đáy hồ. Bài Làm: - Bóng của cây gậy trên đáy hồ: BCBJJCAHiBHr= +=.tan + .tan - Áp dụng định luật khúc xạ: 2 sinii⎛⎞ sin sin i sinin=⇒=⇒=−⇒= sin r sin r cos r 1⎜⎟ tan r nn⎝⎠ ni22− (sin ) - Vậy bóng của gậy trên đáy hồ: sin i BCi=+0,5.tan 1,5. = 2,15 ( m ) ni22− (sin ) A i I H r B J C 12
  19. 2.3.4. Chương: Mắt và cách dụng cụ quang học Bài 0702: Thấu kính hội tụ có tiêu cự f = 20cm . Vật AB đặt trên trục chính, vuông góc với trục chính có ảnh A’B’ cách vật một đoạn acm=18 . Xác định vị trí của vật? Bài Làm: - Trong mọi trường hợp: add= //+ ′ (1) df. - Ngoài ra ta có: d′ = (2) df− - Từ (1) và (2): ƒ Với : dd+ ′ = a (vật thật cho ảnh thật) Thì dadaf2 − +=0 ( vô nghiệm a<4f ) ƒ Với : dd+ ′ =− a (vật thật cho ảnh ảo) Thì dadaf2 + −=0 (có hai nghiệm) Hai vị trí của vật: dcm1 =12 ( ) (nhận) ; dcm2 = −30 ( ) (loại) Bài 0704: Một vật phẳng nhỏ AB đặt vuông góc với trục chính của một thấu kính hội tụ (L), cho một ảnh thật A11B có độ lớn k1 gấp 3 lần vật. Đưa vật ra xa (L) thêm một khoảng acm= 5 ta thu được ảnh thật A22B có độ lớn k2 gấp 2 lần vật. a. Xác định tiêu cự của thấu kính và vị trí ban đầu của vật AB . b. Xác định a để thu được ảnh thật A22BnAB= . 11 (với n <1). Áp dụng với n =1/2 Bài Làm: a. Xác định tiêu cự của thấu kính và vị trí ban đầu của vật AB . - Trước khi dời AB và ảnh A11B cùng là thật, nên k1 < 0. ABAB⎯⎯L→ ƒ Sơ đồ tạo ảnh: 11 dd11′ dk11′ f (1)+ ƒ Số phóng đại ảnh: −=−=−kdf11 ⇒ = (1) ddf11− k 1 - Sau khi dời AB và ảnh A22B cùng là thật, nên k2 < 0 . ABAB⎯⎯L→ ƒ Sơ đồ tạo ảnh: 22 dd22′ 13
  20. ƒ Số phóng đại ảnh: dk22′ ff (1)+ −=−=−kdfa21 =− ⇒ = − (2) ddfdaf22−+−() 1 k 2 (1)(1)kk+ + - Từ (1) và (2) : 12f = fa− kk12 kk. ƒ Tiêu cự của thấu kính: f ==12.30()acm kk12− df1′. ƒ Vị trí ban đầu của vật: dcm1 ==40 ( ) df1′ − 1 b. Xác định a để thu được ảnh thật A BnAB= . (với n <1). Áp dụng với n = 22 11 2 AB2 2=⇒= n AB 11 AB 2 2 n AB 11 AB22 AB 11 d 2′ ⇒=nnk () ⇒−=−1 AB AB d2 - Theo đề bài: ff ⇒=⇔nk 11 = nk df21−+−() daf (.nk+− 1) f nk . . d ⇒=acm111 =10 ( ) nk. 1 - Vậy từ vị trí ban đầu thấu kính được dời thêm một đọan: acm=10 ( ) Bài 0704: Hai thấu kính, một hội tụ ( f1 = 20cm ), một phân kì ( f2 =−10cm ), có cùng trục chính. Khoảng cách hai quang tâm là lcm= 30 . Vật AB vuông góc với trục chính được đặt bên trái L1 và cách L1 một đoạn d1 . a. Cho dcm1 = 20 , hãy xác định vị trí và số phóng đại ảnh cuối cùng cho bởi hệ hai thấu kính. b. Tính d1 để ảnh sau cùng là ảnh ảo và bằng n lần vật. Áp dụng n = 2 . Bài Làm: a. Tìm vị trí và số phóng đại ảnh cuối cùng cho bởi hệ: LL - Sơ đồ tạo ảnh: AB⎯⎯⎯⎯12→ A B ⎯⎯⎯⎯→ A B dd11;;′′11 d 2 d 2 2 2 df ldlf− − df ′′11 1 1 11 - Ta có: ddld121==−=; df11−− df 11 df22.( fldlfdf 2 1− 1− 11 ) dcm2′ == =−10 ( ) dfdlfflfff22−−−−+ 1() 12 112 AB22⎛⎞⎛⎞ d 1′′ d 2 f 1.1 f 2 - Số phóng đại: kkk===−−=12 ⎜⎟⎜⎟ = AB ⎝⎠⎝⎠dddlfflfff12112112()−− −+ 2 14
  21. b. Tính d1 để ảnh sau cùng là ảnh ảo và bằng hai lần vật. - Ảnh A22B là ảnh ảo khi: ⎛⎞lf1 −−fl21() f⎜⎟ − d 1 fldlfdf21()−− 1 11 ⎝⎠lf− 1 d2′ == và d1 60 và dcm1 < 40 - Ảnh A22B là ảnh ảo và bằng n lần vật: ⎛⎞⎛⎞dd′′ ff. kn=−⎜⎟⎜⎟12. − = 12 =± ⎝⎠⎝⎠dddlfflfff12112112()−− −+ ff12.(.)− nff 12− lf 1 ƒ Khi kn= : dcm1 ==35 ( ) (nhận so với điều kiện) nl()−− f12 f − ff12.(.)−− nff 12 lf 1 ƒ Khi kn=− : dcm1 ==45 ( ) (loại so với điều kiện) nl()−− f12 f Bài 0724: Một người có khoảng nhìn rõ ngắn nhất OCc =15 cm và giới hạn nhìn rõ là a = 35cm . Người này quan sát một vật nhỏ qua kính lúp có tiêu cự f = 5cm . Mắt đặt cách kính lúp 10 cm. a. Phải đặt vật trong khoảng nào trước kính? b. Năng suất phân li của mắt người này là 1′ . Tính khoảng cách ngắn nhất giữa hai điểm trên vật mà mắt người này còn phân biệt được khi ngắm chừng ở điểm cực cận. Bài Làm: ()lOCf− ′ c - Khi quan sát ở cực cận: dlOCcmdcc=− =−52,5 ⇒ c = = cm ()lOCf−−c ().lOCaf− c + - Khi quan sát ở cực viễn: dlOCadvcv′ =− + ⇒ = =4, 44 cm lOCa−−−c f - Vật phải được đặt trong khoảng 2,5cm≤ d≤ 4,44 cm - Quan sát vật qua kính nghĩa là quan sát ảnh của vật tạo bởi kính. AB αMin.OC c - Ta có: α =≥⇔Gkc.21,4αα0 Min c ≥⇒= α Min ABm Min = µ OCcc k Bài 0802: Kính hiển vi có tiêu cự vật kính và thị kính là f12==1;cm f 4. cm Một người mắt tốt có khoảng nhìn rõ ngắn nhất OCc = 25 cm , đặt mắt sát sau thị kính quan 15
  22. sát một vật nhỏ AB mà không điều tiết. Số bội giác của kính khi đó là G = 90 . Tính khoảng cách giữa vật kính và thị kính ? Bài Làm: ff12 - Sơ đồ tạo ảnh: ABABAB⎯⎯⎯′′→⎯⎯⎯11→ 2 2 dd11;; d 2 d 2 ′ - Khi quan sát ở cực viễn: ddfcm222=∞⇒ = =4 (1) ′′ dfd111OCcc− OC - Số bộ giác của kính: GkG==12 . = df12 f 1 f 2 ′ ′ ⇒ d1 =−13,4 (loại vì ảnh phải là thật) ; dcm1 =15,4 (nhận) (2) ′ - Từ (1)(2) suy ra: OO12== l d 1 + d 2 =19,4 cm Bài 0808: Một kính thiên văn có tiêu cự của vật kính là f1 = 85cm , tiêu cực của thị kính là f2 = 5cm , được sử dụng cho người bình thường. Khi một người cận thị có OCc =50cm . Để quan sát mặt trăng qua kính thiên văn nói trên thì người này cần dịch chuyển thị kính như thế nào để khi quan sát mắt không phải điều tiết ? Bài Làm: - Đối với người bình thường khi quan sát ở vô cực: lOOf= 12=+= 1 f 2 90 cm ff12 - Sơ đồ tạo ảnh: ABABAB⎯⎯⎯′′→⎯⎯⎯11→ 2 2 dd11;; d 2 d 2 - Đối với người bị cận thị nói trên thì khi ngắm chừng ở vô cực: −OC. f ′ ′ v 2 ddfcm111=∞⇒ = =85 ; dOCd22=−v ⇒ = =4,55 cm −−OCv f2 −OC. f ′ v 2 Suy ra: ld′ =+=+121 d f =89,5 cml < −−OCv f2 - Vậy phải dời thị kính một đoạn ∆lll=−′ =0,5 cm tới gần vật kính hơn. ™ Dù chỉ có hai phần là Điện Từ Học và Quang Hình Học mà số lượng bài tập đã nhiều như vậy, như chúng ta đã thấy mỗi bài là mỗi dạng không bài nào giống bài nào. Nếu xét một cách tổng thể cả chương trình Vật Lí phổ thông thì khối lượng bài tập định lượng mà mỗi người giáo viên phải soạn để đáp ứng nhu cầu học tập của học sinh là rất lớn. Trên quan điểm là người giáo viên tôi nhận thấy rằng công việc này rất khó khăn và phải mất rất nhiều thời gian và công sức, nhưng trên thực tế không phải lúc này cũng đạt được kết quả như mong muốn. Trước yêu cầu cấp bách của thực tế đặt ra như vậy càng thôi thúc tôi hoàn thành đề tài này. Nếu hoàn thành tốt nó sẽ đáp ứng được một phần không nhỏ cho nhu cầu soạn thảo nhanh nhiều bài tập định lượng của chương trình Vật Lí 11 (phần: Điện Từ Học & Quang Hình Học) của giáo viên phổ thông hiện nay. 16
  23. II. Visual Basic, một cái nhìn tổng thể. Thiết kế chương trình Visual Basic Visual Basic là sản phẩm của hãng Microsoft, nó trải qua nhiều phiên bản và hiện nay Visual Basic 6.0 Enterprise Edition đang được sử dụng khá phổ biến. Visual Basic là chương trình 32 bit nên chỉ chạy trên môi trường Windows 95/98 và Windows NT. Ấn bản Enterprise yêu cầu không gian đĩa cứng còn trống khoảng 300MB, một chip Pentium 166MHz trở lên và ít nhất là 32MB Ram. Điều này giúp cho sản phẩm của nó có thể hoạt động hầu như trên mọi máy tính sử dụng hệ điều hành window. Khác với các môi trường lập trình hướng thủ tục trước đây trong hệ điều hành DOS như Pascal, C hay Foxpro, Visual Basic là môi trường lập trình hướng biến cố trên hệ điều hành Windows. Nghĩa là nó có khả năng tạo ra các phần mềm hoàn chỉnh và độc lập với giao diện đồ họa thân thiện với người dùng. 1. 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. 2. Khởi động Visual Basic Bạn có thể khởi động Visual Basic bằng nhiều cách: - Double Click vào biểu tượng của Visual Basic trên Desktop (hoặc có thể click vào biểu tượng sau đó nhấn Enter). - Vào Start, chọn Run và nhập đường dẫn đến Visual Basic. Nếu bạn không biết đường dẫn thì hay nhấn nút Browser để tìm. - Vào Start, chọn Programs, chọn Microsoft Visual Basic 6.0, chọn tiếp Microsoft Visual Basic 6.0. - Sau đó khởi động thì môi trường Visual Basic sẽ được nạp và xuất hiện như sau: 17
  24. Hình 1: Cửa sổ sau khi khởi động Visual Basic. Trong môi trường Visual Basic có rất nhiều mục tùy theo chương trình của bạn. Đối với các bạn mới làm quen với Visual Basic, chúng tôi giới thiệu cho các bạn mục standard.EXE. Khi vững vàng bạn có thể chọn các mục khác. Bạn chọn standard.EXE, nhấn Enter hoặc Ckick Open thì cửa sổ làm việc của Visual Basic như sau: Hình 2: Cửa sổ khi bắt đầu tạo project mới. 3. Cửa sổ làm việc của Visual Basic khi chọn Standard.exe 3.1. Title bar (thanh tiêu đề) Thông báo tên Project và Form bạn đang làm việc. 3.2. Menu bar (thanh menu) 18
  25. Chứa các menu con như: File, Edit, View, Project, Format, Run, Quey, Diagram, Debug, Tools, Add_ins, Window, Help. - Menu File Gồm các lệnh liên quan đến tập tin như New Project, Open Project, Add Project, Remove Project, Save Project, Save Project as, Save Forrm, Save Selection, Save change script, Print, Print Setup, Make exe, Make Project Group, bạn có thể lưu nạp trình ứng dụng Visual Basic. Ngoài ra, menu này còn cung cấp lệnh truy xuất in nhằm in nội dung mô tả chương trình. - Menu Edit Gồm các lệnh như Undo, Redo, Cut, Paste, Paste Link, Remove, Delete, để có thể sao chép cắt dán văn bản và điều khiển đồ họa giữa các trình ứng dụng. Lệnh này còn giúp bạn tạo chương trình bằng cách cung cấp thêm các lệnh tìm kiếm và thay thế. - Menu View Gồm các nút lệnh cho phép ta có thể điều chỉnh cách nhìn của sổ code trong trình ứng dụng, các thủ tục khác nhau có thể xuất hiện bên trong cửa sổ Code, cũng như thanh công cụ. Với Menu View bạn có thể mở các cửa sổ Project, Properties, Toolbox. - Menu Project Với Menu này bạn có thể cộng biểu mẫu, Modul, điều khiển Active X, hay các tin khác tới bài thực hành. - Menu Format Với Menu này, bạn có thể khóa các điều khiển, định kích cở, thứ tự sắp xếp của các điều khiển trên biểu mẫu. - Menu Debug Bạn có thể thi hành từng câu lệnh trong chương trình Visual Basic, xem giá trị dữ liệu và từng chương trình ở bất cứ nơi đâu. - Menu Run Menu này cho phép bạn chạy chương trình, dừng và bắt đầu lại quá trình thi hành sau lệnh dừng. Sau khi dừng một trình ứng dụng bạn có thể xem kết quả. - Menu Query Cho phép thiết kế và chạy các vấn tin. - Menu Diagram Cho phép thay đổi nội dung trong các bảng. - Menu Tools Bạn có thể xác định phương thức Visual Basic sẽ hành động bằng cách thay đổi giá trị trong menu Tools. - Menu Add-Ins Dùng để nạp các công cụ điều khiển khác nhau: Active X, hỗ trợ thiết kế trình ứng dụng cao cấp trong Visual Basic. - Menu Windows 19
  26. Với Menu này bạn có thể sắp xếp lại các cửa sổ trong màn hình Visual Basic. - Menu Help Cung cấp các trợ giúp. 3.3. Thanh công cụ (Toolbar) Thanh này chưa các Icon nhỏ giúp người dùng thực hiện nhanh mà không phải vào các mục của Menu. Các biểu tường trên thanh công cụ: - (Add standard.EXE) : Tạo Project mới, nhấp mũi tên xuống bạn có thể chọn các công cụ khác. - (Add Form) : thêm một Form cho Project, nhấp mũi tên xuống bạn có thể chọn các công cụ khác. - (Menu Editor) : Dùng để thiết kế Menu cho chương trình của biểu mẫu hiện hành. - (Open Project): Mở một Project. - (Save Project): Lưu một Project. - (Cut): Cắt bỏ các câu lệnh hoặc các đối tượng đã chọn. - (Copy): Sao chép một đối tượng hoặc các câu lệnh đã được chọn. - (Paste): Dán một đối tượng hoặc các câu lệnh đã được chọn. - (Find): Mở hộp thoại Find để thực hiện việc tìm kiếm. - (Undo): Lấy lại hành động trước đó nếu có thể. - (Redo): Lấy lại hành động sau đó nếu có thể. - (Start): Chạy chương trình sau khi bạn đã thiết kế hoặc chạy thử. - (Break): Tạm ngưng chương trình đang chạy. - (End): Chấm dứt chương trình đang chạy. - (Project Explorer): Để thấy các Project, các Form, các bạn có thể tùy chọn. - (Properties Windows): Đưa ra các cửa sổ để bạn xác lập các thuộc tính cho các đối tượng trong hộp Toolbox và cho Form. - (Form LayoutWindows): Để điều khiển vị trí xuất hiện của biểu mẫu khi bắt đầu chạy chương trình. - (Object Browser): Mở hộp thoại object browser. - (Toolbox): Xuất hiện hộp công cụ bên trái màn hình. 20
  27. - (Data view Window): Xuất hiện cửa sổ Data View để quản lý cơ sở dữ liệu. - (Visual Component Manager): xuất hiện Visual Component Manager để quản lý các đoạn mã của ứng dụng phức tạp. 3.4. Hộp công cụ (Toolbox) Hộp này chứa các control còn gọi là các đối tượng sẽ được đặt vào Form khi thiết kế chương trình. - (Pointer): Dùng để điều tác các đối tượng sau khi bạn tạo ra chúng. - (PictureBox): Giữ và đặt hình ảnh lên Form. - (Label): Dùng để ghi chú một đối tượng nào đó khi hiện một dòng chữ khi thực hành. - (Textbox): Dùng để nhập hay xuất thông tin khi chạy chương trình. - (Frame): Nó là một đối tượng hình chữ nhật trên Form dùng để chứa các đối tượng khác. - (Command Button): Nút nhấn, ta dùng nút này với biến cố click để thực hiện đối tượng. - (Checkbox): Dùng để quy định cho sự lựa chọn nào đó. Có thể chọn nhiều checkbox cùng một lúc. - (Option Button): Giống như checkbox như ta chỉ chọn một trong các Option Button. - ( Combobox): Là một đối tượng kết hợp giữa Textbox và Listbox. Bạn có thể chọn một mục nào đó trong danh sách có sẵn hay có thể nhập nội dung bất kỳ trong textbox bên trên. - (ListBox): Thường dùng để liệt kê một danh sách gồm nhiều mục và cho phép chọn lựa. - (Vertical Scrollbal): Thanh cuốn dọc cho ta chọn một số nguyên khi ta di chuyển con chạy từ giá trị min đến giá trị max. - (Horizontal Scrollbar): Thanh cuốn ngang cho ta chọn một số nguyên khi ta di chuyển con chạy từ giá trị min đến giá trị max. - (File Listbox): là một listbox trình bày các File trong thư mục nào đó. - (Timer): Dùng để xử lý các sự kiện về thời gian. - (Drive Listbox): Là hộp combobox trong đó liệt kê tất cả tên có trong hệ thống, nó được dùng để chọn ổ đĩa. - (Directory Listbox): Là listbox trình bày cấu trúc của ổ đĩa hiện hành, dùng để chọn thư mục. 21
  28. - (Line): Dùng để trình bày một đường thẳng trên Form. - (Image): Dùng để hiện thị hình ảnh. - (Data): Dùng để kết hợp với các cơ sở dữ liệu khác. - (Shape): Dùng để trình bày các hình chữ nhật, hình vuông, hình elipse, hình tròn, - (OLE): ole client. 3.5. Cửa sổ thuộc tính Cửa sổ này cung cấp một số các thuộc tính của tất cả các đối tượng trong Visual Basic. Mỗi đối tượng sẽ có thuộc tính nhất định. Để truy xuất một đối tượng, ta thực hiện như sau: . Sau đây là một số đối tượng đã được sử dụng trong đề tài: - Một số thuộc tính của đối tượng Form Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho Form, tên này sẽ được dùng cho thủ tục mà bạn viết mã. Appearance Quy định cách thể hiện của Form 0 Flat (Form thẳng) 1 3D (Form nổi) Backcolor Chọn màu nền cho Form Bordestyle Quy định kiểu khung của Form Caption Quy định tiêu đề Form Controlbox Nếu đặt là true thì cửa sổ có controlmenubox. Nếu chọn là fasle thì cửa sổ không có controlmenubox. Icon Dùng Icon có biểu tượng như thế nào khi bạn click nút minimize. Max button Nếu đặt true thì cửa sổ có nút Maximize. Nếu đặt false thì cửa sổ không có nút Maximize. Minbutton Nếu đặt true thì cửa sổ có Minimize Nếu đặt fasle thì cửa sổ không có nút Minimize Moveable Nếu đặt True thì có thể nhấn Mouse và tiêu đề và kéo đi nơi khác, 22
  29. nếu False thì không kéo đi được. Showintaskbar True: cửa sổ này hiện lên tên của nó cũng như hiện trên tasbar của Window, nếu False thì không. Visible True: Thấy Form False: Ẩn Form Windowstate Qui định kích thước của Form 0 Bình thường 1 Cực tiểu 2 Cực đại - Một số thuộc tính của đối tượng Label Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho Label. Alignment Canh nội dung của Label 0 Canh trái. 1 Canh phải. 2 Canh giữa. Autosize Bạn chọn true thi nó tự động co giãn cho vừa nội dung của nó. Chọn false thì bạn tự điều chỉnh cho vừa. Caption Ghi chữ trên Label. Font Chọn kiểu chữ cho Label. Fontcolor Qui định màu chữ trên Label. - Một số thuộc tính của đối tượng textbox Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho Textbox. Alignment Canh nội dung của Textbox. 0 Canh trái. 1 Canh phải. 2 Canh giữa. Appearance Quy định cách thể hiện của Textbox 23
  30. 0 Flat (Form thẳng) 1 3D (Form nổi) Backcolor Chọn màu nền cho Textbox Font Chọn kiểu chữ cho Textbox Forecolor Qui định màu của chữ trên Textbox Maxlength Qui định số kí tự tối đa cố thể nhập vào textbox Miltiline True: có thể xuống hàng khi chiều ngang khi chứa không đủ. False: không xuống hàng. Srollbars Dùng để xác định hộp textbox không có thanh cuốn, có thanh cuốn dọc, thanh cuốn ngang hoặc có cả hai với điều kiện thuộc tính multine = true. Visible True: Thấy textbox False: ẩn textbox - Một số thuộc tính của đối tượng commandbox Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho commandbox. Caption Làm tiêu đề cho nút. Font Chọn kiểu chữ cho nút. Visible True : Nhìn thấy nút. False : Không nhìn thấy nút. - Thuộc tính hay dùng của đối tượng picturebox Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho picturebox. Autosize Ture: Tự đặt lại kích thước của đối tượng cho vừa với kích thước của hình đã đặt vào. False : Nếu hình đặt vào lớn hơn kích thước của đối tượng thì phần này sẽ bị che khuất. Picture Dùng để giữ bức hình bạn muốn trình bày. Bordestyle Quy định kiểu khung 24
  31. 0 : không có boder 1 : một khung đơn và không thay đổi kích thước. Align Dùng để qui định cách bố trí đặt biệt của picture trên Form Autoredraw Hình ảnh sẽ không bị xóa đi khi bạn thu nhỏ hay thay đổi kích thước Fillcolor Dùng để qui định màu tô cho các phương thức đồ họa. Fillstyle Qui định dạng mẫu tô. Dawstyle Qui định đường nét vẽ. Drawwith Qui định độ dày đường nét vẽ. - Một số thuộc tính hay dùng của đối tượng Image Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho Image. Picture Dùng để giữ bức hình bạn muốn trình bày. Bordestyle Quy định kiểu khung 0 : không có boder 1 : một khung đơn và không thay đổi kích thước. Stretch True : Hình sẽ tự co dãn cho vừa vặn trong đối tượng. False : đối tượng sẽ tự điều chỉnh cho vừa với hình. - Một số thuộc tính hay dùng của đối tượng Combobox Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho Combobox. Style Qui đinh kiểu Combobox. Storted True : Sắp xếp theo thứ tự Anphabet. False : Sắp xếp theo thứ tự của bạn đưa vào. - Một số thuộc tính hay dùng của đối tượng timer Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho timer. 25
  32. Enabled True : Cho phép phát hiện sự kiện thời gian. False : Không cho phép xác định sự kiện thời gian. Interval Là giá trị dùng để qui định sau bao nhiêu lâu thì phát ra một sự kiện thời gian. Đơn vị tính là miligiây. Nếu đặt là không thì timer không hoạt động. 3.6. Form Layout Windows Khi ta bắt đầu chạy chương trình thì biểu mẫu sẽ nằm ở góc bên trái, thay vì dùng chuột kéo Form đến vị trí tùy ý, Form layout sẽ giúp bạn làm điều này: - Bạn trỏ chuột vào Form trong màn hình Form Layout window, lúc đó con trỏ có hình mũi tên bốn hướng. - Bạn rê Form đến vị trí bạn muốn xuất hiện và thả chuột. - Khi chạy chương trình Form sẽ nằm đúng vị trí bạn muốn. 3.7. Project Explorer Windows Cửa sổ này sẽ quản lý toàn bộ dự án mà bạn đang thiết kế, trong cửa sổ này sẽ liệt kê dự án và tất cả các Form, các modul mà bạn viết cho dự án. Để mở một Form hoặc một modul nào đó bạn dùng chuột chọn, click tab có tên View Object. Để xem cửa sổ lệnh của Form hoặc modul bạn sẽ chọn như trên rồi click và tab có tên là View Code. Như vậy qua mục này bạn đã có một khái niện chung về môi trường Visualbasic 6.0. Bạn hãy tìm hiểu kỹ các công cụ, các đối tượng lẫn các thuộc tính của nó. Sau đó bạn vào mục tiếp theo để có thể tự thiết kế cho mình một chương trình hoàn chỉnh. [5] III. Thiết kế chương trình Visual Basic 1. Thiết kế chương trình Để thiết kế chương trình Visual Basic, bạn phải thực hiện hai bước: - Bước 1: Thiết kế giao diện. - Bước 2: Viết code cho chương trình. 2. Thiết kế giao diện Nếu bạn mới khởi động Visual Basic thì sẽ có một cửa sổ cho bạn kiểu để thiết kế, giá trị mặc định là kiểu Standard.exe. Bạn click vào open, lúc đó một cửa sổ Form hiện ra như sau: 26
  33. Hình 3: Cửa ổ khi bạn chọn kiểu thiết kế là Standard Bạn sẽ thiết kế trên Form này bằng cách lấy các đối tượng từ hộp công cụ toolbox. Khi bạn thực hiện xong một chương trình nào đó, bạn muốn thiết kế một chương trình khác bạn vào menu file chọn Newproject thì cửa sổ thiết kế cũng diễn ra tương tự. Khi bạn đã thiết kế xong, bạn muốn thay đổi thì bạn vào menu file chọn open project, chọn chương trình bạn cần mở. Nếu click mà không hiện ra form bạn có thể vào menu file và chọn những chương trình gần nhất mà bạn vừa thực hiện ở phía cuối menu này. Lúc đó muốn cửa sổ thiết kế hiện ra, bạn thực hiện như sau: - Nhấn F5 hoặc dấu đầu mũi tên trên thanh công cụ để chạy chương trình, khi chương trình đang thực hiện bạn đóng chương trình lại. Sau đó bạn vào menu View và chọn Object. - Bạn mở cửa sổ Project Explorer, chọn Form cần mở trong cửa sổ này và chọn Tab View Object. - Cách đưa các đối tượng vào Form: có 2 cách Cách 1: Bạn Double click vào đ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 nhấp nút trái chuột vào từng đối tượng và rê chuột đến vị trí bạn muốn. Muốn thay đổi kích thước của các đối tượng này, bạn click chọn đối tượng này, sẽ có 8 nút bao quanh, 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: Bạn 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, bạn dùng chuột dịch chuyển dấu cộng đến một vị trí nào đó và drag kéo đến khi có kích thước bạn muốn và thả chuột ra. Khi đưa tất cả các đối tượng có trong hộp công cụ vào Form ta sẽ có hình dạng như sau: 27
  34. Hình 4: Cửa sổ trình bày các đối tượng có trong toolbox Bạn hãy thử tạo một project có hình dạng như trên, sau đó bạn thử đặt thuộc tính cho từng đối tượng. Tùy theo từng chương trình mà bạn có thể đặt các thuộc tính khác nhau. Sau khi đưa tất cả các đối tượng cần thiết kế vào biểu mẫu, muốn đặt thuộc tính của đối tượng nào bạn click vào đối tượng đó và mở của sổ Properties Window. Bạn muốn xác lập thuộc tính nào thì di chuyển hộp sáng đến thuộc tính đó và thay đổi. Khi xác lập xong, bạn nên lưu Project và form với tên nào đó. 3. Viết code cho chương trình Để viết code cho chương trình (viết lệnh cho form và cho các đối tượng) thì bạn phải có kiến thức rộng và nắm vững những câu lệnh, nắm vững các hàm, các thuật toán, Viết mã cho chương trình. Khi bạn đang ở cửa sổ thiết kế có thể vào cửa sổ lệnh như sau: - Bạn click nút phải chuột vào bất cứ vị trí nào, 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. Trong trường hợp bạn phải sửa hoặc thêm vào các câu lệnh, bạn vào menu file, chọn open project và click vào tên của chương trình cần sửa, khi click xong, chạy chương trình bằng cách nhấn F5, rồi bạn thực hiện theo hai cách sau: - Mở cửa sổ Project Explorer, chọn Form cần mở, sau đó chọn Tab View Code. - Đóng chương trình sau đó vào Menu View chọn View Code. Cửa mã sẽ như sau: 28
  35. Hình 5: Cửa sổ Code Nhìn vào cửa sổ mã ta thấy rằng ở phía trên có hai hộp combobox. Hộp bên trái tất cả tên của các form, các đối tượng trong chương trình mình thiết kế. Bạn click vào mũi tên bên phải sẽ xuất hiện menu ghi tất cả các đối tượng đã thiết kế. Bạn muốn viết lệnh cho đối tượng nào, bạn chỉ cần di chuyển vệt sáng đến tên của đối tượng đó và click chuột vào. Hình 6: Cửa sổ Code với hộp Combobox bên trái Hộp bên phải ghi tất cả các sự kiện (còn gọi là biến cố) của từng đối tượng, sẽ có rất nhiều biến cố. Bạn nhấp 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 đó. 29
  36. Hình 7: Cửa sổ Code với hộp Combobox bên phải Giả sử với đối tượng Command1, ta chọn sự kiện click, lúc đó cửa sổ lệnh có hai dòng lệnh 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ạn viết lệnh cho thủ tục ở giữa hai dòng lệnh này. 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 3.1 Biến, kiểu và cách khai báo 3.1.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ự, có tính gợi nhớ, đừng dùng nhữ kí hiệu, tránh trùng với từ khóa của Visual Basic. 3.1.2. Sau đây là một số kiểu biến được sử dụng trong đề tài - String: là dữ liệu kiểu chuỗi, khoảng giá trị có thể lên đến hai tỉ kí tự. Nhận biết biến này bằng tiếp vị ngữ $. - Double: là các số có dấu chấm thập phân. Nhận biết bằng # ở cuối. Khoảng giá trị âm từ -1,79769313486231E308 đến -4,94065645841247E-324, giá trị dương từ 4,94065645841247E-324 đến 1,79769313486231E308. - Bolean: Biến logic có giá trị True hay False dùng để gán các giá trị hay sử dụng trong các câu lệnh điều kiện. 3.1.3. Cách khai báo các biến Dim AS 30
  37. 3.2. Các phép toán trong Visual Basic đã được sử dụng trong đề tài 3.2.1 Các toán tử trong Visual Basic - 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 hai số lấy phần nguyên. - Toán tử chia / : Chia hai số cho nhau và trả về giá trị thực. - Mod : Chia và lấy phần dư. - Tóa tử + : Cộng hai số hạng. - Toán tử - : Trừ hai toán hạng. 3.2.2. Thứ tự ưu tiên trong các phép toán - Phép tính lũy thừa. - Đổi một số thành số âm. - Nhân và chia. - Chia số nguyên. - Chia lấy số dư Mod. - Cộng và trừ. 3.2.3. Toán tử gán: a = b 3.2.4. Toán tử quan hệ Kí hiệu Ý nghĩa Ví dụ = Bằng nhau A = B Khác nhau A Lớn hơn A > B >= Lớn hơn hoặc bằng A >= B 3.2.5. Toán tử logic Toán tử AND, OR 3.3. Cấu trúc điều khiển của Visual Basic được sử dụng trong đề tài Cấu trúc lựa chọn IF 31
  38. Cấu trúc lựa chọn 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 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 3.4. Một số lệnh của Visual Basic được sử dụng trong đề tài 3.4.1. 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. 3.4.2. Lệnh Exit Sub Lệnh này dùng để thoát khỏi vòng lặp Sub. 3.4.3. Lệnh Beep Lệnh này dùng để phát ra tiếng Beep. 3.4.4. Lệnh Load Lệnh này dùng để nạp một Form vào bộ nhớ. Cú pháp: Load tên Form Ví dụ: Load Form1 Form1.show 3.5. Một số hàm của Visual Basic được sử dụng trong đề tài 3.5.1. Hàm Abs (Number) Hàm này trả về một số là giá trị tuyệt đối của Number. 3.5.2. Hàm Sin (Number As Double) Tính sin của một góc. 3.5.3. Hàm Cos (Number As Double) Tính cos của một góc. 3.5.4. Hàm Tan (Number As Double) 32
  39. Tính Tan của một góc. 3.5.5. Hàm Atn (Number As Double) Tính Atn của một góc. 3.5.6. Hàm Sqr (Number) Tính căn bậc hai của một số. 3.5.7. Hàm Exp (Number) Tính e mũ của một số. 3.5.8. Hàm Val (String) Trả về một số thực tương ứng với chuỗi string. String phải là một chuỗi các kí tự hợp lệ. - Giá trị của hàm là 0 nếu chuổi có kí tự đầu là kí tự. - Giá trị của hàm một số nếu chuỗi đó là toàn là các kí tự số. Nếu các kí tự số viết cách nhau thì hàm này sẽ cắt bỏ các khoảng trắng và cho trả về giá trị bằng với dãy này. [6] IV. Ví dụ: Chương Trình Giải Phương Trình Bậc Nhất ax+ b = 0 Giải phương trình ax+ b = 0 với yêu cầu nhập hệ số a, b. 1. Thiết kế giao diên Hình 8: Cửa sổ thiết kế Các đối tượng: - Form. - Label. - Textbox. 33
  40. - Commandbutton. Các thuộc tính: Đối tượng Thuộc tính Giải trị Form Name Form1 Caption Giải phương trình bậc nhất ax+= b 0 Label Name Label1 Caption a = Font VNI – Time Fontsize 20 Label Name Label2 Caption b = Font VNI – Time Fontsize 20 Label Name Label3 Caption x = Font VNI – Time Fontsize 20 Textbox Name Text2 Caption “ “ Textbox Name Text3 Caption “ “ Locked True Textbox Name Text4 Caption “ “ Locked True Command button Name Command1 Caption Kết Quả Command button Name Command2 Caption Tiếp Tục Command button Name Command1 34
  41. Caption Kết Thúc 2. Viết code cho chương trình - Viết mã cho thủ tục Command1_click() Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim x As Integer a = Val(Text1.Text) b = Val(Text2.Text) If Text1.Text = "" Or Text2.Text = "" Then Text4.Text = " Hay Nhap Du Cac Bien So " Exit Sub End If If a = 0 Then Text4.Text = " Hay Nhap a khac 0 " Exit Sub End If x = -b / a Text3.Text = x Label3.Visible = True Text3.Visible = True Text4.Visible = False End Sub - Viết mã cho thủ tục Command2_click() Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Label3.Visible = False Text4.Visible = True End Sub - Viết mã cho thủ tục Command3_click() Private Sub Command3_Click() End End Sub - Viết mã cho thủ tục Text1 hoặc Text2 Private Sub text1_KeyPress(KeyAscii As Integer) 35
  42. Dim Tmp As String Tmp = Text1.Text Select Case Chr$(KeyAscii) Case "0" To "9", Chr$(8) Case "-" If InStr(1, Tmp, "-") = 0 Then If Text1.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 Với câu lệnh này thì chỉ cho phép người dùng gõ số vào TextBox. Nó chỉ cho phép nhập ký tự số, dấu âm (-) và dấu thập phân (.) trong KeyPress Event. - Kết quả như sau: 36
  43. Hình 9: Cửa sổ kết quả. Chương II: SỬ DỤNG VISUAL BASIC ĐỂ HỖ TRỢ GIẢI MỘT SỐ BÀI TẬP TIÊU BIỀU VẬT LÝ 11 (PHẦN: ĐIỆN TỬ HỌC VÀ QUANG HÌNH HỌC) I. Chuẩn bị 1. Soạn thảo một số bài tập định lượng tiêu biểu của Vật Lí 11 (phần: Điện Từ Học & Quang Hình Học) 2. Chuyển các bài tập nói trên sang File hình (.jpg) Cách làm 2.1. Chuyển tất cả các bài tập đã soạn bằng file Word sang file PDF. Bằng cách sử dụng chương trình Foxit Reader 2.2. Gọi chương trinh Foxit Reader 2.2 lên, chọn file open, chọn đường dẫn đến file Word cần chuyển và save vào thư mục lưu trữ. 37
  44. Hình 10: Chuyển dữ liệu từ File Word sang File PDF 2.2. Tiếp tục chuyển tất cả các bài tập từ file PDF sang File hình (.jpg). Bằng cách sử dụng chương trình Corel PHOTO-PAINT X3. Mở File PDF cần chuyển. Trên thanh công cụ của Foxit Reader 2.2, chọn công cụ snapshot (biểu tượng là chiếc máy ảnh) đánh dấu khối văn bản sẽ chuyển sang File hình. Hình 11: Đánh dấu đoạn văn bản cần chuyển 38
  45. Mở chương trình Corel PHOTO-PAINT X3, chọn File – New from clipboard, thì trên giao diện hiện lên khối văn bản cần chuyển, sau đó chọn File export để save dưới dạng File hình (.jpg). Hình 12: Khối văn bản cần chuyển trên giao diện Corel PHOTO-PAINT X3 Hình 13: Khối văn bản sau khi chuyển sang file hình (.jpg). Sau đó Save những file hình đó với tên gợi nhớ ứng với Chương Trình & Chương & Bài Tập. Ví dụ : bài 4 – chương 7 – chương trình lớp 11, sẽ lưu với tên 110704.jpg. II. Thiết kế giao diện Như chúng ta đã thấy các bài tập được chọn khá đa dạng, mỗi bài một đặc điểm không bài nào giống bài nào. Nhưng chúng có một điểm chung là không có bài nào có hơn sáu dữ kiện và hơn ba kết quả. Do đó tôi đã quyết định thiết kế giao diện có dạng như sau: Hình 14: Thiết kế giao diện 39
  46. Số thứ tự Đối tượng Thuộc tính 0 Form ƒ Name: Fast Problem - SoanThaoNhanhBaiTapVatLi11 ƒ BorderStyle: 3-Fixed Dialod ƒ Caption: Chuong Trinh Soan Thao Nhanh Bai Tap Vat Li 11 (Tu & Quang) ƒ Font: VNI - Times ; Size: 10 ƒ Picture: giaodien ƒ Height: 6000 ƒ Width: 12000 1 Label ƒ Name: Label1 ƒ Alignment: 0 – Left Justify ƒ Backtyle: 0 - Transparent ƒ Caption: Chương Trình ƒ Font: VIN – Times ; Size: 12 ƒ Visible: True 2 Combobox ƒ Name: Combo1 ƒ Appearance: 1- 3D ƒ BackColor: Window Background ƒ Enabled: True ƒ Font: VNI - Times ; Size: 12 ƒ Visible: True 3 Image ƒ Name: debai ƒ BorderStyle: 0 – None 4 Timer ƒ Name: Timer1 ƒ Enabled: True 5 Label ƒ Name: S_An_3 ƒ Alignment: 0 – Left Justify ƒ Backtyle: 0 - Transparent ƒ Caption: D ƒ Font: Symbol ; Size: 12 ƒ Visible: False 40
  47. 6 Text ƒ Name: An_3 ƒ Alignment: 2 – Center ƒ Appearance: 0 – Flat ƒ Enabled: True ƒ Font: VNI – Times ; Size: 12 ƒ Locked: True ƒ Text: ƒ Visibled: False 7 Label ƒ Name: Label4 ƒ Alignment: 0 – Left Justify ƒ Backtyle: 0 - Transparent ƒ Caption: Bộ môn Vật Lí khoa Sư Phạm trường Đại Học An Giang. Biên soạn: Văn Thành Trọng. GVHD: Giang Văn Phúc. ƒ Font: Symbol ; Size: 12 ƒ ForeColor: Applicaption Workspace 8 Text ƒ Name: GT_an_3 ƒ Alignment: 0 – Left Justify ƒ Appearance: 1 – 3D ƒ BorderStyle: 1 – Fixed Single ƒ Font: VNI – Times ; Size: 12 ƒ Locked: True ƒ Text: ƒ Visibled: False 9 Command ƒ Name: tieptuc ƒ Captoin: Tiếp Tục ƒ Enabled: True ƒ Font: VNI – Times Size:12 ƒ Visibled: False Sau khi thiết kế hoàn tất thì khi chạy chương trình sẽ có dạng như hình vẽ: 41
  48. Hình 15: Giao diện của chương trình khi chạy 1 Click vào combobox này để chọn chương trình (Lớp 10; Lớp 11; Lớp 12) 2 Click vào combobox này để chọn chương (1; 2; 3; 4; 5; 6; 7; 8) 3 Click vào combobox này để chọn bài tập (tùy theo từng chương mà số lượng bài tập khác nhau, nhiều nhất là 24 bài và ít nhất là 9 bài). 4 Nơi hiện đề bài và đáp án mẫu (ứng với Chương Trình; Chương; Bài Tập mà người sử dụng đã chọn). 5 Nơi hiện lên các ô nhập liệu (ứng với Chương Trình; Chương; Bài Tập mà người sử dụng đã chọn). 6 Nơi hiện lên kết quả tính toán từ các giá trị mà ta đã nhập (ứng với Chương Trình; Chương; Bài Tập mà ta đã chọn). Khi đã chọn Chương Trình; Chương; Bài Tập thì giao diện của chương trình sẽ có dạng: Hình 16: Giao diện của chương trình khi chọn Chương Trình Lớp 11; Chương 5; Bài Tập 18 42
  49. Hình 17: Giao diện của chương trình khi chọn Chương Trình Lớp 11; Chương 7; Bài Tập 23 III. Viết Code cho chương trình 1. Code của Combo1 Private Sub Combo1_Click() If Combo1.ListIndex = 1 Then Combo2.Visible = True Combo2.Enabled = True End If If Combo1.ListIndex = 0 Then Combo2.Visible = False Combo2.Enabled = False Combo3.Visible = False Combo3.Enabled = False Combo4.Visible = False Combo4.Enabled = False Combo5.Visible = False Combo5.Enabled = False Combo6.Visible = False Combo6.Enabled = False Combo7.Visible = False Combo7.Enabled = False Set debai = LoadPicture("bia.jpg") S_bien_1.Visible = False Bien_1.Visible = False GTbien_1.Visible = False donvi_bien_1.Visible = False S_Bien_2.Visible = False Bien_2.Visible = False GTBien_2.Visible = False donvi_bien_2.Visible = False S_Bien_3.Visible = False Bien_3.Visible = False GTBien_3.Visible = False donvi_bien_3.Visible = False S_Bien_4.Visible = False Bien_4.Visible = False GTBien_4.Visible = False donvi_bien_4.Visible = False 43
  50. S_Bien_5.Visible = False Bien_5.Visible = False GTBien_5.Visible = False donvi_bien_5.Visible = False S_Bien_6.Visible = False Bien_6.Visible = False GTBien_6.Visible = False donvi_bien_6.Visible = False S_An_1.Visible = False An_1.Visible = False GTAn_1.Visible = False donvi_an_1.Visible = False S_An_2(0).Visible = False An_2.Visible = False GTAn_2.Visible = False donvi_an_2.Visible = False S_An_3(1).Visible = False An_3.Visible = False GTAn_3.Visible = False donvi_an_3.Visible = False Giai_4.Visible = False Giai_5.Visible = False Giai_6.Visible = False Giai_7.Visible = False Giai_8.Visible = False Dim trong_1 As Boolean trong_1 = MsgBox("Chuong Trinh Chua Cap Nhat", vbOKOnly, "Thong Bao") Exit Sub End If If Combo1.ListIndex = 2 Then Combo2.Visible = False Combo2.Enabled = False Combo3.Visible = False Combo3.Enabled = False Combo4.Visible = False Combo4.Enabled = False Combo5.Visible = False Combo5.Enabled = False Combo6.Visible = False Combo6.Enabled = False Combo7.Visible = False Combo7.Enabled = False Set debai = LoadPicture("bia.jpg") S_bien_1.Visible = False Bien_1.Visible = False GTbien_1.Visible = False donvi_bien_1.Visible = False S_Bien_2.Visible = False Bien_2.Visible = False GTBien_2.Visible = False donvi_bien_2.Visible = False S_Bien_3.Visible = False Bien_3.Visible = False GTBien_3.Visible = False donvi_bien_3.Visible = False S_Bien_4.Visible = False 44
  51. Bien_4.Visible = False GTBien_4.Visible = False donvi_bien_4.Visible = False S_Bien_5.Visible = False Bien_5.Visible = False GTBien_5.Visible = False donvi_bien_5.Visible = False S_Bien_6.Visible = False Bien_6.Visible = False GTBien_6.Visible = False donvi_bien_6.Visible = False S_An_1.Visible = False An_1.Visible = False GTAn_1.Visible = False donvi_an_1.Visible = False S_An_2(0).Visible = False An_2.Visible = False GTAn_2.Visible = False donvi_an_2.Visible = False S_An_3(1).Visible = False An_3.Visible = False GTAn_3.Visible = False donvi_an_3.Visible = False Giai_4.Visible = False Giai_5.Visible = False Giai_6.Visible = False Giai_7.Visible = False Giai_8.Visible = False Dim trong_2 As Boolean trong_2 = MsgBox("Chuong Trinh Chua Cap Nhat", vbOKOnly, "Thong Bao") Exit Sub End If Set debai = LoadPicture("bia.jpg") End Sub Nội dung Code viết cho Combo1: Nếu Combo1 được Click và Chương Trình được chọn là Lớp 10 hoặc Lớp 12, thì hiện lên bản thông báo “Chương trình chưa cập nhật” khi đó combo (Chương) và combo (Bài Tập) sẽ bị ẩn đi. Ngược lại nếu Chương Trình được chọn là Lớp 11 thì combo (Chương) sẽ được hiện lên (cho phép lựa chọn Chương). 2. Code của Combo2 Private Sub Combo2_click() GTbien_1.Text = "" GTBien_2.Text = "" GTBien_3.Text = "" GTBien_4.Text = "" GTBien_5.Text = "" GTBien_6.Text = "" GTAn_1.Text = "" GTAn_2.Text = "" 45
  52. GTAn_3.Text = "" If Combo2.ListIndex = 0 Or Combo2.ListIndex = 1 Or Combo2.ListIndex = 2 Then Combo1.Visible = True Combo1.Enabled = True Combo3.Visible = False Combo3.Enabled = False Combo4.Visible = False Combo4.Enabled = False Combo5.Visible = False Combo5.Enabled = False Combo6.Visible = False Combo6.Enabled = False Combo7.Visible = False Combo7.Enabled = False Set debai = LoadPicture("bia.jpg") S_bien_1.Visible = False Bien_1.Visible = False GTbien_1.Visible = False donvi_bien_1.Visible = False S_Bien_2.Visible = False Bien_2.Visible = False GTBien_2.Visible = False donvi_bien_2.Visible = False S_Bien_3.Visible = False Bien_3.Visible = False GTBien_3.Visible = False donvi_bien_3.Visible = False S_Bien_4.Visible = False Bien_4.Visible = False GTBien_4.Visible = False donvi_bien_4.Visible = False S_Bien_5.Visible = False Bien_5.Visible = False GTBien_5.Visible = False donvi_bien_5.Visible = False S_Bien_6.Visible = False Bien_6.Visible = False GTBien_6.Visible = False donvi_bien_6.Visible = False S_An_1.Visible = False An_1.Visible = False GTAn_1.Visible = False donvi_an_1.Visible = False S_An_2(0).Visible = False An_2.Visible = False GTAn_2.Visible = False donvi_an_2.Visible = False S_An_3(1).Visible = False An_3.Visible = False GTAn_3.Visible = False donvi_an_3.Visible = False Giai_4.Visible = False Giai_5.Visible = False Giai_6.Visible = False Giai_7.Visible = False Giai_8.Visible = False Dim trong_3 As Boolean 46
  53. trong_3 = MsgBox("Chuong Trinh Chua Cap Nhat", vbOKOnly, "Thong Bao") Exit Sub Combo2.Text = "" End If If Combo2.ListIndex = 3 Then Combo3.Enabled = True Combo4.Enabled = False Combo5.Enabled = False Combo6.Enabled = False Combo7.Enabled = False Combo3.Visible = True Combo4.Visible = False Combo5.Visible = False Combo6.Visible = False Combo7.Visible = False Giai_4.Visible = True Giai_5.Visible = False Giai_6.Visible = False Giai_7.Visible = False Giai_8.Visible = False End If If Combo2.ListIndex = 4 Then Combo4.Enabled = True Combo3.Enabled = False Combo5.Enabled = False Combo6.Enabled = False Combo7.Enabled = False Combo4.Visible = True Combo3.Visible = False Combo5.Visible = False Combo6.Visible = False Combo7.Visible = False Giai_4.Visible = False Giai_5.Visible = True Giai_6.Visible = False Giai_7.Visible = False Giai_8.Visible = False End If If Combo2.ListIndex = 5 Then Combo5.Enabled = True Combo4.Enabled = False Combo3.Enabled = False Combo6.Enabled = False Combo7.Enabled = False Combo5.Visible = True Combo4.Visible = False Combo3.Visible = False Combo6.Visible = False Combo7.Visible = False Giai_4.Visible = False Giai_5.Visible = False Giai_6.Visible = True Giai_7.Visible = False 47
  54. Giai_8.Visible = False End If If Combo2.ListIndex = 6 Then Combo6.Enabled = True Combo4.Enabled = False Combo5.Enabled = False Combo3.Enabled = False Combo7.Visible = False Combo6.Visible = True Combo4.Visible = False Combo5.Visible = False Combo3.Visible = False Combo7.Visible = False Giai_4.Visible = False Giai_5.Visible = False Giai_6.Visible = False Giai_7.Visible = True Giai_8.Visible = False End If If Combo2.ListIndex = 7 Then Combo7.Enabled = True Combo4.Enabled = False Combo5.Enabled = False Combo3.Enabled = False Combo6.Visible = False Combo7.Visible = True Combo4.Visible = False Combo5.Visible = False Combo3.Visible = False Combo6.Visible = False Giai_4.Visible = False Giai_5.Visible = False Giai_6.Visible = False Giai_7.Visible = False Giai_8.Visible = True End If If Combo2.ListIndex = 3 Then chuong = "04" If Combo2.ListIndex = 4 Then chuong = "05" If Combo2.ListIndex = 5 Then chuong = "06" If Combo2.ListIndex = 6 Then chuong = "07" If Combo2.ListIndex = 7 Then chuong = "08" Set debai = LoadPicture("bia.jpg") End Sub Nội dung Code viết cho Combo2: Nếu Combo2 được Click và Chương được chọn là 1 ; 2 ; 3, thì chương trình sẽ hiện lên bản thông báo “Chương trình chưa cập nhật” và combo (Bài Tập) bị ẩn đi. Nếu Chương được chọn là 4; 5; 6; 7; 8 thì combo (Bài Tập) được hiện lên (cho phép lựa chọn Bài Tập). Và chương trình sẽ tự ghi nhận biến Chương, biến này tương ứng với giá trị chọn ở Combo2. 48
  55. 3. Code của Combo (Bài Tập) Private Sub Combo3_Click() GTbien_1.Text = "" GTBien_2.Text = "" GTBien_3.Text = "" GTBien_4.Text = "" GTBien_5.Text = "" GTBien_6.Text = "" GTAn_1.Text = "" GTAn_2.Text = "" GTAn_3.Text = "" If Combo3.ListIndex = 0 Then bai_3 = "01" If Combo3.ListIndex = 1 Then bai_3 = "02" If Combo3.ListIndex = 2 Then bai_3 = "03" If Combo3.ListIndex = 3 Then bai_3 = "04" If Combo3.ListIndex = 4 Then bai_3 = "05" If Combo3.ListIndex = 5 Then bai_3 = "06" If Combo3.ListIndex = 6 Then bai_3 = "07" If Combo3.ListIndex = 7 Then bai_3 = "08" If Combo3.ListIndex = 8 Then bai_3 = "09" If Combo3.ListIndex = 9 Then bai_3 = "10" If Combo3.ListIndex = 10 Then bai_3 = "11" If Combo3.ListIndex = 11 Then bai_3 = "12" If Combo3.ListIndex = 12 Then bai_3 = "13" If Combo3.ListIndex = 13 Then bai_3 = "14" If Combo3.ListIndex = 14 Then bai_3 = "15" If Combo3.ListIndex = 15 Then bai_3 = "16" If Combo3.ListIndex = 16 Then bai_3 = "17" If Combo3.ListIndex = 17 Then bai_3 = "18" If Combo3.ListIndex = 18 Then bai_3 = "19" If Combo3.ListIndex = 19 Then bai_3 = "20" taptin_3 = chuong & bai_3 & ".jpg" Set cau_3 = LoadPicture(taptin_3) Set debai = cau_3 tieptuc.Visible = False Nội dung Code viết cho Combo (Bài Tập): Khi Combo (Bài Tập) được chọn. Thì chương trình sẽ tự ghi nhận thêm một biến nữa là biến Bai, biến này có giá trị tương ứng với giá trị hiện trong Combo (Bài Tập). Chương trình sẽ tự cập nhật biến: TapTin = Chuong & Bai & “.jpg” Tiếp tục thực hiện lệnh: Set Cau = LoadPicture(TapTin) 4. Code của Image: Nội dung Code viết cho Image: Sau khi đã chọn Chương Trình & Chương & Bài Tập thì chương trình tự cập nhật biến Cau và biến DeBai. Chương trình tiếp tục thực hiện lệnh: Set Cau= LoadPicture(TapTin) Set DeBai = Cau Khi đó Image (DeBai) sẽ tự động load lên bài tập ứng với Chương Trình & Chương & Bài Tập đã chọn trong chương trình. 49
  56. Đồng thời các dữ kiện và các ô text nhập giá trị của dữ kiện cũng xuất Form tương ứng với Chương Trình & Chương & Bài Tập mà người sử dụng đã chọn. Hình 18: Giao diện chương trình sau khi đã chọn Chương Trình & Chương & Bài Tập 5. Code của nút Giải Nội dung Code viết cho Command (Giải): Trong nút Giải chúng tôi sẽ viết điều kiện và cách giải cho từng Bài Tập ứng với từng Chương và từng Chương Trình. Sau khi nút Giải được Click, thì chương trình tự nhận diện xem đấy là Bài Tập nào? Thuộc Chương nào? Của Chương Trình nào? Và tiến hành kiểm tra xem điều kiện của bài có thỏa hay không, nếu không thỏa thì hiện thông báo yêu cầu người sử dụng nhập lại giá trị của các biến cho đúng với yêu của cầu bài, nếu đúng thì tự động giải và xuất kết quả ra tại các ô text ẩn số. Ví dụ: code viết cho bài 0717 If taptin_6 = "0717.jpg" Then Bien_1.FontName = "VNI-Times" donvi_bien_1.FontName = "VNI-Times" Bien_2.FontName = "VNI-Times" donvi_bien_2.FontName = "VNI-Times" Bien_3.FontName = "VNI-Times" donvi_bien_3.FontName = "VNI-Times" An_1.FontName = "VNI-Times" donvi_an_1.FontName = "VNI-Times" An_2.FontName = "VNI-Times" donvi_an_2.FontName = "VNI-Times" Bien_1.Visible = True GTbien_1.Visible = True donvi_bien_1.Visible = True Bien_2.Visible = True GTBien_2.Visible = True donvi_bien_2.Visible = True Bien_3.Visible = True GTBien_3.Visible = True donvi_bien_3.Visible = True Bien_4.Visible = False GTBien_4.Visible = False donvi_bien_4.Visible = False 50
  57. Bien_5.Visible = False GTBien_5.Visible = False donvi_bien_5.Visible = False Bien_6.Visible = False GTBien_6.Visible = False donvi_bien_6.Visible = False An_1.Visible = True GTAn_1.Visible = False donvi_an_1.Visible = True An_2.Visible = True GTAn_2.Visible = False donvi_an_2.Visible = True An_3.Visible = False GTAn_3.Visible = False donvi_an_3.Visible = False S_bien_1.Visible = False S_Bien_2.Visible = False S_Bien_3.Visible = False S_Bien_4.Visible = False S_Bien_5.Visible = False S_Bien_6.Visible = False S_An_1.Visible = False S_An_2(0).Visible = False S_An_3(1).Visible = False Bien_1.Text = "OCv =" Bien_2.Text = "f =" Bien_3.Text = "OM =" An_1.Text = "l1 =" An_2.Text = "l2 =" donvi_bien_1.Text = "(cm)" donvi_bien_2.Text = "(cm)" donvi_bien_3.Text = "(cm)" donvi_an_1.Text = "(cm)" donvi_an_2.Text = "(cm)" end if If taptin_6 = "0717.jpg" Then If GTbien_1.Text = "" Or GTBien_2 = "" Or GTBien_3.Text = "" Then Dim tb_717 As Boolean tb_717 = MsgBox("hay nhap du cac gia tri vao cac o so lieu", vbOKOnly, "Thong Bao") Exit Sub End If If a_2 >= 0 Then a_2 = -a_2 GTBien_2.Text = a_2 End If If a_1 = a_1 Or a_1 >= a_3 Then Dim thongbao_717 As Boolean thongbao_717 = MsgBox("Hay nhap: 0 < /f1/ < OCv < OM ", vbCritical, "Thong Bao") Exit Sub End If Dim denta As Double 51
  58. denta = (a_1 + a_3) ^ 2 - 4 * (a_2 * (a_3 - a_1) + a_1 * a_3) If denta = a_3 Then Dim tb_7172 As Boolean tb_7172 = MsgBox("Phuong trinh co nghiem kep. Nhung khong thoa dieu kien: l 0 Then b_1 = ((a_3 + a_1) + Sqr(denta)) / 2 b_2 = ((a_3 + a_1) - Sqr(denta)) / 2 If b_1 >= a_3 And b_2 >= a_3 Then Dim tb_7173 As Boolean tb_7173 = MsgBox("Phuong trinh co hai nghiem phan biet. Nhung khong thoa dieu kien: l = a_3 Then GTAn_1.Text = "khong thoa dieu kien " GTAn_2.Text = Val(b_2) GTAn_1.Visible = True GTAn_2.Visible = True tieptuc.Visible = True End If If b_2 >= a_3 Then GTAn_2.Text = "khong thoa dieu kien " GTAn_1.Text = Val(b_1) GTAn_1.Visible = True GTAn_2.Visible = True tieptuc.Visible = True End If If b_1 < a_3 And b_2 < a_3 Then GTAn_1.Text = Val(b_1) GTAn_1.Visible = True GTAn_2.Text = Val(b_2) GTAn_2.Visible = True End If tieptuc.Visible = True 52
  59. End If End If Sau khi nút giải được Click thì nút Tiếp Tục sẽ hiện lên. 6. Code của nút Tiếp Tục Private Sub tieptuc_Click() GTbien_1.Text = "" GTBien_2.Text = "" GTBien_3.Text = "" GTBien_4.Text = "" GTBien_5.Text = "" GTBien_6.Text = "" GTAn_1.Text = "" GTAn_2.Text = "" GTAn_3.Text = "" End Sub Nội dung Code viết cho Command (Tiếp Tục): Khi nút Tiếp Tục được Click thì giá trị trong các ô text của biến số bị trả về trống. Để người sử dụng có thể thay đổi giá trị của các biến của bài toán và thu được giá trị của kết quả khác ưng ý hơn. Hình 19: Khi thay đổi giái trị biến thì sẽ cho kết quả có giá trị khác 53
  60. 7. Code của nút Kết Thúc Private Sub KetThuc_Click() End End Sub Nội dung Code viết cho Command (Kết Thúc): Khi nút Kết Thúc được click thì chương trình dừng lại và thoát khỏi chương trình. IV. Một số kỹ thuật được áp dụng 1. Một số kỹ thuật được sử dụng để tăng khả năng chịu lỗi cho chương trình Cũng như bất kì phần mềm nào. Thì trong quá trình sử dụng đều phải gặp lỗi trong quá trình chạy, đó có thể là do khách quan lẫn do chủ quan. Do đó khi viết phần mềm này tôi đã hạn chế tối đa các lỗi mà khi chạy thì chương trình có thể gặp phải và tìm cách tăng khả năng chịu lỗi của chương trình, để tránh tình trạng chương trình đang chạy lại bị đứng và bị treo máy. Khi viết chương trình này chúng tôi đã tiến hành khắc phục những lỗi và những hạn chế có thể gặp phải trong quá trình sử dụng : 1.1. Đề bài được load lên không đúng với tùy chọn của người sử dụng Cách khắc phục: Gắn vào Combo1 (Chương Trình) thuộc tính. Nếu như Chương Trình là Lớp 10 hoặc Lớp 12 thì chương trình sẽ hiện lên thông báo: “Chương trình chưa cập nhật” khi đó combo (Chương) và combo (Bài Tập) bị ẩn đi không cho người sử dụng chọn. Chỉ khi nào Chương Trình được chọn là Lớp 11 thì Combo (Chương) mới có thể được chọn. Sau khi Chương được chọn. Nếu Chương được chọn là 1 ; 2 ; 3 thì chương trình sẽ hiện lên thông báo: “Chương trình chưa cập nhật” và combo (BàiTập) bị ẩn đi không cho chọn. Nếu Chương là 4 ; 5 ; 6 ; 7 ; 8 thì Combo3 (Bài Tập) mới có thể được chọn. Sau khi Bài Tập được chọn thì chương trình sẽ tự nhận diện đấy là Bài Tập nào? của Chương nào? Lớp mấy? và Load đúng với bài mà người sử dụng yêu cầu. 1.2. Đứng chương trình khi người sử dụng đánh Text vào các Combo Cách khắc phục: Đặt thuộc tính cho các combo là chỉ được click để lựa chọn và không cho đánh text vào. Thuộc tính: Locked của Combo được chọn bằng True. 1.3.Dữ kiện hiện lên trong chương trình không đúng với dữ kiện của bài mà người sử dụng đã chọn Cách khắc phục: Trước hết cho tất cả các đối tượng (dữ kiện) ẩn đi. Và tại Comand (Giải) ta xác lập cho từng bài tập, ở bài tập nào thì đối tượng (dữ kiện) nào được xuất hiện và hiện lên với dữ kiện gì đều đã được tôi qui định. 54
  61. Ví dụ: Đối với Bài 1 - Chương 4 thì tại Comand (Gải) sẽ được nhập code như sau If taptin_3 = "0401.jpg" Then Bien_1.Text = "B=" Bien_2.Text = "I=" Bien_3.Text = "l=" An_1.Text = "F=" donvi_bien_1.Text = "(T)" donvi_bien_2.Text = "(A)" donvi_bien_3.Text = "(m)" donvi_an_1.Text = "(N)" Hình 20: Các dữ kiện được hiện lên theo yêu cầu của bài Ngoài ra do số bài tập quá nhiều, mỗi bài có các dữ kiện khác nhau. Do đó khi chuyển từ bài này sang bài kia thì xuất hiện trường hợp Font dữ kiện của bài trước vẫn còn áp dụng cho bài sau. Trong trường hợp này thì chúng tôi đã khắc phục bằng cách, xác lập thuộc tính Font cho từng dữ kiện tương ứng với từng bài tập, mà không sử dụng chung một Font như các chương trình thử nghiệm trước đây. Ví dụ: Đối với Bài 3 và Bài 4 - Chương 4 thì tại Comand (Gải) sẽ được nhập code như sau: If taptin_3 = "0403.jpg" Then Bien_2.FontName = "symbol" Bien_1.FontName = "VNI-Times" donvi_bien_1.FontName = "VNI-Times" donvi_bien_2.FontName = "VNI-Times" Bien_3.FontName = "VNI-Times" donvi_bien_3.FontName = "VNI-Times" Bien_4.FontName = "VNI-Times" donvi_bien_4.FontName = "VNI-Times" An_1.FontName = "VNI-Times" donvi_an_1.FontName = "VNI-Times" If taptin_3 = "0404.jpg" Then 55
  62. Bien_1.FontName = "symbol" donvi_bien_2.FontName = "symbol" donvi_bien_3.FontName = "Symbol" Bien_6.FontName = "symbol" donvi_bien_1.FontName = "VNI-Times" Bien_2.FontName = "VNI-Times" Bien_3.FontName = "VNI-Times" Bien_4.FontName = "VNI-Times" donvi_bien_4.FontName = "VNI-Times" Bien_5.FontName = "VNI-Times" donvi_bien_5.FontName = "VNI-Times" donvi_bien_6.FontName = "VNI-Times" An_1.FontName = "VNI-Times" donvi_an_1.FontName = "VNI-Times" Khi đó Font được sử dụng cho dữ kiện của bài 0403 sẽ không còn được sử dụng trong bài 0404. 1.4. Lỗi do nười sử dụng nhập giá trị không phải là số vào các ô text Cách khắc phục: Gán cho các ô nhập liệu đoạn code. Đoạn code này để khống chế chỉ cho người sử dụng nhập số cho TextBox. Nó chỉ cho phép nhập ký tự số, dấu âm (-) và dấu thập phân (.) trong KeyPress Event mà thôi. Private Sub Text1_KeyPress(KeyAscii As Integer) Dim Tmp As String Tmp = Text1.Text Select Case Chr$(KeyAscii) Case "0" To "9", Chr$(8) Case "-" If InStr(1, Tmp, "-") = 0 Then If Text1.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 [7] 1.5. Chưa nhập đủ các giá trị theo yêu cầu bài mà click Giải Khi không nhập đủ các giá trị vào các ô số liệu mà Click nút Giải (yêu cầu chương trình giải). Ví dụ: bài 110404 cần đủ giá trị của 6 biến thì mới có thể giải được. 56
  63. Nhưng do chủ quan mà người sử dụng lại nhập số giá trị ít hơn yêu cầu mà Click nút Giải, thì sẽ làm cho chương trình bị đứng và dẫn tới treo máy. Để khắc phục tình trạng này tôi đã đặt điều kiện cho từng bài tại Command (Giải), tương ứng với từng bài thì chương trình sẽ yêu cầu người sử dụng phải nhập đủ các giá trị cần thiết theo yêu cầu của đề bài, nếu không nhập đủ chương trình sẽ hiện lên thông báo: “Hay nhập đủ các biến số vào các ô số liệu”, và chỉ khi nào người sử dụng nhập đủ các giá trị theo yêu cầu thì phép tính mới được tiến hành, do đó sẽ tránh được tình trạng đứng chương trình. Ví dụ: Đối với Bài 4 - Chương 4 thì tại Comand (Gải) sẽ được nhập code như sau If taptin_3 = "0404.jpg" Then If GTbien_1.Text = "" Or GTBien_2.Text = "" Or GTBien_3.Text = "" Or GTBien_4 = "" Or GTBien_5 = "" Or GTBien_6 = "" Then Dim tb_404 As Boolean tb_404 = MsgBox("hay nhap du cac gia tri vao cac o so lieu", vbOKOnly, " Thong Bao ") Exit Sub End If Hình 21: Chương trình báo lỗi khi nhập thiếu dữ kiện Ngoài ra còn những trường hợp giá trị của người sử dụng nhập vào làm cho phép tính dẫn đến kết quả không xác định. Ví dụ: Một ôtô chuyển động thẳng đều trên đoạn đường 100km thì mất 2giờ. Tính tốc độ trung bình của ôtô. Bài toán này có 2 dữ kiện là S ; t và một biến số là v. S Tốc độ trung bình: vkmh==50 ( / ) t Khi đó sẽ không có chuyện gì xảy ra. Nhưng chẳng may trong trường hợp người sử dụng vô tình nhập giá trị của thời gian bằng không, thì kết quả của phép tính trên sẽ dẫn tới giá trị không xác định, khi đó chương trình không thể xuất kết quả tính toán ra được. Trong trường hợp này chúng tôi đã khắc phục bằng cách. Đối với những bài toán tương tự như vậy, chúng tôi sẽ đặt điều kiện ràng buộc cho bài toán, yêu cầu người sử dụng phải nhập giá trị ở mẫu số khác không. Nếu giá trị ở mẫu số được người sử dụng 57
  64. nhập bằng 0 thì, chương trình sẽ xuất ra thông báo: “Hay nhập giá trị của mẫu số khác 0” và yêu cầu người sử dụng nhập lại cho đến khi thỏa điều kiện trên thì phép tính mới bắt đầu thực hiện. Ví dụ: Đối với Bài 3 - Chương 4 thì tại Comand (Gải) sẽ được nhập code như sau If taptin_3 = "0403.jpg" Then If a_1 = 90 Then Dim thongbao_403 As Boolean thongbao_403 = MsgBox("hay nhap: m > 0 ; I > 0 ; l > 0 ; 0 900 hay tốc độ vms> 3.108 ( / ) thì điều này hoàn toàn không có ý nghĩa Vật Lí gì cả. Để tránh tình trạng này tôi đã đặt điều kiện ràng buộc cho từng bài tập để yêu cầu người sử dụng phải nhập giá trị dữ liệu theo đúng điều kiện đó thì phép tính mới được thực hiện. Khi đó sẽ đảm bảo được hai yếu tố, nhứ nhất là kết quả tính được thỏa mãn được ý nghĩa Vật Lí, thứ hai là giá trị của các biến được nhập và giá trị của kết quả được xuất ra không trái với ý nghĩa của đề bài. Ví dụ: Đối với Bài 20 - Chương 5 thì tại Comand (Gải) sẽ được nhập code như sau If taptin_6 = "0716.jpg" Then If (a_1 - a_3) * a_2 * 10 ^ -2 - 1 = 0 Then Dim thongbao_716_a As Boolean thongbao_716_a = MsgBox(" d1' = vô cùng . Phep tinh khong thuc hien duoc . Hay nhap lai so lieu khac ", vbCritical, " Thong Bao ") Exit Sub End If 58
  65. Hình 23: Chương trình báo lỗi khi kết quả thu được có giá trị không phù hợp 1.7. Chương trình không chạy khi nhập quá nhiều dữ liệu cho một đối tượng Visua Basic 6.0 là một loại ngôn ngữ lập khá đơn giản và rất thân thiện với người sử dụng, sản phẩm mà nó tạo ra đều có thể chuyển thành File EXE cho nên có thể sử dụng ở bất cứ máy tính nào mà không cần phải có thêm chương trình bổ trợ nào hết. Tuy nhiên vì nó quá đơn giản cho nên ở mỗi đối tượng mức độ xử lý của nó là có giới hạn. Ví dụ trong combo (Bài Tập) khi ta nhập quá nhiều dữ liệu vào thì chương trình sẽ báo lượng thông tin quá lớn chương trình không thể chạy được. Để tránh xảy ra tình trạng này, chúng tôi đã giới hạn lượng dữ liệu nhập cho từng đối tượng. Ví dụ như việc nhập dự liệu của 90 bài tập vào một Combo (Bài Tập) thì tất nhiên chương trình sẽ không chạy được. Và tôi đã khắc phục bằng cách tạo ra nhiều Combo (Bài Tập) mỗi một Combo (Bài Tập) sẽ tương ứng với một Chương. Ví dụ: Combo3 sẽ nhập dữ liệu của các bài tập Chương 4 của chương trình Lớp 11. Combo4 sẽ nhập dữ liệu của các bài tập Chương 5 của chương trình Lớp 11. Combo5 sẽ nhập dữ liệu của các bài tập Chương 6 của chương trình Lớp 11. Combo6 sẽ nhập dữ liệu của các bài tập Chương 7 của chương trình Lớp 11. Combo7 sẽ nhập dữ liệu của các bài tập Chương 8 của chương trình Lớp 11. 1.8. Phép toán của chương trình không áp dụng đúng với bài tập mà người sử dụng đã chọn Cũng tương tự vấn đề trên. Khi chúng ta nhập quá nhiều dữ liệu vào Command (Giải) thì xuất hiện tượng những thuộc tính của Chương trước vẫn còn khi ta chọn Chương sau, và xuất hiện cả trường hợp phép toán của bài này lại đem tính cho bài khác. Để khắc phục vấn đề tôi đã tạo ra nhiều Command (Giải). Mỗi một Command(Giải) tương ứng với một chương. Ví dụ: Command3 (Giải_4) sẽ nhập các điều kiện và cách giải của các bài tập Chương 4 của Chương Trình Lớp 11. 59
  66. Command4 (Giải_5) sẽ nhập các điều kiện và cách giải của các bài tập Chương 5 của Chương Trình Lớp 11. Command5 (Giải_6) sẽ nhập các điều kiện và cách giải của các bài tập Chương 6 của Chương Trình Lớp 11. Command6 (Giải_7) sẽ nhập các điều kiện và cách giải của các bài tập Chương 7 của Chương Trình Lớp 11. Command7 (Giải_8) sẽ nhập các điều kiện và cách giải của các bài tập Chương 8 của Chương Trình Lớp 11. 1.9. Các hàm được dùng trong Visual Basic rất hạn hạn chế Khi đi sâu vào viết thuật toán cho từng bài tập thì lại xuất hiện thêm một vấn đề nữa, đó là công cụ toán học hỗ trợ của Visual Basic rất hạn chế. Ví dụ như: Không hỗ trợ phép tính acsinα hay ac cosα mà chỉ hỗ trợ phép tính ac tanα mà thôi. Trường hợp này thì tôi đã khắc phục bằng cách chuyển acsinα và accosα thành ac tanα từ đó suy ra giá trị của α . 1.10. Phép toán của chương trình sẽ cho kết quả sai khi máy tính đang sử dụng dùng dấu “,” làm dấu ngăn cách giữa phần nguyên và phần thập phân Chương trình này chỉ hoạt động tốt đối với máy tính sử dụng dấu chấm làm dấu thập phân. Nếu máy tính của bạn đang sử dụng dấu “,” làm dấu phân cách giữa phần thập phân và phần nguyên, thì bạn có thể chỉnh lại bằng cách: Vào Control Panel Š Regional and Language Options Š Customize Š Numbers Š Decimal symbol và thay “ , ” bằng “ . ”. Khi đó chương trình sẽ hoạt động bình thường. 2. Một số kỹ thuật được sử dụng để tăng sự tiện nghi cho người sử dụng 2.1. Kỹ thuật thiết kế giao diện Để cho người sử dụng được tiện lợi trong quá trình soạn thảo các bài tập trên File Word. Giao diện đã được thiết kế chỉ chiếm nửa màn hình máy tính còn nửa màn hình còn lại để người sử dụng có thể gọi Microsoft Word lên để soạn thảo đề bài và điền kết quả vào. 60
  67. Hình 24: Giao diện màn hình máy tính khi sử dụng 2.2. Phím tắt Để việc soạn thảo được nhanh chóng và thuận lợi. Chương trình có hỗ trợ một số phím nóng. - Thay vì click nút Giải thì ta chỉ cần nhấn tổ hợp phím Alt + G - Thao tác click nút Tiếp Tục có thể thay bằng tổ hợp phím Alt + T - Thao tác click nút Kết Thúc có thể thay bằng tổ hợp phím Alt + K Tự quy đổi đơn vị Ví dụ: Trong Visual Basic, thì giá trị nhập vào các ô text phải là giá trị rad. Do đó khi muốn tính sin ; cos hoặc tan của một góc thì người sử dụng phải nhập vào giá trị rad của góc đó, điều này rất bất tiện cho người sử dụng. Do đó trong những trường hợp như vậy, khi viết thuật toán cho chương trình tôi đã tự quy đổi từ rad sang độ để giúp cho người dùng được tiện lợi hơn trong quá trình sử dụng. V. Viết code cho một bài tập mẫu r Bài 0501: Tính từ thông gây bởi một từ trường đều B ( B = 0,02 T ) qua một hình phẳng có chu vi là hình vuông cạnh a =10cm . Véctơ pháp tuyến của hình phẳng hợp r với B một gócα = 450 . 1. Bài giải bài 0501 Từ thông qua hình phẳng: Φ=BS cosα = 2.10(−4 N ) 2. Viết code cho bài 0501 Bài này có ba biến số (;;)Baα , một ẩn số ()Φ và bốn đơn vị (;Tcm ;;0 Wb ). 61
  68. Đối với bài này khi viết code cần phải lưu ý: - Sử dụng hàm FontName = "Symbol" để chuyển ký tự “a” thành ký tự “α ” và ký tự “F” thành ký tự “ Φ ”. - Quy đổi giá trị của “α ” từ độ sang rad, giá trị của “a” từ cm sang m. - Giá trị của các biến số phải dương, riêng α phải lớn hơn 0 và phải nhỏ hơn 90. - Chương trình phải có thông báo yêu cầu người sử dụng nhập đủ các dữ kiện mới bắt đầu tính toán. Trước tiên ta khai báo cho các dữ kiện: Biến 1 là “B”; Biến 2 là “a”; Biến 3 là “α ”; Đơn vị Biến 1 là (T); Đơn vị Biến 2 là (cm); Đơn vị Biến 3 là (0); Ẩn 1 là “Φ ”; Đơn vị Ẩn 1 (Wb). Các dữ kiện này được chọn Visible = False để xuất hiện trên giao diện của chương trình. Code viết cho command(Bài Tập) If taptin_4 = "0501.jpg" Then Bien_3.FontName = "Symbol" An_1.FontName = "Symbol" Bien_1.FontName = "VNI-Times" donvi_bien_1.FontName = "VNI-Times" Bien_2.FontName = "VNI-Times" donvi_bien_2.FontName = "VNI-Times" donvi_bien_3.FontName = "VNI-Times" donvi_an_1.FontName = "VNI-Times" Bien_1.Visible = True GTbien_1.Visible = True donvi_bien_1.Visible = True Bien_2.Visible = True GTBien_2.Visible = True donvi_bien_2.Visible = True Bien_3.Visible = True GTBien_3.Visible = True donvi_bien_3.Visible = True An_1.Visible = True GTAn_1.Visible = False donvi_an_1.Visible = True Bien_1.Text = "B =" Bien_2.Text = "a =" Bien_3.Text = "a =" An_1.Text = "F =" donvi_bien_1.Text = "(T)" donvi_bien_2.Text = "(cm)" 62
  69. donvi_bien_3.Text = "(0)" donvi_an_1.Text = "(Wb)" End If Code viết cho command(Giải) If taptin_4 = "0501.jpg" Then If GTbien_1.Text = "" Or GTBien_2.Text = "" Or GTBien_3.Text = "" Then Dim tb_501 As Boolean tb_501 = MsgBox("hay nhap du cac gia tri vao cac o so lieu", vbOKOnly, " Thong Bao ") Exit Sub End If If a_1 = 90 Then Dim thongbao_501 As Boolean thongbao_501 = MsgBox("hay nhap: B > 0 ; a > 0 ; 0 < anpha < 90", vbCritical, " Thong Bao ") Exit Sub End If b_1 = a_1 * (a_2 * 10 ^ -2) ^ 2 * Cos(a_3 * 3.14159 / 180) GTAn_1.Text = Val(b_1) GTAn_1.Visible = True tieptuc.Visible = True End If Sau khi viết code hoàn thành, thì khi chạy chương trình để soạn thảo bài 0501 thì chương trình có dạng như sau: Hình 2: Giao diện của chương trình khi soạn thảo bài 0501 63
  70. Phần III: KẾT LUẬN I. Thử nghiệm đánh giá Để viết được phần mềm Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) hỗ trợ cho giáo viên soạn thảo nhanh các bài tập phần: Điện Từ Học và Quang Hình Học cần một sự gia công sư phạm rất cao, đảm bảo một quy trình chặt chẽ và hợp lý. Do đó phải bỏ ra rất nhiều thời gian và công sức, đặc biệt là giai đoạn chuẩn bị. Đồng thời, phải tích cực làm quen, tìm hiểu môi trường lập trình của Visual Basic cũng như các ứng dụng của nó. Điều đó đòi hỏi bản thân tôi phải nổ lực rất nhiều, mà thật sự chỉ có lòng đam mê và tâm quyết mới có thể hoàn thành tốt được công việc này. Sau khi phần mềm được hoàn thành, tôi đã gửi cho một số giáo viên có kinh nghiệm ở trường THPT Chuyên Thoại Ngọc Hầu, trường THPT Mỹ Thới và một số sinh viên xuất sắc khoa Sư Phạm Vật Lí trường Đại Học An Giang để sử dụng thử nghiệm và đánh giá. Hầu hết họ đều đánh giá cao về ý tưởng, chất lượng của sản phẩm. Bản thân tôi đã nhận được nhiều ý kiến phản hồi là nên mở rộng thêm phần nội dung cho toàn bộ chương trình Vật Lí Phổ Thông và cả chương trình Vật Lí Đại Cương của Đại Học chứ không phải chỉ dừng lại ở Vật Lí 11 (phần: Điện Từ học và Quang Hình Học) như hiện nay. Nhưng do kiến thức và thời gian có hạn, chắc chắn phần mềm vẫn còn nhiều khuyết điểm, thiếu sót chưa khắc phục kịp. Rất mong được sự đóng góp ý kiến của thầy, cô và các bạn để phần mềm Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) ngày càng hoàn thiện hơn. II. Tổng kết 1. Ưu điểm của phần mềm - Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) Giúp soạn thảo nhanh các bài tập Vật Lí 11 (Phần: Điện Từ Học và Quang Hình Học) một cách nhanh chóng và chính xác. Hỗ trợ đắc lực cho giáo viên trong việc soạn thảo nhanh các bài tập định lượng và đề kiểm tra, góp phần nâng cao hiệu kiểm tra, đánh giá chất lượng học tập của học sinh. Với một lượng lớn bài tập mà chương trình có thể tạo ra. Nếu được sử dụng tốt. Có thể giúp cho học sinh rèn luyện kỹ năng thực hành giải bài tập, rút ngắn thời gian trong quá trình giải. Điều này là có ích và rất phù hợp với xu thế hiện nay. Xu thế kiểm tra đánh giá chất lượng giáo dục theo phương pháp trắc nghiệm khách quan. Một ưu điểm của việc lập trình trong môi trường Visual Basic 6.0 là phần mềm Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) 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ừ windows98 đến windowsxp và nhất là cả các máy có cấu hình thấp. Điều này đã được chúng tôi 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 trên thị trường. Ngoài ra như đã nói ở trên chương trình đã được thiết kế đặt biệt, giao diện của nó chỉ chiếm phân nửa màn hình monitor còn nửa còn lại để người sử dụng có thể gọi 64
  71. Microsoft Word lên để soạn thảo đề bài (Hình 24). Mà không cần phải chuyển qua chuyển lại giữa Microsoft Word và chương trình soạn thảo, như thế rất bất tiện cho người sử dụng khi soạn thảo lại đề. Chương trình đã chuẩn bị tương đối đầy đủ các dạng bài tập định lượng của chương trình Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) dựa trên quan điểm của Sách Giáo Khoa và Sách Bài Tập. Số lượng bài tập được chuẩn bị cho chương trình là khá nhiều. Giao diện được thiết kế đơn giản, ngôn ngữ tiếng Việt nên rất thân thiện với người sử dụng. 2. Khuyết điểm của phần mềm - Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) Chương trình chưa cập nhật đủ phần nội dung. Còn thiếu Chương Trình Vật Lí Lớp 10 ; 12 và cả Chương 1; 2; 3 của Chương Trình Vật Lí 11. Do sự hạn chế về thời gian và trình độ của bản thân nên chương trình chỉ có thể dừng lại ở việc load đề bài lên dưới dạng File hình (.jpg) mà thôi chứ không phải là File PDF hay là File Word. Do đó người sử dụng phải mất thời gian soạn thảo lại đề bài trên MC Word thì mới sử dụng được. Ngoài ra, nội dung và ý nghĩa của từng đề bài là cố định không thay đổi được. Do đó chúng ta chỉ có thể thay đổi được giá trị của các dữ kiện trong đề bài mà thôi. III. Hướng phát triển của đề tài Trong những phiên bản tiếp theo thì chương trình sẽ được bổ sung thêm những phần nội dung còn thiếu. Số lượng bài tập sẽ được cập nhật nhiều hơn và được phân loại tốt hơn. Công cụ hỗ trợ cho chương trình sẽ đa dạng, tiện ích hơn cho người sử dụng. Chúng tôi dự kiến trong những phiên bản kế tiếp, thì đề bài được load lên dưới dạng File PDF hoặc là File Word chứ không phải là File hình như hiện nay. Khi đó người sử dụng có thể copy và paste đề bài được chứ không cần phải type lại đề bài trên Microsoft Word như hiện nay, tạo sự tiện nghi tốt nhất cho người sử dụng. IV. Kiến nghị Đây là phần mềm rất cần thiết. Nó có tác dụng hỗ trợ cho giáo viên soạn thảo nhanh các bài tập Vật Lí (Phần: Điện Từ Học và Quang Hình Học). Mặc dù vẫn còn nhiều thiếu sót cần được bổ sung và hoàn chỉnh. Bản thân tôi rất mong muốn phần mềm này sẽ được tổ chức phổ biến một cách chính qui và nhận được nhiều thông tin phản hồi của người sử dụng, để phần mềm Soạn Thảo Nhanh Bài Tập Vật Lí 11 (Phần: Điện Từ Học & Quang Hình Học) ngày càng hoàn thiện hơn. Ngoài ra trường Đại Học An Giang cần hỗ trợ cho sinh viên các khóa sau thực hiện hết phần nội dung còn lại của chương trình Vật Lí Phổ Thông và cả chương trình Vật Lí Đại Cương (Cơ; Nhiệt; Điện; Quang ) của Đại Học. Để phần mềm Soạn Thảo Nhanh Bài Tập Vật Lí trở thành phần một phần mềm hoàn chỉnh. Đồng thời, cần phải đưa thêm vào chương trình học của sinh viên khoa sư phạm một học phần nữa đó là học phần Kỹ Năng Lập Trình. Điều này là rất cần thiết và phù hợp với xu thế hiện nay. 65
  72. TÀI LIỆU THAM KHẢO Lương Duyên Bình, Vũ Quang, Nguyễn Xuân Chi, Đàm Trung Đồn, Bùi Quang Hân, Đoàn Duy Hinh. 2007. Vật Lí 11. NXB Giáo Dục. 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. NXB Giáo Dục. Đặng Thế Khoa. 2003. Giáo Trình Lập Trình Ứng Dụng Visual Basic Tập 1. NXB Đại Học Quốc Gia Thành Phố Hồ Chí Minh. Đặng Thế Khoa, Nguyễn Hữu Thiện. 2003. Giáo Trình Lập Trình Ứng Dụng Visual Basic Tập 2. NXB Đại Học Quốc Gia Thành Phố Hồ Chí Minh. Nguyễn Thế Khôi, Nguyễn Phúc Thuần, Nguyễn Ngọc Hưng, Vũ Thanh Khiết, Phạm Xuân Quế, Phạm Đình Thiết, Nguyễn Trần Trác. 2007. Vật Lí 11 Nâng cao. NXB Giáo Dục. Nguyễn Thế Khôi, Nguyễn Phúc Thuần, Nguyễn Ngọc Hưng, Vũ Thanh Khiết, Phạm Đình Thiết, Nguyễn Trần Trác. 2007. Bài tập Vật Lí 11 Nâng cao. NXB Giáo Dục. [5] [6] Nguyễn Thị Kiều Duyên. 2001. Lập Trình Visual Basic 6.0. NXB Trẻ. 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 Chương trình Chuẩn. NXB Đại Học Quốc Gia TP. Hồ Chí Minh. 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 Chương trình Nâng cao. NXB Đại Học Quốc Gia TP. Hồ Chí Minh. [1] [2] [3] [4] Trần Thể. 2007. BÀI TẬP VẬT LÝ PHỔ THÔNG. Lê Văn Thông. 2007. Để Học Tốt Vật Lí 11. NXB Trẻ. Lê Văn Thông. 1997. Phân Loại Và Phương Pháp Giải Bài Tập Vật Lí 11. NXB Trẻ. [7] www.caulacbovb.com