KHOA CNTT – Đ H KHTN
4.3.10. Lớp PTBac2_nAn :
Lớp PTBac2_nAn : thể hiện cho Phương Trình bậc 2 n ẩn có dạng như sau : (A1 - x1)² + (A2 – x2)² + …… + (An – xn)² = K
4.3.10.1. Danh sách biến thành phần : PTBac2_nAn SoAn MaTran XuatBaiGiai() TinhGiaTri() (f rom Equation)
_ SoAn : xác định số lượng giá trị Xi. 65
KHOA CNTT –
ĐH KHTN
_ MaTran : 1 mảng 2 chiều để chứa các giá trị Ai, dùng công thức “Xác định đa thức tuyến tính” trong Toán A3.
4.3.10.2. Danh sách hàm thành phần :
_ XuatBaiGiai() : xuất ra cách thức giải Phương Trình này theo nguyên tắc : + chuyển Phương Trình này về dạng Ax² + Bx + C = 0
+ nếu chuyển được thì thực hiện giải bài tập. + nếu không thì ghi nhớ lại.
_ TihnGiaTri() : tính giá trị Phương Trình xem có thỏa điều kiện P(x) = 0.
4.3.11. Lớp TH_PhanTu :
Với mỗi 1 Đối Tượng Hình Học (lớp TPHinhHoc) được sử dụng trong Bài Tập, ta có tương ứng 1 đối tượng thể hiện trên Đố Thị (lớp TH_PhanTu) ⇒ mối quan hệ
giữa lớp TPHinhHoc và lớp TH_PhanTu là quan hệ 1- 1.
KHOA CNTT – ĐH KHTN ĐH KHTN TPHinhHoc (f rom Fundament) TH_DuongTron (f rom Ds TH_PhanTu) TH_Diem (f rom Ds TH_PhanTu) TH_DuongThang (f rom Ds TH_PhanTu) TH_TamGiac (f rom Ds TH_PhanTu) TH_TuGiac (f rom Ds TH_PhanTu) TH_Ellipse (f rom Ds TH_PhanTu) TH_Hyperbol (f rom Ds TH_PhanTu) TH_Parabol (f rom Ds TH_PhanTu) TH_PhanTu 1 1 1 1 Hình 2.4.3-20 Lớp TH_PhanTu
Trong Mô Hình này, ta có lớp cơ sở là lớp TH_PhanTu tương ứng với 1 Đối Tượng Hình Học được thể hiện trên màn hình Đồ Thị.
Lớp TH_PhanTu : là 1 lớp ảo, thể hiện chung cho các Đối Tượng được thể
hiện trên màn hình Đồ Thị, lớp này sẽ giữ mối quan hệ với 1 lớp có kiểu PhanTu xác định. 4.3.11.1. Danh sách biến thành phần : TH_PhanTu Khung : Rectangle Tracker : MyTracker SoGiaTri : Integer DuocChon : Boolean PhanTus : PhanTu* TH_PhanTus : TH_PhanTus* ChuanBiBut() Ve() DiemThuocHinh() ChuyenTuTPHinhHoc() LayViTriThu() CapNhatViTri() ThayDoiKhung() LayKhung() CapNhatTracker() _ Khung : thuộc kiểu Rectangle, thể hiện cho 1
khung chữ nhật, là 1 bao đóng của Hình.
_ Tracker : thuộc lớp MyTracker, dùng để thể hiện cho khi nào 1 Đối Tượng trên màn hình Đồ Thịđược chọn.
KHOA CNTT –
ĐH KHTN
_ SoGiaTri : số lượng các Vị Trí mà 1 Đối Tượng cần phải nắm giữ từ lớp TPHinhHoc.
_ DuocChon : xác định khi nào Đối Tượng được chọn.
_ PhanTus : danh sách các lớp Đối Tượng TPHinhHoc (1 đối tượng Hình Học bao gồm nhiều đối tượng Hình Học khác) mà lớp này đang nắm giữ.
_ TH_PhanTus : danh sách các lớp Đối Tượng TH_PhanTu (tương ứng với từng đối tượng TPHinhHoc) mà lớp này đang nắm giữ.
4.3.11.2. Danh sách hàm thành phần :
_ ChuanBiBut() : chuẩn bị nét bút, dùng trong hàm Ve().
_ Ve() : đây là 1 hàm ảo, dùng để thực hiện vẽ 1 đối tượng màn hình ra Đồ Thị. _ DiemThuocHinh() : là 1 hàm ảo, xác định 1 điểm trên Đồ Thị có nằm trên hình này không, mỗi đối tượng Hình Học có hình dáng khác nhau nên cũng có nhưng thuật toán xác định khác nhau.
_ ChuyenTuTPHinhHoc() : chuyển nội dung, thông tin từ 1 đối tượng Hình Học kiểu TPHinhHoc thành 1 đối tượng TH_PhanTu.
_ LayViTriThu() : lấy thông tin về Vị Trí thứ i của đối tượng. _ CapNhapViTri() : cập nhật nội dung của Vị Trí thứ i.
_ ThayDoiKhung () : thực hiện thay đổi khung đóng bao bọc lấy đối tượng, xảy ra khi ta thay đổi hình dạng của 1 đối tượng Hình Học.
_ LayKhung() : lấy thông tin về khung đóng của 1 đối tượng Hình Học, dùng để xác
định kìch thước mà màn hình Đồ Thị cần thể hiện.
_ CapNhatTracker() : cập nhật lại thông tin về lớp Tracker.
4.3.11.3. Sơ đồ phối hợp hoạt động
_ ChuyenTuTPHinhHoc() : đây là 1 hàm ảo nhưng dựa trên nguyên tắc, lấy các thông tin từ lớp TPHinhHoc (thông qua thành phần PhanTus), sau đó cập nhật ngược lại vào đối tượng TH_PhanTu để xác định các Vị Trí chính xác trên màn hình.
KHOA CNTT – ĐH KHTN ĐH KHTN * * TH_PhanTu ChuyenTuTPHinhHoc() PhanTus CapNhatViTri() TPHinhHoc GetTP() TH_PhanTu TH_PhanTu
Chương trình đã định nghĩa 1 số lớp kế thừa từ lớp TP_PhanTu để chuyên biệt hoá các xử lý cho từng đối tượng Hình Học được thể hiện trên Đồ Thị mà thường được sử dụng trong các Bài Toán Hình học Giải Tích.
Các lớp này sẽ kế thừa các hàm sau :
_ Ve() : thực hiện thao tác vẽ trên Đồ Thị riêng cho từng đối tượng (áp dụng các thuật toán Đồ hoạ khác nhau).
_ DiemThuocHinh() : xác định 1 Điển trên Đồ Thị có nằm trên 1 Hình thuộc lớp TH_PhanTu nào đó không.
_ ChuyenTuTPHinhHoc() : đồng bộ hoá thông tin từ lớp TPHinhHoc sang lớp TH_PhanTu, giúp thể hiện chính xác đối tượng.
Các đối tượng có thể thể hiện trên Đồ Thị gồm cáclớp sau : _ Lớp TH_Diem : thể hiện cho 1 đối tượng Điểm.
_ Lớp TH_DuongThang : thể hiện cho 1 đối tượng Đường Thẳng. _ Lớp TH_TamGiac : thể hiện cho 1 đối tượng Tam Giác.
_ Lớp TH_TuGiac : thể hiện cho 1 đối tượng Tứ Giác.
_ Lớp TH_DuongTron : thể hiện cho 1 đối tượng Đường Tròn. _ Lớp TH_Ellipse : thể hiện cho 1 đối tượng Ellipse.
_ Lớp TH_Hyperbol : thể hiện cho 1 đối tượng Hyperbol. _ Lớp TH_Parabol : thể hiện cho 1 đối tượng Parabol.
KHOA CNTT –
ĐH KHTN