Nội dung chương 2
1. Các kiểu số
• Số nguyên, thực, phức, 
2. Names
• Assignment, unassignment, evaluation, full evaluation,
3. Các kiểu dữ liệu
• Dãy, tập hợp, danh sách, mảng, 
              
                                            
                                
            
 
            
                 67 trang
67 trang | 
Chia sẻ: phuongt97 | Lượt xem: 597 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Tin học tính toán - Chương 2: Các kiểu dữ liệu của Maple - Huỳnh Văn Kha, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 Chương 2:
CÁC KIỂU DỮ LIỆU CỦA 
 MAPLE
 Giới thiệu một số kiểu dữ liệu cơ bản của Maple
 Nội dung chương 2
1. Các kiểu số
 • Số nguyên, thực, phức, 
2. Names
 • Assignment, unassignment, evaluation, full evaluation, 
3. Các kiểu dữ liệu
 • Dãy, tập hợp, danh sách, mảng, 
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 2
1/1/2013
 1a. Số nguyên
• Maple cho phép sử dụng các toán tử số học thông 
 dụng: cộng (+), trừ (-), nhân (*), chia (/), lũy thừa (^ 
 hoặc **) và giai thừa (!).
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 3
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 4
1/1/2013
 1a. Số nguyên – lưu trữ
• Con số lớn nhất trong Maple có 4[(2^17-1)-1]-1 = 
 2^19 – 9 = 524279 chữ số.
• Maple lưu trữ số nguyên theo cách:
 intpos i_0 i_1  i_n
 =+ +2 + + n
 i i0 i 1 B i 2 B⋯ in B
B được chọn là lũy thừa nguyên lớn nhất của 10 
sao cho B^2 vẫn còn biểu diễn được bằng một số
nguyên single-precision (B = 10^4 trong các hệ
thống 32 bit).
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 5
1/1/2013
 1a. Số nguyên – các hàm
• Maple cung cấp 1 số hàm trên số nguyên
 • isprime(n): kiểm tra n có là nguyên tố không
 • nextprime(n): số nguyên tố kế tiếp
 • ithprime(n): số nguyên tố thứ n
 • ifactor(n): phân tích thành SNT
 • iquo(a,b): thương của phép chia a/b
 • irem(a,b): dư của phép chia a/b
 • igcd(a,b): ƯCLN của a và b
 • isqrt(n): xấp xỉ nguyên cho sqrt(n)
 • 
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 6
1/1/2013
 1a. Số nguyên – ví dụ
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 7
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 8
1/1/2013
 1b. Số thực – lưu trữ
• Maple lưu trữ số Float thành 2 phần: mantissa và 
 exponent . Giá trị của số thực là: mantissa x 
 10 exponent .
• Mantissa là một số nguyên kiểu Maple. Còn 
 exponent là số nguyên single-precision (giống của 
 C).
• Độ chính xác của số thực trong Maple chính là số ký 
 tự tối đa của kiểu số nguyên trong Maple.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 9
1/1/2013
 1b. Số thực – độ chính xác
• Chỉnh sửa độ chính xác mặc định qua biến Digits
 (mặc định Digits = 10)
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 10
1/1/2013
 1b. Số thực - evalf
• Hoặc xác định độ chính xác trực tiếp thông qua 
 tham số thứ 2 của hàm evalf (evaluate using 
 floating-point arithmetic)
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 11
1/1/2013
 1b. Số thực – hằng
• Maple biết một số hằng toán học
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 12
1/1/2013
 1b. Số thực - hàm
• Maple biết một số hàm
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 13
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 14
1/1/2013
 1b. Số thực - evalhf
• Để tăng tốc độ tính số, dùng hàm evalhf
 (evaluate using hardware floating-point 
 arithmetic)
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 15
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 16
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 17
1/1/2013
 1b. Số thực – evalhf (tt)
• Hàm evalhf được dùng trong vẽ đồ thị
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 18
1/1/2013
 1c. Số đại số - RootOf
• Số đại số là nghiệm của đa thức với hệ số hữu tỷ.
• Được định nghĩa qua thủ tục RootOf.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 19
1/1/2013
 1c. Số đại số - alias
• Để tính toán dễ nhìn ta dùng alias.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 20
1/1/2013
 1c. Số đại số - convert
• Để xác định giá trị dùng allvalues.
• Có thể chuyển một số radical sang dạng RootOf bằng 
 convert và ngược lại.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 21
1/1/2013
 1c. Số đại số - ví dụ
• Ví dụ sau đây kiểm tra rằng zeta = sqrt(2) + sqrt(3) + 
 sqrt(5) là nghiệm của một đa thức hữu tỷ; rồi sau 
 đó phân tích sqrt(2) thành đa thức hữu tỷ theo zeta
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 22
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 23
1/1/2013
 1d. Số phức
• Đơn vị ảo được biểu diễn bằng I.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 24
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 25
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 26
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 27
1/1/2013
 1d. Số phức - evalc
• Với hàm phức đa trị, Maple sẽ chỉ lấy giá trị chính.
• Hàm evalc (evaluate using complex number 
 arithmetic) xem các biến là các đại lượng thực và 
 đưa số phức về dạng a+bI, với a, b là số thực.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 28
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 29
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 30
1/1/2013
 2. Names – đặt tên
• Tên biến là một chuỗi các: chữ cái, chữ số và dấu 
 gạch dưới. Chiều dài tối đa 499 ký tự.
• Maple phân biệt chữ hoa và chữ thường.
• Ví dụ: x, a, mot_bien_co_ten_rat_dai, 
 t2m, Bien, bien, BIEN, biEN, 
• Chú ý: ở chế độ Math (2D input) dấu gạch dưới sẽ 
 được hiểu là bắt đầu chỉ số.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 31
1/1/2013
 2. Names – giá trị
V Các biến a, b, c là tham số, biến x là ẩn. 
Các biến này được Maple hiểu là các ký tự.
V Chúng không không nhất thiết có giá trị 
cụ thể nào. 
V Đây chính là đặc trưng của hệ đại số máy 
tính.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 32
1/1/2013
 2. Names – Evaluation
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 33
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 34
1/1/2013
 2. Names – Unassignment
• Dùng dấu ‘ ’ để trả giá trị 1 biến về chính nó (như 
 ví dụ trên).
• Cũng có thể dùng hàm evaln (evaluate to a 
 name).
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 35
1/1/2013
 2. Names – Full Evaluation
 name a
 name b
 name c
 intpos 5
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 36
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 37
1/1/2013
V Các tham số chứa biến thì đặt trong ‘ ’ .
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 38
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 39
1/1/2013
 3. Các kiểu dữ liệu
• Các kiểu dữ liệu cơ bản gồm: số nguyên, số thực, 
 chuỗi,  Ngoài ra còn nhiều kiểu dữ liệu khác: dãy, 
 tập hợp, danh sách, mảng, 
• Dùng whattype để hiển thị các kiểu dữ của một 
 đối tượng.
• Dùng type và hastype để kiểm tra kiểu dữ liệu 
 của đối tượng.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 40
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 41
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 42
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 43
1/1/2013
 3. KDL - confrac
• Phân số ¾ có thể biểu diễn thành dạng con tinued 
 frac tion như sau:
 1
 0 +
 1
 1+
 3
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 44
1/1/2013
 3. KDL - sequence
• Là một dãy các đối tượng cách nhau bởi dấu phẩy.
• Tên trong Maple: exprseq (expr ession seq uence).
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 45
1/1/2013
 3. KDL – sequence - seq
• Dãy có thể tạo thành từ seq(f(i), i=n..m).
• Hoặc sử dụng $.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 46
1/1/2013
 V Dãy không có phần tử nào là NULL
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 47
1/1/2013
 3. KDL – sequence – [ ]
• Truy xuất phần tử dùng [].
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 48
1/1/2013
 3. KDL – set
• Là một dãy các đối tượng đặt trong {}.
• Maple tự động sắp xếp, loại bỏ pt trùng.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 49
1/1/2013
 3. KDL – set - operator
• Các toán tử trên tập hợp: union, minus, 
 intersect.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 50
1/1/2013
 3. KDL – set – member, [ ]
• Dùng member để kiểm tra phần tử thuộc tập hợp 
 hay không.
• Chọn phần tử từ tập hợp bằng [], hoặc op (extract 
 operands).
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 51
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 52
1/1/2013
 3. KDL – set - select
• select(criterion, set, extra arguments)
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 53
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 54
1/1/2013
 3. KDL - list
• Là danh sách các phần tử được đặt trong dấu 
 ngoặc vuông.
• Giống với set, chỉ khác là các phần tử trong list có 
 thể trùng nhau và thứ tự phần tử được giữ nguyên.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 55
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 56
1/1/2013
 3. KDL – list (tt)
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 57
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 58
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 59
1/1/2013
 3. KDL - array
• Maple cho phép sử dụng mảng một, hai hoặc nhiều 
 chiều.
• Kiểu array được xây dựng từ list.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 60
1/1/2013
• Tuy nhiên array không phải là một list. 
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 61
1/1/2013
• Xây dựng mảng nhiều chiều bằng cách đưa ra list 
 các list.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 62
1/1/2013
• Dùng lệnh matrix trong gói linalg. 
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 63
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 64
1/1/2013
• Maple không áp dụng full evaluation trên kiểu 
 array.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 65
1/1/2013
 3. KDL – map
• Để tác động một hàm vào các thành phần của một 
 đối tượng, dùng map.
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 66
1/1/2013
Huỳnh Văn Kha -
 C01029 – THTT - Ch ươ ng 2 67
1/1/2013
            Các file đính kèm theo tài liệu này:
 bai_giang_tin_hoc_tinh_toan_chuong_2_cac_kieu_du_lieu_cua_ma.pdf bai_giang_tin_hoc_tinh_toan_chuong_2_cac_kieu_du_lieu_cua_ma.pdf