Bài giảng Đặc tả hình thức - Chương 7: Kiểu ánh xạ cung cấp cho người học các kiến thức: Ánh xạ, các hàm và thao tác trên ánh xạ, đặc tả sử dụng ánh xạ. Mời các bạn cùng tham khảo nội dung chi tiết.
↦ 4, ↦ 3} = {1 ↦3, ↦ 4, ↦ 5} 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 12 Giả sử m1 = {a ↦ 1, c ↦ 3, d ↦ 1}, m2 = {b ↦ 4, c ↦ 5} m1†m2 = {a ↦ 1,b ↦ 4, c ↦ 5,d ↦ 1} m2†m1 = {a ↦ 1,b ↦ 4, c ↦ 3,d ↦ 1} m†{} = m = {}†m 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 13 Tốn tử chọn theo tập khóa ⊲ _⊲ _ : m A-set A B m A B s⊲m≝ { a ↦ m(a) | a (dom m s ) } Ý nghĩa: chọn lại ánh xạ có giá trị khóa cho trước 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 14 Tốn tử chọn theo tập khóa ⊲ Ví dụ: { 2, 3, 4} ⊲ {1 ↦ 3, ↦ 7, ↦ 3} = {4 ↦ 7, ↦ 3} { a, d, e} ⊲ m1 = {a ↦ 1, d ↦ 1} {} ⊲ m = {} s ⊲ {} = {} 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 15 Tốn tử xóa dựa vào tập khóa ⊲_ _⊲_ _ : m A-set A B m A B s ⊲_ m ≝ { a ↦ m(a) | a (dom m – s ) } Ý nghĩa: Xóa bỏ ánh xạ có giá trị khóa cho trước _ _ 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 16 Toán tử xóa dựa vào tập khóa ⊲_ Ví dụ: { 2, 3, 4} ⊲_ {1 ↦ 3, ↦ 7, ↦ 3} = {1 ↦ 3} { a, d, e} ⊲_ m1 = {c ↦ 3} {} ⊲_ m = m ma†mb = (dom mb – ma) mb 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 17 Đặc tả với kiểu ánh xạ Ví dụ: m Mã-HP Tên-HP m Mã-GV Mã-HP-set m Mã-GV Giảng-Viên m Mã-SV Sinh-Viên 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 18 Đặc tả với kiểu ánh xạ Ví dụ: Mã-HP = Char* Mã-SV = Char* HọTên = Char* Sinh-Viên :: mã-SV: Mã-SV họ-tên: HọTên Lớp :: mã-HP: Mã-HP mã-Lớp: ℕ1 học-kỳ: {1, 2, 3, 4} năm-học: ℕ1 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 19 Đặc tả với kiểu ánh xạ m Đăng-ký = Sinh-Viên Lớp-set m Danh-sách-lớp= Lớp Sinh-Viên-set 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 20 Đặc tả với kiểu ánh xạ Ví dụ: Đặc tả hàm trả lớp mà sinh viên sv đăng ký học DSĐăngKýHọc : Sinh-Viên Đăng-ký Đăng-ký DSĐăngKýHọc (sv, ds-đăng-ký) ≜ {sv} ⊲ ds-đăng-ký DSLớpĐăngKýHọc : Sinh-Viên Đăng-ký Lớp-set DSLớpĐăngKýHọc (sv, ds-đăng-ký) ≜ if (sv dom ds-đăng-ký) then ds-đăng-ký(sv) else {} 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 21 Đặc tả với kiểu ánh xạ Ví dụ: Đăng ký cho sinh viên học lớp ĐĂNG-KÝ-HỌC (sv: Sinh-Viên, lớp: Lớp) ext wr đk: Đăng-ký pre post ↼ = {}) ({sv} ⊲ đk ↼ (lớp ({sv} ⊲ đk)(sv)) ↼ ↼ † { sv ↦ ({sv} ⊲ đk ↼ )(sv) {lớp}) } ({sv} ⊲ đk {})) (đk = đk ↼ ↼ = {})) (đk = đk { sv ↦ {lop}) ({sv} ⊲ đk 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 22 Đặc tả với kiểu ánh xạ Ví dụ: Đăng ký cho sinh viên học lớp ĐĂNG-KÝ-HỌC (sv: Sinh-Viên, lớp: Lớp) ext wr đk: Đăng-ký ↼ ↼ ↼ pre (sv dom(đk)) ((sv dom(đk)) (lớp đk(sv))) post ↼ ↼ {lớp}}) (sv dom(đk))) ↼ † { sv ↦ đk(sv) ((đk = đk ↼ ((đk = ↼ đk { sv ↦ {lop}) (sv dom(đk))) 4/5/2019 CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 23 ... Sinh-Viên Đăng-ký Đăng-ký DSĐăngKýHọc (sv, ds-đăng-ký) ≜ {sv} ⊲ ds-đăng-ký DSLớpĐăngKýHọc : Sinh-Viên Đăng-ký Lớp-set DSLớpĐăngKýHọc (sv, ds-đăng-ký) ≜ if (sv dom ds-đăng-ký) then ds-đăng-ký(sv)... CuuDuongThanCong.com PGS.TS Vu Thanh Nguyen https://fb.com/tailieudientucntt 17 Đặc tả với kiểu ánh xạ Ví dụ: m Mã-HP Tên-HP m Mã-GV Mã-HP-set m Mã-GV Giảng- Viên m Mã-SV Sinh-Viên 4/5/2019 CuuDuongThanCong.com... Vu Thanh Nguyen https://fb.com/tailieudientucntt 18 Đặc tả với kiểu ánh xạ Ví dụ: Mã-HP = Char* Mã-SV = Char* HọTên = Char* Sinh-Viên :: mã-SV: Mã-SV họ-tên: HọTên Lớp :: mã-HP: Mã-HP mã-Lớp: