Code chƣơng trình

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng thuật toán và sơ đồ khối của chương trình dự báo động đất theo mô hình thống kê (Trang 42 - 46)

Chƣơng 1 : TỔNG QUAN

3.6. Code chƣơng trình

Mã chƣơng trình đƣợc viết trên ngơn ngữ C# - là một ngôn ngữ “hƣớng đối tƣợng”. Để hiểu đƣợc code của một ngơn ngữ “hƣớng đối tƣợng” thì cần phải hiểu một số khái niệm cơ bản sau đây :

Lớp (Class): Trong lập trình hƣớng đối tƣợng, một lớp là một cấu trúc

đƣợc sử dụng nhƣ một kế hoạch chi tiết, để từ lớp đó có thể tạo ra những tình huống cụ thể riêng tuân theo đúng kế hoạch đó, đƣợc gọi là những

đối tƣợng.

Đối tƣợng (Object): Theo nhƣ diễn giải ở trên, đối tƣợng của một lớp

“A” nào đó trong lập trình là 1 biến nào đó có các thuộc tính của lớp “A”. Nhƣng khác với lớp ở chỗ, lớp chỉ là định nghĩa, các thuộc tính trong lớp

chƣa chứa giá trị cụ thể, chỉ chứa mơ tả kiểu thuộc tính là kiểu gì. Ví dụ nhƣ thuộc tính bán kính thuộc kiểu số thực dƣơng, và ngồi ra có thể chứa thêm đơn vị. Cịn trong đối tƣợng, thì thuộc tính bán kính bắt buộc phải có giá trị cụ thể, ví dụ nhƣ 5, đơn vị cm. Ví dụ khác: có thể định nghĩa lớp “trƣờng” (field) với các thuộc tính, tính chất mơ tả chung cho

trƣờng, ví dụ nhƣ đƣờng sức, mật độ, độ lớn, hƣớng. Sau khi có lớp

“trƣờng”, có thể tạo ra đối tƣợng cụ thể nhƣ lớp “từ trƣờng”, “điện trƣờng”, “trƣờng trọng lực”. Ba đối tƣợng này đều có các thuộc tính, tính chất đƣợc định nghĩa trong lớp “trƣờng”, và đƣợc phân biệt với nhau bởi sự khác nhau giữa các đối tƣợng trên thể hiện qua đặc điểm của từng thuộc tính.

Lệnh: Trong lập trình cơ bản (không hƣớng đối tƣợng), lệnh là một tập

hợp các thao tác, để giải quyết một việc nào đó, hoặc để lấy một giá trị nào đó cần tìm. Ví dụ nhƣ lệnh “tắt máy tính” sẽ thốt hết các chƣơng trình, lƣu dữ liệu, cuối cùng ngắt nguồn điện, hoặc lệnh tính số Pi, sẽ khơng thay đổi gì trong máy, nhƣng lại lấy đƣợc ra dữ liệu là số Pi. Lệnh trong ngôn ngữ hƣớng đối tƣợng, cũng có thể hiểu tƣơng tự nhƣ trong lập trình cơ bản, nhƣng có thêm một số đặc điểm quan trọng cần biết:

Lệnh có thể là một trong những thuộc tính của một đối tƣợng nào đó

(ví dụ đối tƣợng “đƣờng trịn” có lệnh “tính diện tích”). Lệnh trong một đối tƣợng sẽ không thể thực thi bằng cách gọi trực tiếp nhƣ lệnh của lập trình cơ bản, vì giả sử nếu gọi lệnh “tính diện tích” trên, thì sẽ khơng biết tính diện tích của vịng trịn nào, không ra đƣợc con số cụ thể. Lệnh của “lớp” cần đƣợc sử dụng ở một đối tƣợng cụ thể thuộc “lớp” đó. Ví dụ nhƣ ta tạo một đối tƣợng “đƣờng trịn bán kính 2cm” thuộc lớp “đƣờng trịn”, thì khi đƣờng trịn bán kính 2cm đó gọi lệnh “tính diện tích” đã đƣợc định nghĩa trƣớc cơng thức ở lớp “đƣờng trịn” thì lệnh sẽ tính ra đƣợc diện tích cụ thể, dựa vào các thuộc tính đã biết của đối tƣợng đƣờng trịn cụ thể đó.

Phần code chính để xử lý nằm trong “lớp” có tên là processor, ngồi ra có

một số “lớp” khác để thể hiện kiểu dữ liệu, mà hầu nhƣ sẽ đƣợc sử dụng trong

những lệnh thuộc lớp processor, có những lệnh / kiểu dữ liệu chính sau đây và tác dụng của nó :

 Kiểu dữ liệu trandongdatdubao : chứa các thông tin về trận động đất dự

báo, ví dụ như thời gian dự báo, thời gian tựa, tọa độ tiểu vùng, v.v…

 Kiểu dữ liệu trandongdat : chứa các thông tin về trận động đất (thời gian,

tọa độ một số thông tin trung gian khác để tiện cho việc xử lý)

 Lệnh createArray(string text): (lệnh tạo mảng các dữ liệu đầu vào là

thông số của các trận động đất để xử lý, dựa vào phần text nhập vào từ văn bản, kết quả trở về là một mảng các lệnh trả về kết quả dạng mảng của các phần tử thuộc kiểu dữ liệu trandongdat, tham số đầu vào text là

nội dung của ô văn bản nhập dữ liệu của các trận động đất ở phần nhập dữ liệu đầu vào).

 Lệnh process(trandongdat[] toanbocactran, double topmax, double dfi, int nmin)

(lệnh xử lý chính, dùng để xác định các trận động đất dự báo, trả về kết quả dạng mảng chứa các trận động đất dự báo theo kiểu dữ liệu trandongdatdubao, dữ liệu đầu vào để lệnh xử lý bao gồm mảng các trận động đất – kết quả của lệnh createArray, thời gian tựa tối đa, dfi, số trận tối thiểu trong 1 tiểu vùng – nhập vào từ giao diện chương trình)

 Một số lệnh khác nhƣ trungbinh, dolechbinhphuongtrungbinh, predict (dự

báo), prmin (dự báo nhỏ nhất)v.v… đƣợc sử dụng trung gian trong quá

trình xử lý chính (lệnh process)

Trong khi chạy, chƣơng trình sẽ tạo ra một đối tƣợng thuộc lớp processor, đối tƣợng này sẽ lần lƣợt thực hiện những chức năng để nạp dữ liệu đầu vào, chuyển đổi dữ liệu từ text sang mảng của các đối tƣợng thuộc kiểu trandongdat chứa các

giá trị số, xử lý tính tốn để tìm ra mảng các đối tƣợng thuộc kiểu

Trích phần code chính của chƣơng trình đƣợc trình bày tại phụ lục 1 (phụ lục 1). Nhƣ vậy, theo thuật toán và sơ đồ khối tƣơng ứng đã thiết lập, bƣớc cuối cùng của chƣơng trình khơng những sẽ cho phép kiểm tra tính đúng đắn của kết quả dự báo bằng cách lùi danh mục động đất về quá khứ và so sánh với các sự kiện thực đã xảy ra sau thời điểm topmax mà còn tạo đƣợc danh mục các sự kiện dự báo chứa các tham số cơ bản của các sự kiện nhƣ thời điểm xảy ra động đất, vị trí (tọa độ địa lý (kinh độ, vĩ độ) và độ lớn (magnitude) của các sự kiện dự báo. Kết quả dự báo động đất bằng phƣơng pháp nêu trên mặc dù thuần túy chỉ mang bản chất của xác xuất thống kê mà chƣa bao hàm bản chất vật lý của các sự kiện, tuy nhiên đây lại là một cách tiếp cận mới với ƣu điểm nổi bật nhƣ sau:

Thuật tốn và sơ đồ khối của chƣơng trình dự báo động đất trên cơ sở ứng dụng mơ hình thống kê vừa đơn giản hơn mà lại có khả năng loại bỏ đƣợc các nhƣợc điểm của các phƣơng pháp dự báo dài hạn và trung hạn là không xác định đƣợc độ chính xác dự báo động đất. Đây chính là sự khác biệt so với các phƣơng pháp dự báo động đất khác và cũng là một ƣu điểm nổi trội, vừa có ý nghĩa khoa học vừa có ý nghĩa thực tiễn của cách tiếp cận mới này. Đồng thời nhƣợc điểm chính của cách tiếp cận này do chƣa tính đến bản chất vật lý của các sự kiện có thể khắc phục bằng cách kết hợp phƣơng pháp dự báo động đất bằng mơ hình thống kê với các phƣơng pháp vật lý kiến tạo khác. Ý tƣởng này đang đƣợc tác giả luận văn tiếp tục thực hiện trong tƣơng lai.

Nhƣ vậy, trên cơ sở thuật toán và sơ đồ khối đã đƣợc xây dựng, một chƣơng trình mới đã đƣợc thiết lập bởi tác giả luận văn để dự báo động đất theo mơ hình thống kê. Áp dụng thử nghiệm chƣơng trình để dự báo động đất cho các khu vực khác nhau sẽ đƣợc tiếp tục thực hiện trong phần tiếp theo của luận văn.

Chƣơng 4

ÁP DỤNG CHƢƠNG TRÌNH DỰ BÁO ĐỘNG ĐẤT THEO MƠ HÌNH THỐNG KÊ THỬ NGHIỆM DỰ BÁO CHO CÁC KHU VỰC CỤ THỂ

Trong chƣơng này tác giả áp dụng thử nghiệm chƣơng trình đã đƣợc thiết lập để dự báo động đất cho khu vực Tây Bắc Việt Nam, là khu vực có mức độ hoạt động địa chấn cao, và khu vực Đông Nam Á, là khu vực có số liệu động đất tƣơng đối đầy đủ.

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng thuật toán và sơ đồ khối của chương trình dự báo động đất theo mô hình thống kê (Trang 42 - 46)