Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
205 KB
Nội dung
Các loại biến & Việc lượng giá biểu thức Các loại biến & Việc lượng giá biểu thức Maple Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Nội dung Các loại biến 1.1 Các khái niệm 1.2 Phân loại biến Việc lượng giá biểu thức 2.1 Giới thiệu chung .5 2.2 Luật Lượng giá đầy đủ 2.3 Cấp bậc việc lượng giá 10 2.4 Sự trì hỗn việc lượng giá 13 Phụ lục 17 3.1 Giới thiệu thành viên nhóm biên soạn 17 3.2 Tài liệu tham khảo 17 3.3 Danh sách tập tin đính kèm 17 Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Các loại biến 1.1 Các khái niệm: Tên biến: xâu ký tự, gồm chữ cái, chữ số, ký tự gạch _ o Độ dài tên phụ thuộc vào hệ điều hành, hệ điều hành 32-bit 524,271 ký tự, 64-bit 34,359,738,335 ký tự o Tên biến bắt đầu chữ ký tự _ (Lưu ý: biến có tên bắt đầu ký tự _ Maple xem biến tồn cục) o Có loại tên biến ký hiệu (x, y, x_y_z, hello_there…), tên theo số (x[1], x[2], x[3]…) o Maple phân biệt chữ hoa chữ thường nên Hello khác hello o Khơng đặt tên trùng với 47 từ khóa sau đây: and description end for in module options return to while assuming error from intersect next or break done export global local not proc by elif fi if minus od quit catch else finally implies mod option read save stop subset then try xor union use uses Trạng thái biến: biến Maple có hai trạng thái: o Đã gán (assigned variables): biến tên đại diện cho giá trị Một biến gán đại diện cho gần thứ gì: số cụ thể, biểu thức, hàm, phương trình, đồ thị, lời giải, biến khác v.v…Một biến gán gọi biến lập trình cách chúng thể nhiều giống với biến lập trình truyền thống ngơn ngữ lập trình Biến gán gọi "nhãn kết quả" hay đơn giản "nhãn" o Chưa gán (unassigned variables): biến tên chưa đại diện cho giá trị đặc biệt Biến chưa gán gọi "biến tự do" (free variables) chúng tự làm đại diện cho giá trị Hay chúng gọi "ẩn" (unknowns) chúng chưa có giá trị cụ thể Những cách gọi khác xem biến chưa gán biến toán học, ký hiệu toán học, ẩn toán học, ẩn đại số, biến vô định o Phép gán: thực toán tử gán := 1.2 Phân loại biến: Biến Maple chia làm hai loại: biến tốn học biến lập trình Biến tốn học: đại diện cho ẩn số toán học Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Biến lập trình: biến gán giá trị giá trị lưu trữ cho tận đến lúc bị thay đổi Cách đơn giản nhất: o Biến lập trình: biến gán o Biến tốn học: biến có giá trị tên biến Sự định giá: o Một tên gán giá trị khác tên trở thành biến lập trình cịn chưa gán giá trị nhận tên làm giá trị xem kí hiệu biểu thị ẩn số toán học o Việc phân biệt biến biến toán học (ẩn số) hay biến lập trình quan trọng Maple Ví dụ: [> restart; [> z := y; y := t; t := x^2 + 5*x - 12; z := y y := t t := x + x − 12 [z, y, t biến lập trình, x biến toán học [> z; x2 + x − 12 [> y; [> t; [> x; x2 + x − 12 x2 + x − 12 x [thay x = 10, tính lại giá trị t [> x := 10; # x trở thành biến lập trình x := 10 [> t; [> z; [> y; Bài sọan Maple 138 138 138 Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Việc lượng giá biểu thức 2.1 Giới thiệu chung Trong phần ta tìm hiểu số chi tiết trình xử lý bên Maple Chúng ta xem xét quy luật lượng giá biến, biểu thức hàm 2.2 Luật Lượng giá đầy đủ Định nghĩa: Luật lượng giá cách thức mà Maple định “điều trả về" ("điều trả về" giá trị cụ thể biến toán học) Ví dụ, p đại diện cho biểu thức x^2+2*x+1 x đại diện cho số Maple lượng giá p Nếu ta hỏi ý nghĩa p Maple trả biểu thức x^2+2*x+1 hay 3^2+2*3+1 hay 16? Thông thường hầu hết trường hợp, Maple sử dụng luật lượng giá gọi Luật lượng giá đầy đủ (full evaluation) Điều có nghĩa Maple gặp tên biến, truy giá trị biến (nếu có) Nếu giá trị biến chứa biến khác giá trị biến khác truy Maple tiếp tục trình lượng tìm đến giá trị số cụ thể biến toán học gán trở lại cho biến tương ứng Ví dụ 1: [Trong ví dụ này, x biến toán học [> x := 'x'; [Lập biểu thức y chứa biến x [> y := 1+x; [Gán x giá trị số cụ thể [> x := 5; [Ta xem xét trình Maple lượng giá biểu thức [> 1+x^2+y; [1+x^2+y 32 [Đầu tiên x biểu thức mang giá trị biểu [thức 1+x^2+y thành 1+5^2+y y mang giá trị 1+x, [1+5^2+y thành 1+5^2+1+x, x có giá trị nên kết [quả cuối 1+5^2+1+5=32 kết biểu thức [1+x^2+y Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Ví dụ 2: [> x [Lần [> x y z := 'x': y := 'y': z := 'z': lượt thực phép gán cụm xử lý (*) sau: := y; := z; := 3; x := y := z := [> x; [> z := 5; z := [> x; [Trong ví dụ này, x trỏ đến y, y trỏ đến z, lúc đầu z [trỏ đến 3, x (và y) mang giá trị Do lúc [sau z trỏ tới nên x (và y) lượng giá (đây [là Luật lượng giá đầy đủ) Maple truy theo hướng cho [tới gặp “điểm kết thúc” nghĩa đến [trong hai trường hợp số cụ thể biến chưa [được khởi trị Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Ví dụ 3: [Ta xét ví dụ với dịng lệnh tương tự ví dụ [kết khác biệt [> x:='x'; y:='y'; z:='z'; x := x y := z := [Ta thay đổi trật tự dịng lệnh ví dụ ta [được dòng lệnh (**): [> z := 3; y := z; x := y; z := y := x := [> x; [> z := 5; z := [> x; [Trong ví dụ này, z gán giá trị Sau đó, y [được gán z, ban đầu z gán giá trị [Chính thế, y gán giá trị 3, z (đây [là Luật lượng giá đầy đủ) Tương tự, x gán 3, [khơng phải y Và ví dụ này, giá trị z bị [thay đổi, giá trị x y không bị thay đổi Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Giải thích: Một lý giải đơn giản cho khác biệt kết ví dụ ví dụ đầu trình lượng giá Maple kết thúc ví dụ sau q trình lượng giá Maple chưa kết thúc Ta xét ví dụ trình lượng giá kết thúc nghĩa cụm xử lý (*) thi hành z, y, x gián giá trị (gặp “điểm kết thúc”), thay đổi giá trị z đơn giản giá trị z bị thay đổi Trong ví dụ 2, cụm xử lý thi hành thứ tự dòng lệnh x:=y, y:=z, z:=3 nên thực dòng lệnh Maple lượng x giá đến biến chưa gán giá trị y, tương tự y lượng giá tới z, z lượng giá tới 3; tiếp tục xét, thực lệnh x; x, y, z trở thành biến lập trình nên x lượng giá y, y lượng giá z, z lượng giá giá trị 5, nên x = y = z = Ghi chú: Từ ví dụ ta thấy, trật tự dòng lệnh ảnh hưởng đến việc chúng thi hành Hay nói cách khác phương thức mà Maple thi hành dịng lệnh thường khơng giống cách bạn nhìn chúng độc lập Chúng ta cần xem xét qua tất dòng lệnh thi hành trước để định ý nghĩa dịng lệnh Ví dụ 4: [Và lượng giá đầy đủ, ta xét hàm f [> f := x -> x^2-1; [Gán giá trị cho z [> z := 3; [Khi ta nhập dòng lệnh f(z); Maple cần lượng giá f z [Đầu tiên Maple lượng giá f hàm, sau giá trị z [là 3, sau giá trị z vào hàm, tính giá trị [của hàm 3, cho kết [> f(z); Ghi chú: Thông thường (không phải luôn), Maple dùng Luật lượng giá đầy đủ cho tất đầu vào kể hàm lệnh Maple Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức Ví dụ 5: [Một số thông báo lỗi thường gặp: [> solve(x^2 = 4, x); Warning, solving for expressions other than names or functions is not recommended Error, (in solve) a constant is invalid as a variable, [Maple trước tiên lượng giá giá trị đưa vào câu lệnh [solve x^2=4 lượng giá thành 9=4 (đây không [phải lỗi sai mà phương trình khơng có nghiệm) [và x cuối lượng giá Đây điều mà Maple [báo lỗi (lệnh solve giải phương trình tìm biến [chứ khơng tìm số) [> plot(x^2, x = 4); Error, (in plot) invalid arguments [Maple lượng giá giá trị đưa vào câu lệnh plot cho [nên x^2 lượng giá (đây lỗi sai) [và x=0 lượng giá thành 3=0 Đây điểm vô lý [dẫn đến thông báo lỗi [Maple lúc dùng quy luật lượng giá đầy [đủ Câu lệnh sau không khác so với câu lệnh trước [nhưng câu lệnh không dẫn tới thông báo lỗi dù x [mang giá trị [> seq(x^2, x = 4); 0, 1, 4, 9, 16 [Cần lưu ý x mang giá trị cụ thể [> x; [Vì Maple không dùng quy luật lượng giá đầy đủ [giá trị đưa vào lệnh seq Bạn dựa vào ví dụ nêu rút kinh nghiệm cho Nếu bạn gặp thông báo lỗi lạ, trước tiên kiểm tra tên biến bạn dùng có thật chưa sử dụng không mang giá trị hay không Ngồi ra, Maple cịn có vài quy luật lượng giá khác tất nhiên có số ngoại lệ Trong phần lại, xem xét quy luật ngoại lệ quan trọng Bài sọan Maple Trang 08/26/13 Các loại biến & Việc lượng giá biểu thức 2.3 Cấp bậc việc lượng giá Để tìm kết cuối Maple phải tìm thơng qua nhiều giá trị trung gian Chúng ta kiểm sốt q trình lượng giá dạng đặc biệt hàm eval eval(tên biến biểu thức, bậc lượng giá); Xét ví dụ 1: [> [> [> [> x x y z := := := := 'x': y := 'y': z := 'z': y; z; 3; [Nếu lượng giá x, Maple dùng lượng giá đầy đủ [và trả giá trị [> x; [Nhưng để Maple từ x đến phải trải qua giá trị [trung gian y z Ở xem xét giá trị [trung giá trị trung gian cách thức để đến chúng [Tên giá trị trung gian Bậc [lượng giá (levels of evaluation) quan [sát cụ thể bậc lượng giá thông qua lệnh eval [nêu [> eval( x, ); [> eval( x, ); [> eval( x, ); [> eval( x, ); [Trong ví dụ ta cần quan tâm ta gọi hàm eval trả [về bậc lượng giá, bậc cao bậc nên [giá trị trả Bài sọan Maple Trang 10 08/26/13 Các loại biến & Việc lượng giá biểu thức Ví dụ 2: [> unassign('x','y','z'); # lúc x,y,z biến toán học [Ta thực khối lệnh (*) sau: [> f := a*x+b*y; [> x := y; [> y := z; [> z := 2; [> b := c; [> c := a; [> a := d; f := d x C d x := y := z := b := c := a := [Điều đáng quan tâm thực cụm xử lý [thì f := d x C d , cụm xử lý có d biến [tốn học, trước thực dòng lệnh gán x := y, y := z, [z := 2; x, y, z biến tốn học sau biến lập [trình (điều giải thích thực lại khối [lệnh (*) mà khơng thực lại unassign('x','y','z') [ f := ),các biến lại biến lập trình Nên Maple [lượng giá đầy đủ f kết thấy Như vậy, [phép lấy bậc lượng giá cho kết quả: [> eval( f, ); dxC d [> eval( f, ); d yC d [> eval( f, ); d zC [> eval( f, ); Bài sọan Maple Trang 11 08/26/13 Các loại biến & Việc lượng giá biểu thức Những bậc lượng giá không hoạt động số hàm Ví dụ 3: [> [> [> [> [> g u v s t := := := := := u*sin(u+v); s; t; t; Pi/4; g := u sin(u C v ) u := s v := t s := t t := p [Bây ta lượng giá g [> eval( g, ); u sin(u C v ) [> eval( g, ); s sin( u C v ) [> eval( g, ); t sin( u C v ) [> eval( g, ); p sin( u C v ) [> eval( g, ); p sin( u C v ) [Như vậy, luật lượng giá không ảnh hưởng hàm sin Tuy [nhiên, ta dùng hàm eval mà không cho tham số bậc g [vẫn bị lượng giá đầy đủ [> eval( g ); p Bài sọan Maple Trang 12 08/26/13 Các loại biến & Việc lượng giá biểu thức 2.4 Sự trì hỗn việc lượng giá Trong vài trường hợp cần trì hỗn lượng giá biểu thức biến Maple Ta trì hỗn lượng giá cách đặt biến biểu thức cặp dấu nháy đơn '' Luật lượng giá cho biểu thức có dấu nháy đơn: Theo nguyên tắc, Maple duyệt qua biến biểu thức đặt dấu nháy đơn, Maple loại bỏ cặp dấu nháy đơn không lượng giá biến biểu thức đặt dấu nháy đơn Ví dụ 1: [> x := 3; # x mang giá trị cụ thể [Trong dòng lệnh tiếp theo, Maple lượng giá x, theo [luật lượng giá đầy đủ sau dịng lệnh bên y mang giá [trị [> y := x + 3; y := [Nhưng muốn giá [Chúng ta làm điều [quanh x để ngăn cản lượng [trong dòng lệnh [> y := 'x' + 3; trị y đơn x+3 thông qua cặp dấu nháy đơn bọc giá lên biến x, ví dụ x không lượng giá y := x C (*) Ghi chú: Một cặp dấu nháy đơn ngăn cản lượng giá x câu lệnh Vì vậy, mà cần xem xét kỹ dòng lệnh mà Maple xuất sau nhấn enter Ở trường hợp này, dịng lệnh (*)x khơng bị bao bọc dấu nháy Vì vậy, dịng lệnh tiếp theo, đề cập đến y, Maple thực lượng giá đầy đủ xuất giá trị y Như vậy, lượng giá x bị ngăn cản câu lệnh định nghĩa y [> y; [Lượng giá bậc y y mang giá trị x+3(theo dòng [lệnh xuất (*)) [> eval(y, 1); xC Bài sọan Maple Trang 13 08/26/13 Các loại biến & Việc lượng giá biểu thức Ví dụ 2: [> x := 3; [> 'x' = x; [> %; x := x=3 3=3 Ví dụ 3: [> y := 3; y := [> x := '''y'''; x := ' 'y ' ' [> eval( x, ); ' 'y ' ' [> eval( x, ); 'y ' [> eval( x, ); [> eval( x, ); [> x; 'y ' [> eval( x ); Bài sọan Maple Trang 14 08/26/13 Các loại biến & Việc lượng giá biểu thức Ghi chú: Trong ví dụ đáng quan tâm dòng lệnh biểu thức x eval(x) Khi Maple yêu cầu lượng giá x, bắt đầu gán x ''y'' Theo luật lượng giá cho biểu thức có dấu nháy đơn, Maple tự động loại bỏ cặp dấu nháy đơn thoát khỏi lượng giá, kết cuối 'y' Khi Maple yêu cầu lượng giá biểu thức eval(x).Đầu tiên, Maple cần lượng giá đối số lệnh eval Maple lượng giá x 'y' Sau đó, giá trị đối số đưa tới eval, Maple gọi eval đối số này, Maple gọi eval('y') Nhưng eval lại áp dụng luật lượng giá cho biểu thức có dấu nháy đơn bên loại bỏ cặp dấu nháy đơn của'y' đưa kết cuối y Dấu nháy đơn không ngăn chặn việc tự động thu gọn biểu thức Maple Ví dụ 4: [> u := 5: [> 'u + u'; 2u [> %; 10 Sau trình bày cách sử dụng dấu nháy đơn để định nghĩa y dạng phương trình bình thường mà lo lắng tên biến a,b,c,x có mang giá trị khơng Ví dụ 5: [> y := 'a'*'x'^2+'b'*'x'+'c'=0; y := a x C b x C c = [Cách khác [> y:='a*x^2+b*x+c=0'; y := a x C b x C c = Tiếp theo ví dụ khác để giúp ta hình dung rõ tác dụng dấu nháy đơn Bài sọan Maple Trang 15 08/26/13 Các loại biến & Việc lượng giá biểu thức Ví dụ 6: [> x := 5; [> plot(x^2, x=-5 5); x := Error, (in plot) invalid arguments [Trong câu lệnh x với vai trò tham số lệnh plot [được lượng giá thành plot(5^2, 5=-5 5) Chính điểm vơ lý [5=-5 gây thông báo lỗi [> plot(x^2, 'x'=-5 5); [Lần x tham số đầu lượng giá thành [5^2=25, x tham số sau lượng giá theo quy luật [lượng giá biểu thức chứa dấu nháy đơn thành x=-5 Vì [vậy, đồ thị đường thẳng [> plot('x'^2, 'x'=-5 5); [Tương tự tham số lệnh plot lượng [giá thành plot(x^2,x=-5 5) nên đồ thị parpbol [> plot('x'^2, x=-5 5); Error, (in plot) invalid arguments [Chính điểm vơ lý biểu thức 5=-5 sau lượng giá [x gây thông báo lỗi Bài sọan Maple Trang 16 08/26/13 Các loại biến & Việc lượng giá biểu thức Phụ lục 3.1 Giới thiệu thành viên nhóm biên soạn: Đặng Vũ Khoa Phạm Hồng Nam Huỳnh Thị Bạch Vân Hứa Lê Thanh Vy (trưởng nhóm) Tạ Hồng Thùy Vy 3.2 Tài liệu tham khảo: [1] Programming in Maple – Roger Kraft - Purdue University Calumet [2] Maple for Math majors – Roger Kraft - Purdue University Calumet [3] Bài giảng Lập trình Maple – Thầy Lê Minh Trung – ĐH Sư Phạm TPHCM 3.3 Danh sách tập tin đính kèm: Số TT Tên tập tin Kiểu tập tin Các loại biến Việc lượng giá biểu thức doc Các loại biến Việc lượng giá biểu thức ppt / pps Các loại biến Việc lượng giá biểu thức pdf Lượng giá biểu thức mws Các loại biến mws Tập tin mws xem tốt giao diện Maple 10 Classic Bài sọan Maple Trang 17 08/26/13 ... [> z := y; y := t; t := x ^2 + 5*x - 12; z := y y := t t := x + x − 12 [z, y, t biến lập trình, x biến tốn học [> z; x2 + x − 12 [> y; [> t; [> x; x2 + x − 12 x2 + x − 12 x [thay x = 10, tính lại... thức [> 1+x ^2+ y; [1+x ^2+ y 32 [Đầu tiên x biểu thức mang giá trị biểu [thức 1+x ^2+ y thành 1+5 ^2+ y y mang giá trị 1+x, [1+5 ^2+ y thành 1+5 ^2+ 1+x, x có giá trị nên kết [quả cuối 1+5 ^2+ 1+5= 32 kết biểu... 1 .2 Phân loại biến Việc lượng giá biểu thức 2. 1 Giới thiệu chung .5 2. 2 Luật Lượng giá đầy đủ 2. 3 Cấp bậc việc lượng giá 10 2. 4 Sự trì hỗn