- Thiết kế giao diện như hình vẽ.
- Viết chương trình tính khoảng cách và hướng đi Locxo
o Người sử dụng nhập dữ liệu: Tọa độ điểm đầu A ()
Tọa độ điểm cuối B()
o Chương trình sẽ tự động tính được khoảng cách và hướng đi Locxo giữa hai điểm AB
II/ XÂY DỰNG CHƯƠNG TRÌNH TÍNH ĐỘ LỆNH ĐỊA TỪ
2.1 Tạo thư mục làm việc
Như bài tập 1. Chúng ta cũng nên lưu chung các File chương trình vào cùng một thư mục D:\DKTB
2.2 Viết chươngtrình
2.2.1 Lưu chương trình
- Khởi động phần mềm EXCEL, sau đó mở File mới.
- Nhắp chuột vào Menu File -> chọn mục Save. Khi đó trên màn hình xuất hiện một khung hội thoại Save As.
Trong mục Save in: Chọn thư mục cần lưu File (DKTB)
Trong mục File Name: Tính hướng đi và khoảng cách Locxo.
Có thể thiết kế chương trình như sau:
2.2.2 Viết chương trình
Ta sử dụng các ô dành cho người dùng nhập dữ liệu là:
- Nhập giá trị tọa độ điểm đầu: C6, E6, G6, C9, E9, G9
- Nhập giá trị tọa độ điểm cuối:K6, M6, O6, K9, M9, O9
Các ô xuất kết quả là: C17, E17, K17 và N17
Sau đây là chương trình chính của bài toán:
Cũng như bài số 1 ta cần phải sử dụng các ô trung gian.
C11= C6 + E6/60 Đổi vĩ độ điểm đầu ra độ
D11= C9*60 + E9 Đổi kinh độ điểm đầu ra phút
K11= K6 + M6/60 Đổi vĩ độ điểm cuối ra độ
L11= K9*60 + M9 Đổi kinh độ điểm cuối ra phút
C12=7915.7045*Log(Tan(Radians(45+C11/2))) Tính vĩ độ tiến
K12=7915.7045*Log(Tan(Radians(45+K11/2))) Tính vĩ độ tiến
C13=K12- C12 Tính hiệu vĩ độ tiến
D13= L11 - D11 Tính hiệu kinh độ
E13=ATAN(D13/C13) Tính ra Radians của hướng đi
F13=DEGREES(E13) Tính hướng đi ra độ
G13=(K11-C11)*60 Tính hiệu vĩ độ ra phút
Kết quảtính toán:
C17=Trunc(F13) Lấy phần độ của hướng đi
E17=(F13 – C17)*60 Lấy phần phút của hướng đi
K17=G13/COS(E13) Tính khoảng cách ra hải lý
N17= K17*1.852 Tính khoảng cách ra Km
2.3 Chạy thử chương trình và sửa lỗi.
Khi chạy thử chương trình ta sẽ nhận thấy một số sai sót như:
- Thứ nhất: Nếu hai điểm đầu và điểm cuối có vĩ độ khác tên, ta sẽ nhận thấy kết quả tính toán sai. Chỉ khi hai điểm đầu và cuối cùng ở một bên của bán cầu thì mới tính hiệu vĩ độ, nếu ở khác bán cầu phải tính tổng. Cụ thể như sau:
C13=IF(G6=O6,K12-C12, K12+C12)
G13=IF(G6=O6,(K11-C11)*60,K11+ C11)*60)
- Thứ hai: Tương tự như trên nếu hai điểm có kinh độ khác tên thì việc tính toán cho kết quả sẽ không dúng. Như vậy nếu hai điểm có kinh độ ở cùng phía đông hoặc tây thì mới lấy hiệu kinh độ, nếu ở khác phía ta phải lấy tổng hai kinh độ. Để sửa chữa phần này nên làm như sau:
D13=IF(G9=O9, L11 - D11, L11-D11)
- Ngoài ra nếu người sử dụng gõ nhầm tên của các kinh độ cũng như vĩ độ thì chúng ta cần phải làm một số ô thông báo điều đó. Vĩ độ chỉ được phép nhận tên N hoặc S, kinh độ chỉ chấp nhận tên E hoặc W, các tên hoặc ký tự khắc nhập vào chương trình sẽ báo lỗi.
- Cũng tương tự như trên, chúng ta cũng nên có một số ô thông báo cho việc nhập giá trị “Độ”, “Phút” của các kinh, vĩ độ.
2.4 Hoàn chỉnh giao diện và bảo vệ dữ liệu.