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 |
Chia sẻ: phuongt97 | Lượt xem: 366 | 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