1. Trang chủ
  2. » Tất cả

04.MangVaChuoi Dac Ta Hinh Thuc

28 0 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 28
Dung lượng 297 KB

Nội dung

Slide 1 * Chương 4 Số và Kiểu mảng Giảng viên 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 * * Nội Dung Số và mảng là khái niệm quan trọng của Đặc tả hìn[.]

Trường Đại học Công Nghệ Thông Tin, ĐHQG-HCM Khoa Công Nghệ Phần Mềm Chương Số Kiểu mảng Giảng viên: PGS TS Vũ Thanh Nguyên Nội Dung  Số mảng khái niệm quan trọng Đặc tả hình thức  Ngơn ngữ Z mơ tả dạng số - đặc biệt số tự nhiên dùng tương ứng với mảng Kiểu Số  Tập số nguyên Z = {…, -2,-1,0,1,2,…} Tập số tự nhiên N = {n:Z|n0} = {0,1,2,…}  Các phép toán số Kiểu Số  Các phép toán số Kiểu Số  Các phép toán số Kiểu Số  Ví dụ hàm trả lại giá trị tuyệt đối số nguyên sử dụng miêu tả rỏ ràng sau:  abs Z Z n:Z  n   abs n = -n  n   abs n = n     Hàm successor (succ) trả lại giá trị số số tự nhiên Succ = { ↦ 1, ↦ 2, ↦ 3,…} Hàm predecessor (pred) trả lại giá trị số phía trước pred == succ∼ Kiểu Số  Miền xác định số Miền xác định số a, b: Z xác đị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 a b = ∅ a a = {a}  Kiểu Số  Cardinality  Số phần tử tập (số nguyên)  Xác định card hay # (ngôn ngữ z)  Ví dụ: #∅ = 0, #{a} =  Đối với miền xác định a b #a b = 1+b-a a  b = a > b #a b = max {0, 1+b-a} Vậy tương ứng … b-a 1+b-a ↧ ↧ ↧ … ↧ a a+1 a+2 … b-1 b ↧ 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ử xuất nhiều lần mảng Có kiểu liệu Kiểu mảng  Mảng:  Mảng chứa phần tử s = {1 ↦ x} có #s=1 viết [x] gọi mảng đơn  Tổng quát mảng {1 ↦ x1, ↦ x2, …,n ↦ xn} 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 kiểu liệu) 10 Mảng  Cho trước kiểu T  Định nghĩa kiểu mảng mà phần tử thuộc kiểu T  Ví dụ: T* 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 xem mảng ký tự  Ví dụ:  Lưu ý: [‘D’, ‘i’, ‘s’, ‘k’, ‘ ‘, ‘f’, ‘u’, ‘l’, ‘l’] “Disk full” ‘a’  Char “hello”  Char* “a”  Char* 12 Các hàm thao tác mảng/chuỗi  Hàm len len [] = len [1, 2, 3, 4, 1] = Tổng quan len s = card dom s  Một số ví dụ 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= 13 Các hàm thao tác mảng/chuỗi  Truy xuất phần tử mảng theo số (tính từ 1) sq = [2, 19, 13, 5, 17] sq(1) = sq(4) = Tổng quát s  X*   i  len s  s(i)  X  s1(1) = s1(2) = b 14 Các hàm thao tác mảng/chuỗi  Mảng/chuỗi [‘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 thao tác mảng/chuỗi  Phép nối ⃕  s⃕t  Ví dụ: “Hello” ⃕ “ ” ⃕ “World” = “Hello World”  Cập nhật phần tử 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,tT*, st  r:T*  s⃕r = t  16 Các hàm thao tác mảng/chuỗi  Lưu ý (ứng dụng cho tiếp đầu ngữ (prefix) mảng):  (st  ts)  s = t  (rs  st)  rt  (rt  st)  (rs  sr) 17 Các hàm thao tác mảng/chuỗi  Phép tố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 thao tác mảng/chuỗi  Hàm Head (hd) Tail (tl)  Ví dụ: hd [‘p’, ‘q’, ‘r’] = ‘p’  Hàm head mảng khơng rổng định nghĩa sau: hd (s: X*) r:X pre s[] post r = s(1) 19 Các hàm thao tác mảng/chuỗi  Hàm tail mảng không rổng định nghĩa 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 ... Hàm Head (hd) Tail (tl)  Ví dụ: hd [‘p’, ‘q’, ‘r’] = ‘p’  Hàm head mảng khơng rổng định nghĩa sau: hd (s: X*) r:X pre s[] post r = s(1) 19 Các hàm thao tác mảng/chuỗi  Hàm tail mảng khơng

Ngày đăng: 20/11/2022, 15:41

w