1. Trang chủ
  2. » Luận Văn - Báo Cáo

06.KieuDoiTuongPhuc - Dac Ta Hinh Thuc

21 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 282 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Slide 1 * TS Vũ Thanh Nguyên * Chương 6 Kiểu đối tượng phức TS Vũ Thanh Nguyên Trường Đại học Công Nghệ Thông Tin, ĐHQG HCM Khoa Công Nghệ Phần Mềm TS Vũ Thanh Nguyên * * TS Vũ Thanh Nguyên * Nội dung Định nghĩa kiểu đối tượng phức Khởi tạo đối tượng phức Ràng buộc trên kiểu dữ liệu Cập nhật đối tượng phức TS Vũ Thanh Nguyên * TS Vũ Thanh Nguyên * Đặc tả kiểu đối tượng phức Cú pháp Tên kiểu đối tượng phức Tên field1 Kiểu1 Tên field2 Kiểu2 Tên fieldn Kiểun TS Vũ Thanh Nguyên * TS Vũ Thanh Nguyên[.]

Trang 1

Chương 6: Kiểu đối tượng phức

TS Vũ Thanh Nguyên Trường Đại học Công Nghệ Thông Tin, ĐHQG-HCM

Khoa Công Nghệ Phần Mềm

Trang 2

Nội dung

 Định nghĩa kiểu đối tượng phức

 Khởi tạo đối tượng phức

 Ràng buộc trên kiểu dữ liệu

 Cập nhật đối tượng phức

Trang 3

Đặc tả kiểu đối tượng phức

 Cú pháp:

Tên-kiểu-đối-tượng-phức ::

Tên-field1 : Kiểu1Tên-field2 : Kiểu2

Tên-field n: Kiểu n

Trang 4

Đặc tả kiểu đối tượng phức

 Ở đó:

 ký hiệu :: có thể được đọc là ”is composed of” mà có thể

định nghĩa tương đương 2 khả năng sau:

Name :: …

Name = compose Name of … end

Lưu ý: ký hiệu :: thường được sử dụng hơn so với

compose

Trang 5

Đặc tả kiểu đối tượng phức

 Ví dụ: xác đinh kiẻu dữ liệu Datec

Trang 6

Đặc tả kiểu đối tượng phức

 Ví dụ: xác đinh kiẻu dữ liệu Fahrenheit và Celsius

Fahrenheit = compose Fahrenheit of

v : R end

hay

Celsius = compose Celsius of

v : R end

Trang 7

Đặc tả kiểu đối tượng phức

 Ví dụ:

Phân-số ::

tử-số : ℤ mẫu-số : ℤ hoặc

Phân-số = compose Phân-số of

tử-số : ℤ mẫu-số : ℤ end

Trang 8

Đặc tả kiểu đối tượng phức

Trang 9

Đặc tả kiểu đối tượng phức

Trang 10

Đặc tả kiểu đối tượng phức

 Ví dụ:

Điểm ::

x : ℝ

y : ℝ Tam-giác ::

A : Điểm

B : Điểm

C : Điểm Hình-tròn ::

tâm : Điểm bán-kính :

Trang 11

Tạo đối tượng phức

 Hàm mk-TênKiểuĐốiTượngPhức dùng để tạo đối tượng phức thuộc kiểu tương ứng

 Ví dụ:

mk-Phân-số: ℤ  ℤ  Phân-số

mk-Phân-số (5, 10) sẽ tạo ra 1 đối tượng phân số có tử-số là 5

và mẫu-số là 10 Điểm

Trang 12

Tạo đối tượng phức

 Ví dụ:

mk-Điểm: ℝ  ℝ  Điểm

mk-Tam-giác: Điểm Điểm Điểm Tam-giác

mk-Tam-giác (mk-Điểm(0,0), mk-Điểm (1,0), mk-Điểm(0, 1))

sẽ tạo ra tam giác có các điểm là A(0,0), B(1, 0) và C(0,1)

mk-Hình-tròn: Điểm  ℝ  Hình-tròn

mk-Hình-tròn (mk-Điểm(100,100), 200) sẽ tạo ra 1 đối tượng

hình tròn có tâm (100,100) và bán kính 200

Trang 13

Ràng buộc trên kiểu dữ liệu

 Ràng buộc trên kiểu dữ liệu

 Điều kiện về miền giá trị của các thuộc tính trong kiểu dữ liệu

 Điều kiện về mối liên quan về giá trị của các thuộc tính

trong kiểu dữ liệu

 Ví dụ: mk-Date (29, 2, 2007) !!!

 Ràng buộc trên kiểu dữ liệu

 Tính chất bất biến (invariant) trên các thuộc tính nhằm đảm bảo tính hợp lệ của thông tin trong đối tượng

Trang 14

Ràng buộc trên kiểu dữ liệu

 Hàm kiểm tra ràng buộc trên kiểu dữ liệu

Trang 15

Ràng buộc trên kiểu dữ liệu

 Ví dụ: cho kiểu dữ liệu Mảng-tăng

Mảng-tăng ::

ds : * số-pt :

Ràng buộc: mảng có tối đa 1000 phần tử, các phần tử trong ds

luôn có thứ tự tăng và số-pt bằng đúng với số phần tử trong ds

inv-Mảng-tăng: Mảng-tăng  B

inv-Mảng-tăng (m)

let s = m.ds, n = m.số-pt in

len s  1000 

Trang 16

Ràng buộc trên kiểu dữ liệu

 Ví dụ: cho kiểu dữ liệu Mảng-tăng

Mảng-tăng ::

ds : *

số-pt-không-âm-phân-biệt : ℕ

Ràng buộc: các phần tử trong ds luôn có thứ tự tăng và

số-pt-không-âm-phân-biệt là số lượng các phần tử không âm phân biệt trong ds

let s = m.ds, n = m.số-pt in

i, j  inds s  i > j  s(i)  s(j) 

Trang 17

Cập nhật đối tượng phức

 Phương án 1: Tạo ra đối tượng mới với các thông tin mới cập nhật và các thông tin sẵn có

 Ví dụ: d = mk-Date (1, d.month, d.year) sẽ cập nhật lại giá trị

ngày là 1, vẫn giữa nguyên giá trị tháng và năm

 Phương án 2: sử dụng hàm  để cập nhật thuộc tính trong đối tượng phức

 Ví dụ: d = (d, date ↦ 1) sẽ cập nhật lại giá trị ngày là 1, vẫn

giữa nguyên giá trị tháng và năm

⃐⃐

Trang 18

let tử-số-cũ = ps.tử-số, mẫu-số-cũ = ps.mẫu-số in

let u = uscln (tử-số-cũ, mẫu-số-cũ) in

let tử-số-mới = tử-số-cũ / u, mẫu-số-mới = mẫu-số-cũ / u in

ps = mk-Phân-số (tử-số-mới, mẫu-số-mới)

Trang 19

let tử-số-cũ = ps.tử-số, mẫu-số-cũ = ps.mẫu-số in

let u = uscln (tử-số-cũ, mẫu-số-cũ) in

let tử-số-mới = tử-số-cũ / u, mẫu-số-mới = mẫu-số-cũ / u in

ps = (ps, tử-số ↦ tử-số-mới, mẫu-số ↦ mẫu-số-mới)

⃐⃐

Trang 20

Cập nhật đối tượng phức

 Ví dụ: Sơ đồ của phép toán Datec

Ngày đăng: 29/05/2022, 18:31

HÌNH ẢNH LIÊN QUAN

Hình-tròn :: - 06.KieuDoiTuongPhuc - Dac Ta Hinh Thuc
nh tròn :: (Trang 10)

🧩 Sản phẩm bạn có thể quan tâm

w