Bài giảng Đặc tả hình thức: Chương 4 - PGS.TS. Vũ Thanh Nguyên
lượt xem 3
download
Bài giảng Đặc tả hình thức: Chương 4 Số và kiểu mảng, cung cấp cho người đọc những kiến thức như: Số và mảng; ngôn ngữ Z mô tả các dạng số; các hàm và thao tác trên mảng/chuỗi. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Đặc tả hình thức: Chương 4 - PGS.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 Chương 4 Số và Kiểu mảng Giảng viên: PGS. TS. Vũ Thanh Nguyên 1
- Nội Dung Số và mảng là khái niệm quan trọng của Đặc tả hình thức Ngôn ngữ Z mô tả các dạng số - đặc biệt là số tự nhiên dùng tương ứng với mảng 2
- Kiểu Số Tập số nguyên Z = {…, -2,-1,0,1,2,…} Tập số tự nhiên N = {n:Z|n0} = {0,1,2,…} Các phép toán trên số 3
- Kiểu Số Các phép toán trên số 4
- Kiểu Số Các phép toán trên số 5
- Kiểu Số Ví dụ về hàm trả lại giá trị tuyệt đối của một số nguyên sử dụng sự miêu tả rỏ ràng như sau: abs Z Z n:Z n 0 abs n = -n n 0 abs n = n Hàm successor (succ) trả lại giá trị của số tiếp theo của số tự nhiên Succ = { 0 ↦ 1, 1 ↦ 2, 2 ↦ 3,…} Hàm predecessor (pred) trả lại giá trị của số phía trước pred == succ∼ 6
- Kiểu Số Miền xác định của số Miền xác định giữa 2 số a, b: Z được xác định như sau: a..b = {a, a+1, a+2,…, b-2, b-1, b} Hoặc a..b = {n:Z| a n b} Nếu a > b khi đó a..b = ∅ và a..a = {a} 7
- Kiểu Số Cardinality Số phần tử của tập (số nguyên) Xác định là card hay # (ngôn ngữ z) Ví dụ: #∅ = 0, #{a} = 1 Đối với miền xác định a..b #a..b = 1+b-a nếu a b = 0 nếu a > b #a..b = max {0, 1+b-a} Vậy nó tương ứng là 1 2 3 … b-a 1+b-a ↧ ↧ ↧ … ↧ ↧ a a+1 a+2 … b-1 b 8
- Kiểu mảng Mảng (sequence): Gồm hữu hạn phần tử (0 hay nhiều phần tử) Có thứ tự Một phần tử có thể xuất hiện nhiều lần trong mảng Có cùng kiểu dữ liệu 9
- Kiểu mảng Mảng: Mảng chỉ chứa một phần tử s = {1 ↦ x} có #s=1 và được viết là [x] còn gọi là mảng đơn Tổng quát một mảng {1 ↦ x1, 2 ↦ x2, …,n ↦ xn} được viết ngắn gọn [x1, x2,…,xn] Ví dụ: [4, 2, 7, 1, 5, 6, 3] [7, 2, 1, 4, 3, 6, 5] [‘C’, ‘O’, ‘N’] [42.0, 343.0, 42.0] [] (không giống tập mảng rổng xác định một kiểu dữ liệu) 10
- Mảng Cho trước kiểu T Định nghĩa kiểu mảng mà mỗi phần tử thuộc kiểu T T* Ví dụ: Word = Char* Smallstring = {‘a’, ‘b’, ‘c’}* Smallstring = { [], [‘a’], [‘b’], [‘c’], [‘a’, ‘a’], [‘a’, ‘b’], …, [‘a’,’a’, ‘c’], … } Paragraph = Word* Chapter = Paragraph* 11
- Chuỗi Chuỗi có thể xem là 1 mảng các ký tự Ví dụ: [‘D’, ‘i’, ‘s’, ‘k’, ‘ ‘, ‘f’, ‘u’, ‘l’, ‘l’] “Disk full” Lưu ý: ‘a’ Char “hello” Char* “a” Char* 12
- Các hàm và thao tác trên mảng/chuỗi Hàm len len [] = 0 len [1, 2, 3, 4, 1] = 5 Tổng quan len s = card dom s Một số ví dụ về mảng [a,b] [b,a] [a,b] [a,b,b] Giả sử s1= [b,b,c] s2= [a] Khi đó len s1= 3, len s2= 1 13
- Các hàm và thao tác trên mảng/chuỗi Truy xuất phần tử trong mảng theo chỉ số (tính từ 1) sq = [2, 19, 13, 5, 17] sq(1) = 2 sq(4) = 5 Tổng quát s X* 1 i len s s(i) X s1(1) = s1(2) = b 14
- Các hàm và thao tác trên mảng/chuỗi Mảng/chuỗi con [‘a’, ‘a’, ‘d’, ‘c’, ‘a’, ‘b’] (2, …, 4) = [‘a’, ‘d’, ‘c’] “Hello” (2, …, 2) = “e” s(1,…, len s) = s 15
- Các hàm và thao tác trên mảng/chuỗi Phép nối ⃕ s ⃕ t Ví dụ: “Hello” ⃕ “ ” ⃕ “World” = “Hello World” Cập nhật phần tử trong mảng † Ví dụ: [1, 2, 3, 4] (3) †11 = [1, 2, 11, 4] Một số quy tắc []⃕s=s⃕[]=s r⃕(s⃕t) = (r⃕s)⃕t (r⃕s = r⃕t) s = t Lưu ý * * Nếu s,tT , st r:T s⃕r = t 16
- Các hàm và thao tác trên mảng/chuỗi Lưu ý (ứng dụng cho tiếp đầu ngữ (prefix) của mảng): (st ts) s = t (rs st) rt (rt st) (rs sr) 17
- Các hàm và thao tác trên mảng/chuỗi Phép toán phân bố (ngôn ngữ Z) ⃕/[] = [] ⃕/[a,b,…,n] = a⃕b⃕ … ⃕n ⃕/([a]⃕s) = [a]⃕(⃕/s) ⃕/(s⃕[a]) = (⃕/s)⃕[a] 18
- Các hàm và thao tác trên mảng/chuỗi Hàm Head (hd) và Tail (tl) Ví dụ: hd [‘p’, ‘q’, ‘r’] = ‘p’ Hàm head của một mảng không rổng có thể định nghĩa như sau: hd (s: X*) r:X pre s[] post r = s(1) 19
- Các hàm và thao tác trên mảng/chuỗi Hàm tail của một mảng không rổng có thể định nghĩa như sau: tl (s: X*) rs:X pre s[] post s = [hd s]⃕rs Ví dụ tl [‘p’, ‘q’, ‘r’] = [‘q’, ‘r’] tl [42] = [] Ví dụ: hd s1 = b hd s2 = a tl s1 = [b,c] tl s2 = [] 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Đặc tả hình thức: Chương 2 - Nguyễn Thị Minh Tuyền
43 p | 66 | 9
-
Bài giảng Đặc tả hình thức: Chương 3 - Nguyễn Thị Minh Tuyền
69 p | 80 | 7
-
Bài giảng Đặc tả hình thức: Chương 4 - Nguyễn Thị Minh Tuyền
24 p | 80 | 7
-
Bài giảng Đặc tả hình thức: Chương 8 - Nguyễn Thị Minh Tuyền
33 p | 67 | 5
-
Bài giảng Đặc tả hình thức: Chương 1 - Nguyễn Thị Minh Tuyền
40 p | 54 | 5
-
Bài giảng Đặc tả hình thức: Chương 3 - PGS.TS. Vũ Thanh Nguyên
18 p | 5 | 3
-
Bài giảng Đặc tả hình thức: Chương 5 - PGS.TS. Vũ Thanh Nguyên
46 p | 4 | 3
-
Bài giảng Đặc tả hình thức: Chương 6 - PGS.TS. Vũ Thanh Nguyên
21 p | 4 | 3
-
Bài giảng Đặc tả hình thức: Chương 7 - PGS.TS. Vũ Thanh Nguyên
22 p | 11 | 3
-
Bài giảng Đặc tả hình thức: Chương 0 - Nguyễn Thị Minh Tuyền
12 p | 67 | 3
-
Bài giảng Đặc tả hình thức: Chương 2 - PGS.TS. Vũ Thanh Nguyên
75 p | 8 | 3
-
Bài giảng Đặc tả hình thức: Chương 1 - PGS.TS. Vũ Thanh Nguyên
21 p | 8 | 3
-
Bài giảng Đặc tả hình thức: Chương 0 - PGS.TS. Vũ Thanh Nguyên
6 p | 10 | 3
-
Bài giảng Đặc tả hình thức: Chương 15 - Nguyễn Thị Minh Tuyền
25 p | 80 | 3
-
Bài giảng Đặc tả hình thức: Chương 11 - Nguyễn Thị Minh Tuyền
20 p | 75 | 3
-
Bài giảng Đặc tả hình thức: Chương 10 - Nguyễn Thị Minh Tuyền
28 p | 88 | 3
-
Bài giảng Đặc tả hình thức: Chương 9 - Nguyễn Thị Minh Tuyền
22 p | 68 | 3
-
Bài giảng Đặc tả hình thức: Chương 8 - PGS.TS. Vũ Thanh Nguyên
47 p | 7 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn