Tài liệu Khóa luận 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 và quang hình học): 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
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.
MỤC LỤC
Phần Mở Đầu ............................................
72 trang |
Chia sẻ: hunglv | Lượt xem: 1114 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận 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 và quang hình học), để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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
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.
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
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
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 0ax b+ = ..................................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
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
1
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).
2
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.
3
- 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
4
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 0ax b+ =
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
5
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]
6
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: . . 1 ( )F B I l 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:
Cảm ứng từ tại điểm đang xét: 7 62.10 . 5.10 ( )IB T
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:
Cảm ứng từ tại tâm khung dây: 7 32 .10 . 1, 26.10 ( )IB N T
R
π − −= =
7
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:
Cảm ứng từ trong lòng ống dây: 7 34 .10 . 15,7.10 ( )NB I T
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ử: 15. . .sin 3,2.10 ( )f q v B Nα −= =
2.2.2. Chương: Cảm ứng điện từ
Bài 0501: Tính từ thông gây bởi một từ trường đều B
r
(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
với B
r
một góc 450.
Bài làm:
Từ thông qua hình phẳng: 4. .cos 2.10 ( )B S Wbα −Φ = =
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:
Độ tự cảm của ống dây là:
2 2
7 7 24. .10 . . 4. .10 . . . 0,08 ( )N NL S R H
l l
π π π− −= = ≈
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:
Giá trị của suất điện động tự cảm: 20 ( )t c
ie L V
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:
Năng lượng tích lũy trong cuộn: 21 . 0,1 ( )
2
W L i J= =
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:
8
Chiết suất của chất lỏng: 1 2 2
sin.sin .sin 2
sin
in i n r n
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:
Ta có: 81, 24.10 ( )c c mn v
v n 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:
Góc lệch tạo bởi lăng kính có giá trị: 01 2 45D i i A= + − =
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:
- Tiêu cự của kính:
1 20 ( )f cm
D
= = −
- Ảnh cách thấu kính một khoảng: . 12 ( )d fd cm
d f
′ = = −− ( ảnh ảo)
- Số phóng đại của ảnh: 0, 4A B dk
dAB
′ ′ ′= = − =
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 cmcm 6050 ÷ .
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:
Để nhìn ở xa thì phải có: )(5,111
1
11 dpCOf
DCOf
VK
VK −=−==⇒−=
Để đọc sách ở gần mặt nhất, phải đeo kính có tiêu cự 2f ứng với độ tụ 2D :
)(2
.
.11111
22
2
dp
dCO
dCOD
dCO
dCOf
COdfdd ck
ck
ck
ck
ck
=−=⇒−=⇒−==′+
9
Bài 0720: Một kính lúp có tiêu cự 4f cm= . Một người mắt tốt có khoảng nhì rõ
ngắn nhất là 24cOC 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:
Độ bội giác khi ngắm chừng ở cực cận: 7c cc c
f d f OCG k
f f
′− += = = =
Bài 0801: Kính hiển vi có tiêu cự vật kính và thị kính là 1 20,5 ; 2,5 .f cm f 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 20cOC cm= . Tính số bội giác khi ngắm chừng ở vô cực.
Bài Làm:
Số bội giác khi ngắm chừng ở vô cực:
1 2
. 272
.
cOCG
f f
δ
∞ = =
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ự 1 1,2f m= . Thị kính của một thấu kính hội tụ có tiêu cự 2 4f cm= . 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: 1 2 1 2 1, 24O O f f m= + =
- Số bội giác của kính tiên văn: 1
2
20fG
f∞
= =
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
10
2.3.1. Chương: Từ trường
Bài 0403: Giữa hai cực của nam châm chữ U là từ trường đều có B
r
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:
- Hệ ở trạng thái cân bằng: 0T P F+ + =r r r
- Lực từ tác dụng lên thanh: . . .F B I l P tgα= =
- Độ lớn của từ trường: . . 0,1 ( )
.
m g tgB T
I l
α= =
Bài 0404: Hai thanh nằm song song cách nhau l = 30 cm đặt trong từ trường B
r
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:
- Cường độ dòng điện qua dây lim loại là:
2 ( )I A
R r
ξ= =+
- Lực từ tác dụng lên thanh kim loại:
. . .sin 0,012 ( )F B I l 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ế
400V. Tiếp đó, nó được dẫn vào một miền có từ trường đều với B v⊥r r ( 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
định độ lớn của cảm ứng từ B
r
.
Bài Làm:
- Công của lực điện trường bằng độ biến thiên động năng: 21/ /
2e e
A q U m v= = (1)
- Bán kính quỹ đạo của êlectrôn: .
/ / .e
m vR
q B
= (2)
- Từ (1) và (2): 32 .1 0,96.10 ( )
/ /
e
e
m UB T
R q
−⇒ = =
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
2S 100cm= . Ống dây có 16R = Ω , hai đầu đoản mạch và được đặt trong từ trường đều:
α Tr
I
P
r
F
rB
r
α
l
N
M
I ξ
B
r
11
véctơ cảm ứng từ B
r
song song với trục của hình trụ và có độ lớn tăng đều 24.10 T / s− .
Tính công suất toả nhiệt trong ống dây.
Bài Làm:
- Suất điện động trong ống dây: ( . . .cos )/ / .c
N B Se i R
t t
α∆Φ ∆= = =∆ ∆
- Cường độ dòng điện cảm ứng: .. 0,025 ( )B N Si A
t R
∆= =∆
- Công suất toả nhiệt trong ống dây: 2. 0,01 ( )P R i 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ó
bán kính R = 5 cm. Ống dây được đặt trong từ trường đều, B
r
song song với trục hình
trụ, có độ lớn tăng đều với thời gian theo quy luật 210B T st
−∆ =∆ . Nối hai đầu ống dây
với một tụ điện có điện dung 410C F−= . Hãy tính năng lượng của tụ điện tích được.
Bài Làm:
- Độ lớn suất điện động cảm ứng trong ống dây:
2. . .cos . . .c
B Be N S N R
t t t
α π∆Φ ∆ ∆= = =∆ ∆ ∆
- Năng lượng tích luỹ được trong tụ điện:
2
2 2 2
9
1 1 1. . . . . . .
2 2 2
3,08.10 ( )
c
BW C U C e C N R
t
W J
π
−
∆⎛ ⎞= = = ⎜ ⎟∆⎝ ⎠
=
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
một kim nam châm lệch góc 045α = .Tìm I.
Bài Làm:
- 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:
- Ta có: 0iB B B= +
r r r
0iB B⊥
r r
0iB B⇒ =
r r
(1)
( ) 00, 45iB B =r r
- Từ thông qua ống dây: . . . .cosiL I N B S αΦ = = (2)
C
R
N vòng
B
r
α
B
r
0B
r
iB
r
12
- Từ (1) và (2): 0 0 02 7
7
. . . . .
1,33 ( )
4. .10 .4. .10
N B S N B S B l
I A
NL NS
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
suất của nước là 4
3
n = .
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.
- Góc khúc xạ: 090r A= − )
- Góc tới: 4sin sin sin cos
3
i n r i ac A⎛ ⎞= ⇒ = ⎜ ⎟⎝ ⎠
)
- Độ cao thực của mặt trời so với đường chân trời:
0 0 0490 90 sin cos 48, 2
3
x i ac A⎛ ⎞= − = − =⎜ ⎟⎝ ⎠
)
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ồ: . tan . tanBC BJ JC AH i BH r= + = +
- Áp dụng định luật khúc xạ:
2
2 2
sin sin sinsin sin sin cos 1 tan
(sin )
i i ii n r r r r
n n n i
⎛ ⎞= ⇒ = ⇒ = − ⇒ =⎜ ⎟⎝ ⎠ −
- Vậy bóng của gậy trên đáy hồ:
2 2
sin0,5. tan 1,5. 2,15 ( )
(sin )
iBC i m
n i
= + =−
r
i
CJ
I
B
H
A
r
i
S∞′
S∞
060
13
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ự 20f cm= . 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 18a cm= . Xác định vị trí của
vật?
Bài Làm:
- Trong mọi trường hợp: / /a d d ′= + (1)
- Ngoài ra ta có: .d fd
d f
′ = − (2)
- Từ (1) và (2):
Với : d d a′+ = (vật thật cho ảnh thật)
Thì 2 0d ad af− + = ( vô nghiệm a<4f )
Với : d d a′+ = − (vật thật cho ảnh ảo)
Thì 2 0d ad af+ − = (có hai nghiệm)
Hai vị trí của vật: 1 12 ( )d cm= (nhận) ; 2 30 ( )d cm= − (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 1 1A B có độ lớn 1k gấp 3 lần vật. Đưa vật ra xa (L) thêm một
khoảng 5a cm= ta thu được ảnh thật 2 2A B có độ lớn 2k 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 2 2 1 1.A B n A B= (với 1n < ). Áp dụng với 1/ 2n =
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 1 1A B cùng là thật, nên 1 0k < .
Sơ đồ tạo ảnh: 1 1
1 1
LAB A B
d d
⎯⎯→
′
Số phóng đại ảnh: 1 11 1
1 1 1
( 1)d kfk d f
d d f k
′ +− = − = − ⇒ =− (1)
- Sau khi dời AB và ảnh 2 2A B cùng là thật, nên 2 0k < .
Sơ đồ tạo ảnh: 2 2
2 2
LAB A B
d d
⎯⎯→
′
14
Số phóng đại ảnh:
2 22 1
2 2 1 2
( 1)
( )
d kf fk d f a
d d f d a f k
′ +− = − = − = − ⇒ = −− + − (2)
- Từ (1) và (2) : 1 2
1 2
( 1) ( 1)k kf f a
k k
+ += −
Tiêu cự của thấu kính: 1 2
1 2
. . 30 ( )k kf a cm
k k
= =−
Vị trí ban đầu của vật: 11
1
. 40 ( )d fd cm
d f
′= =′ −
b. Xác định a để thu được ảnh thật 2 2 1 1.A B n A B= (với 1n < ). Áp dụng với 12n =
- Theo đề bài:
2 2 1 1 2 2 1 1
2 2 1 1 2
1
2
1 1
2 1
1 1 1
1
. .
. .( )
. .
( )
( . 1) . . 10 ( )
.
A B n A B A B n A B
A B A B dn n k
dAB AB
f fn k n k
d f d a f
n k f n k da cm
n k
= ⇒ =
′⇒ = ⇒ − = −
⇒ = ⇔ =− + −
+ −⇒ = =
- Vậy từ vị trí ban đầu thấu kính được dời thêm một đọan: 10 ( )a cm=
Bài 0704: Hai thấu kính, một hội tụ ( 1 20f cm= ), một phân kì ( 2 10f cm= − ), có
cùng trục chính. Khoảng cách hai quang tâm là 30l cm= . Vật AB vuông góc với trục
chính được đặt bên trái 1L và cách 1L một đoạn 1d .
a. Cho 1 20d cm= , 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 1d để ảnh sau cùng là ảnh ảo và bằng n lần vật. Áp dụng 2n = .
Bài Làm:
a. Tìm vị trí và số phóng đại ảnh cuối cùng cho bởi hệ:
- Sơ đồ tạo ảnh: 1 2
1 1 2 21 1 2 2; ;
L L
d d d dAB A B A B′ ′⎯⎯⎯⎯→ ⎯⎯⎯⎯→
- Ta có: 1 1 1 1 1 11 2 1
1 1 1 1
. .;d f ld l f d fd d l d
d f d f
− −′ ′= = − =− −
2 2 2 1 1 1 12
2 2 1 1 2 1 1 2
. ( ) 10 ( )
( )
d f f ld lf d fd cm
d f d l f f lf f f
− −′ = = = −− − − − +
- Số phóng đại: 2 2 1 2 1 21 2
1 2 1 1 2 1 1 2
. 1. .
( ) 2
A B d d f fk k k
d d d l f f lf f fAB
⎛ ⎞ ⎛ ⎞′ ′= = = − − = =⎜ ⎟ ⎜ ⎟ − − − +⎝ ⎠ ⎝ ⎠
15
b. Tính 1d để ảnh sau cùng là ảnh ảo và bằng hai lần vật.
- Ảnh 2 2A B là ảnh ảo khi:
1
2 1 1
12 1 1 1 1
2
1 1 2 1 1 2 1 2
1 2 1
1 2
( )
( ) 0
( )
( )
( )
lff l f d
l ff ld lf d fd
d l f f lf f f f f lfl f f d
l f f
⎛ ⎞− − −⎜ ⎟−− − ⎝ ⎠′ = = <− − − + ⎛ ⎞−− − +⎜ ⎟− −⎝ ⎠
Tương đương: 11
1
lfd
l f
> − và
1 2
1
1 2( )
lf f fd
l f f
−< − −
Hay 1 60d cm> và 1 40d cm<
- Ảnh 2 2A B là ảnh ảo và bằng n lần vật:
1 2 1 2
1 2 1 1 2 1 1 2
..
( )
d d f fk n
d d d l f f lf f f
⎛ ⎞ ⎛ ⎞′ ′= − − = = ±⎜ ⎟ ⎜ ⎟ − − − +⎝ ⎠ ⎝ ⎠
Khi k n= : 1 2 1 2 11
1 2
. ( . ) 35 ( )
( )
f f n f f lfd cm
n l f f
− −= =− − (nhận so với điều kiện)
Khi k n= − : 1 2 1 2 11
1 2
. ( . ) 45 ( )
( )
f f n f f lfd cm
n l f f
− − −= =− − (loại so với điều kiện)
Bài 0724: Một người có khoảng nhìn rõ ngắn nhất 15cOC cm= và giới hạn nhìn
rõ là 35cma = . Người này quan sát một vật nhỏ qua kính lúp có tiêu cự 5f cm= . 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:
- Khi quan sát ở cực cận: ( )5 2,5
( )
c
c c c
c
l OC fd l OC cm d cm
l OC f
−′ = − = − ⇒ = =− −
- Khi quan sát ở cực viễn: ( ). 4, 44cv c v
c
l OC a fd l OC a d cm
l OC a f
− +′ = − + ⇒ = =− − −
- Vật phải được đặt trong khoảng 2,5 4,44cm d 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.
- Ta có: 0
.
. 21,4M i n cc M i n c M i n M i n
c c
OCABG k AB m
OC k
αα α α α µ= ≥ ⇔ ≥ ⇒ = =
Bài 0802: Kính hiển vi có tiêu cự vật kính và thị kính là 1 21 ; 4 .f cm f cm= = Một
người mắt tốt có khoảng nhìn rõ ngắn nhất 25cOC cm= , đặt mắt sát sau thị kính quan
16
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à 90G = . Tính
khoảng cách giữa vật kính và thị kính ?
Bài Làm:
- Sơ đồ tạo ảnh: 1 2
1 1 2 2
1 1 2 2; ;
f f
d d d d
AB A B A B′ ′⎯⎯⎯→ ⎯⎯⎯→
- Khi quan sát ở cực viễn: 2 2 2 4d d f cm′ = ∞⇒ = = (1)
- Số bộ giác của kính: 1 1 11 2
1 2 1 2
. c cOC OCd f dG k G
d f f f
′ ′−= = =
⇒ 1 13, 4d ′ = − (loại vì ảnh phải là thật) ; 1 15, 4d cm′ = (nhận) (2)
- Từ (1)(2) suy ra: 1 2 1 2 19, 4O O l d d cm′= = + =
Bài 0808: Một kính thiên văn có tiêu cự của vật kính là 1 85f cm= , tiêu cực của
thị kính là 2 5f cm= , được sử dụng cho người bình thường. Khi một người cận thị có
cOC =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: 1 2 1 2 90l O O f f cm= = + =
- Sơ đồ tạo ảnh: 1 2
1 1 2 2
1 1 2 2; ;
f f
d d d d
AB A B A B′ ′⎯⎯⎯→ ⎯⎯⎯→
- Đối với người bị cận thị nói trên thì khi ngắm chừng ở vô cực:
1 1 1 85d d f cm′= ∞⇒ = = ; 22 2
2
. 4,55vv
v
OC fd OC d cm
OC f
−′ = − ⇒ = =− −
Suy ra: 21 2 1
2
. 89,5v
v
OC fl d d f cm l
OC f
−′′ = + = + = <− −
- Vậy phải dời thị kính một đoạn 0,5l l l 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.
17
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:
18
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)
19
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
20
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.
21
- (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.
22
- (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,
23
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
24
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
25
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.
26
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:
27
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:
28
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:
29
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 đó.
30
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
31
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
< Nhỏ hơn A < B
<= Nhỏ hơn hoặc bằng A <= B
Khác nhau A B
> 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
32
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)
33
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 0ax b+ =
Giải phương trình 0ax b+ = 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.
34
- Commandbutton.
Các thuộc tính:
Đối tượng Thuộc tính Giải trị
Form Name
Caption
Form1
Giải phương trình bậc
nhất 0ax b+ =
Label Name
Caption
Font
Fontsize
Label1
a =
VNI – Time
20
Label Name
Caption
Font
Fontsize
Label2
b =
VNI – Time
20
Label Name
Caption
Font
Fontsize
Label3
x =
VNI – Time
20
Textbox Name
Caption
Text2
“ “
Textbox Name
Caption
Locked
Text3
“ “
True
Textbox Name
Caption
Locked
Text4
“ “
True
Command button Name
Caption
Command1
Kết Quả
Command button Name
Caption
Command2
Tiếp Tục
Command button Name Command1
35
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)
36
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:
37
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ữ.
38
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
39
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
40
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
41
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ẽ:
42
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
43
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
44
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
45
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 = ""
46
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
47
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
48
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.
49
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.
50
Đồ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
51
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
52
denta = (a_1 + a_3) ^ 2 - 4 * (a_2 * (a_3 - a_1) +
a_1 * a_3)
If denta < 0 Then
Dim tb_7171 As Boolean
tb_7171 = MsgBox("Phuong trinh vo nghiem", vbOKOnly,
"Thong Bao")
Exit Sub
End If
If denta = 0 Then
b_1 = (a_1 + a_3) / 2
b_2 = (a_1 + a_3) / 2
If b_1 >= a_3 Then
Dim tb_7172 As Boolean
tb_7172 = MsgBox("Phuong trinh co nghiem kep.
Nhung khong thoa dieu kien: l < OM ", vbOKOnly, "Thong Bao")
Exit Sub
End If
GTAn_1.Text = Val(b_1)
GTAn_1.Visible = True
GTAn_2.Text = Val(b_2)
GTAn_2.Visible = True
tieptuc.Visible = True
End If
If denta > 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 < OM ", vbOKOnly,
"Thong Bao")
Exit Sub
End If
If b_1 >= 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
53
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
54
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.
55
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
56
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.
57
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.
Tốc độ trung bình: 50 ( / )Sv km h
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
58
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 <
anpha < 90 ", vbCritical, " Thong Bao ")
Exit Sub
End If
Hình 22: Chương trình báo lỗi khi giá trị nhập vào làm cho kết quả tính được có giá trị
không xác định
1.6. Kết quả tính được không có ý nghĩa Vật Lí.
Nếu kết quả tính toán được góc khúc xạ 090r > hay tốc độ 83.10 ( / )v m s> 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
59
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.
60
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
Các file đính kèm theo tài liệu này:
- BIEN SOAN PHAN MEN SOAN THAO NHANH BAI TAP VAT LY 11.PDF