Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
1,58 MB
Nội dung
Cấu trúc dữ liệu I. Dãy biểu thức ( Expression Sequence) - Dãy là một cấu trúc dữ liệu gồm: - Các phần tử ngăn cách nhau bởi dấu , - Các phần tử của dãy có thể là bất cứ gì. - Maple áp dụng sự định giá đầy đủ khi định giá một dãy. Ví dụ 1 > > - Xem kiểu của stuff bằng whattype(stuff) > - Tìm số phần tử của stuff bằng hàm nops( .) > - Truy cập một hay dãy phần tử của stuff > > > > - Chấp nhận chỉ số âm > > - NULL là dãy rỗng Ví dụ 2 > - Tạo ra một dãy chứa các số nguyên tố từ thứ 10 đến thứ 19 > - So sánh hai dãy dùng > evalb(day1 = day2); Ví dụ 3 > > - Ghép nối hai dãy Ví dụ 4 > - Sự trả về của hàm solve Ví dụ 5 > > - Khi trả về một danh sách rỗng Maple dường như không động tĩnh gì Ví dụ 6 > - Dùng lệnh seq để tạo ra dãy - Cú pháp : > seq(f(i), i=m n); > seq(f(i), i = x); > seq(f(i), i in x); Ví dụ 7 > > Danh sách (List) - Danh sách là dãy được bao trong cặp dấu ngoặc vuông. - Các phần tử của danh sách co thể là bất cứ gì. Ví dụ 1 > > - Tìm số phần tử của list bằng nops(L); > - Truy cập các phần tử của list > > > - Thay đổi các phần tử của list > > - Hàm op(L) trả về dãy tương ứng với danh sách => dùng để nối hai danh sách Ví dụ 2 > > - Đảo ngược các phần tử của danh sách Ví dụ 3 > > Tập hợp (Set) - Tập hợp là dãy được bao trong cặp dấu ngoặc nhọn. - Trong tập hợp thứ tự các phần tử không quan trọng. - Cac phép tóan trên tập hợp như union(hợp),intersect(giao),minus(trừ). Ví dụ 1 > > > > > > Error, invalid left hand side in assignment > Error, invalid quotes and 2 additional errors. - Các phép tóan trên tập hợp Ví dụ 2 > Mảng (Array) - Mảng là cấu trúc dữ liệu bao gồm. - Một hay nhiều chiều. - Miền chỉ mục của các chiều phải là khỏang số nguyên. - Các phần tử của mảng có thể là mọi thứ. - Cú pháp : > array(indexfcn , bounds ,list); - indexfcn (tùy chọn) : hàm chỉ số. [...]... x^7+8*x^6+x^2-9; > op(2,p); > subsop( 2=y, p ); > subsop( 2=-op(2,p), p ); > subsop( 1=0, p ); > subsop( 1=1, x*y*z ); > subsop( 1=NULL, 2=z, 3= y, [x,y,z] ); > subsop( 0=g, f[a,b,c] ); > p := f(x,g(x,y,z),x); > subsop( [2 ,3] =w, p ); > subsop( [2,0]=h, [2 ,3] =w, 3= a, p ); > subsop( p ); ... đầu Ví dụ > v := array(1 4): for i to 3 do v[i] := i^2 end do: print(v); > > v[2]; Trying to refer to something out of bounds returns an error: > v[0]; Error, 1st index, 0, smaller than lower array bound 1 > A := array(1 2,1 2): A[1,2] := x: A[1,1]; > A[1,2]; > print(A); > A := array( symmetric, 1 2,1 2, [ [1,x], [x,x^2] ] ): op(1,eval(A)); > op(2,eval(A)); > op (3, eval(A)); > map(diff,A,x); Ví dụ :... tìm max,min một dãy - Cú pháp: > max( day ); > min( day ); Ví dụ > > Hàm map Ví dụ > > > > > > > map(f, x + y*z); map(f, y*z); map(f, {a,b,c}); map(x -> x^2, x + y); map(proc(x,y) x^2+y end proc, [1,2 ,3, 4], 2); map2(f, g, {a,b,c}); map2(op, 1, [a+b,c+d,e+f]) Hàm add,mul - add dùng để cộng dãy các giá trị - mul dùng để nhân dãy các giá trị - Cú pháp: add(f, i = m n) mul(f, i = m n) mul(f, i = x) Ví dụ... tử của bảng - Nếu L có dạng danh sách hay tập hợp các đẳng thức thì các vế trái sẽ là các chỉ số của mảng ; các phần tử vế phải sẽ là các phần tử của bảng - Trái lại, các chỉ số là các số nguyên 1,2 ,3 - indices(bang) : trả về dãy chỉ số - entries(bang) : tra về dãy các phần tử của bảng Các ví dụ > table(); > T:=table([22,42]); T[2]; > S := table([(2)=45,(4)=61]); > S[1], S[2]; > T := table(symmetric,[(c,b)=x]); . 1=NULL, 2=z, 3= y, [x,y,z] ); > subsop( 0=g, f[a,b,c] ); > p := f(x,g(x,y,z),x); > subsop( [2 ,3] =w, p ); > subsop( [2,0]=h, [2 ,3] =w, 3= a, p );. hai danh sách Ví dụ 2 > > - Đảo ngược các phần tử của danh sách Ví dụ 3 > > Tập hợp (Set) - Tập hợp là dãy được bao trong cặp dấu ngoặc nhọn.