Niên luận giới thiệu lập trình giao diện MAPLET TRONG MAPLE

42 1.4K 2
Niên luận giới thiệu lập trình giao diện MAPLET TRONG MAPLE

Đ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

Tài liệu này hướng dẫn các bạn cách lập trình giao diện maplet trong maple. Các bạn sẽ được tiếp xúc với những câu lệnh, những đối tượng cơ bản nhất để các bạn có thể tự mình thiết kế giao diện maplet qua phần mềm maple. Để các bạn nắm rõ hơn mình có giới thiệu một số chương trình bằng về đại số tuyến tính và giải tích.

Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple SƠ LƯỢC VỀ MAPLET TRONG MAPLE Giới thiệu Maplet   Maple cơng cụ giải tốn tuyệt với câu lệnh cịn phức tạp khó nhớ Để đơn giản cho người không thường sử dụng, từ Maple trở đi, gói lệnh (Package) cho phép người sử dụng trình độ cao tạo “cửa sổ tính tốn” nhăm đơn giản hóa câu lệnh thông qua giao diện gồm nút (button), hộp văn (textbox), hộp kiểm tra (checkbook),…đó Maplet Maplet có tầm ứng dụng rộng rãi Các Maplet cho lập trình thành form hay gọi “máy tính” Maple, giao diện người dùng thiết kế tùy thuộc vào yêu cầu khác nhau, đối tượng Maplet liên kết với gói lệnh thủ tục(proc()) tự tạo Maple Tài liệu biên soạn cách sơ lược Maplet Nếu bạn người thường xuyên sử dụng muốn tìm hiểu sâu Maplet câu lệnh sau giúp bạn nhiều  [> [> [> [> ?Maplets,Index ?Maplets, Roadmap ?Maplets, Elements ?Maplets, Examples Ngồi bạn đọc muốn tìm hiểu rõ ứng dụng tất gói lệnh Maple truy cập vào Website thức phần mềm tốn học Maple: http://maplesoft.com/ 1.1 Ví dụ tạo máy tính Maple [> with( Maplets[Examples] ); [Alert , Confirm, GetColor , GetEquation, GetExpression, GetFile, GetInput , Integration,KernelOpts, LinearAlgebra, Message, Question, Selection, ShowTable, SignQuery] [> Integration(); 1.2 Tạo giao diện đến thủ tục gói lệnh Maplet Một giao giao diện Maplet dễ dàng thay đổi giá trị tính tốn tùy chọn thủ tục gói lệnh Maplet Ví dụ gói lệnh tạo danh sách thiết lập ban đầu mà người sủ dụng cần thay đổi Một giao diện Maplet đến gói lệnh tạo để giúp người sử dụng hiểu câu lệnh Ví dụ sau cho người sử dụng học cách tính định thức vector gói lệnh LinearAlgebra() (Gói lệnh đại số tuyến tính) [>with(LinearAlgebra): Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple [>with(linalg): [>A:=Matrix([[1,2], [4,1]]) [>det(A) 1.3 Ví dụ tạo bảng vấn [>with(Maplets[Examples]): [>Question("Is x positive?"); 1.4 Ví dụ tạo bảng thơng báo [>with(Maplets[Examples]): [>Message("You are correct!"); Gói lệnh Maplet Gói lệnh Maplets bao gồm gói lệnh con: Elements(các thành phần), Examples(các ví dụ), Tools(các cơng cụ) thủ tục Display để chạy ứng dụng viết Trong đó:  Elements: gồm thành phần độc lập sử dụng để tạo nên Maplet như: Cửa sổ, nút lệnh, hộp kiểm tra…Trong gói lệnh Maplets[Example] có nhiều thành phần khác sử dụng, thành phần có mơ tả tùy chọn khác  Examples: Gồm ví dụ cách sử dụng Maplet, có nhiều ví dụ phức tapj liên kết đến trang trợ hướng dẫn worksheet mô tả cách thành lập Maplet  Tools: Gồm cộng cụ cho người sử dụng Maple thàh lập Maplet Giới thiệu số thành phần Maplet 3.1 Các thành phần cửa sổ Tất thành phần giới thiệu nhằm giải thích ý nghĩa nêu ý nghĩa cách dùng Còn cú pháp sử dụng ta luân xem dễ dàng lệnh ? bôi đen thành phần cần tìm kiếm nhấn F2 3.1.1 Button(nút lệnh) Các nút lệnh xuất nhiều lần cửa sổ Maplet Mỗi nút lệnh liên quan đến hoạt động cụ thể kích hoạt Các trạng thái thể nút lệnh thay đổi tùy chọn câu lệnh khởi tạo nút lệnh Ví dụ sau tạo hai nút lệnh Ok, Cande maplet lệnh: [>restart; [>with(Maplets[Elements]): [>maplet := Maplet(["Chon mot lenh",[Button("OK", Shutdown()), [>Button("Cancel", Shutdown())]]): [>Maplets[Display](maplet); Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple 3.1.2 Checkbox Là điều khiển gồm nhiều ô lựa chọn Giống nút lệnh hộp kiểm tra liên quan đến hoạt động cụ thể, kích hoạt người sử dụng phải đánh dấu chọn lựa nhiều danh sách chọn Ví dụ: [> with(Maplets[Elements]): [> maplet := Maplet([[CheckBox['ChB1'](caption="red")], [> [CheckBox['ChB2'](caption="white")], [> [CheckBox['ChB3'](caption="blue")], [> [Button("OK", Shutdown(['ChB1', 'ChB2', 'ChB3'])), [> Button("Cancel", Shutdown())]]): [> Maplets[Display](maplet): 3.1.3 ComboBox Là hộp cho phép người sử dụng chọn thành phần từ danh sách thành phần cho trước Đặc biệt, thủ tục cho phép người sử dụng thêm vào thành phần khác cách nhập từ bàn phím Giá trị trả điều khiển thành phần chọn Ví dụ: [> with(Maplets[Elements]): [> maplet := Maplet([["Chon mon hoc ma ban thich: ", [> ComboBox['CoB1']("Giai Tich", sort([ [> "Dai So","Giai Tich", "XSTK", "Hinh Hoc"], lexorder))], [> [Button("OK", Shutdown(['CoB1'])), Button("Cancel", Shutdown())]]): [> Maplets[Display](maplet); 3.1.4 DropDownBox Điều khiển hiển thị giống ComboBox trừ việc người sử dụng phải chọn thành phần danh sách định nghĩa sẳn mà thêm thành phần Ví dụ: [> [> [> [> [> with(Maplets[Elements]): maplet := Maplet([ ["Ban sinh nhat thang: ", DropDownBox['DDB1']("Thang 01", sort(["Thang 01","Thang 02", "Thang 03", "Thang 04", Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple [> "Thang 05","Thang 06","Thang 07", "Thang 08", [> "Thang 09", "Thang 10","Thang 11", "Thang 12"], lexorder))], [> [Button("OK", Shutdown(['DDB1'])), Button("Cancel", Shutdown())]]): [> Maplets[Display](maplet); 3.1.5 Label Là điều khiển chứa văn hình ảnh Điều khiển thường dùng để đặt tên định dạng cho điều khiển khác, dịng văn maplet Văn hiển thị Label khơng có độ sáng khơng thẻ chép Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>[Label("Nhap ho va ten: ", 'font' = Font("courier", 14)), [>TextField['IF1'](20)], [>[Label("Vi du ", 'font' = Font("helvetica", 12)), [>Label("Bin Laden", 'font' = Font("helvetica", italic, 12))], [>[Button("OK", Shutdown(['IF1'])), Button("Cancel", Shutdown())]]): [>Maplets[Display](maplet); 3.1.6 ListBox Giống DropBox, điều khiển có danh sách thành phần định sẳn danh sách khơng nằm trạng thái có xổ Và điều khiển người sử dụng chọn nhiều thành phần lúc cách nhấn Shift trước chọn Giá trị trả chuổi thành phần chọn phận biệt dấu phẩy Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>["Chon mot mau ban thich: ", ListBox['LB1'](sort([ [>"xanh", "do", "tim", "vang", "xam", "nau", "den", [>"da cam", "hong"], lexorder))], [>[Button("OK", Shutdown(['LB1'])), Button("Cancel", Shutdown())]]): [>result := Maplets[Display](maplet): [>if type( result, ['string'] ) then [>Maplets[Tools][ListBoxSplit](result[1]); [>end if; 3.1.7 MathMLViewer ( Cửa sổ hiển thị cơng thức tốn) Là điều khiển cho phép hiển thị cơng thức tốn chứa Các biểu thức hiển thị dạng công thức tốn học bình thường thay cho cú pháp câu lệnh định nghĩa Chú ý đối tượng điều khiển copy paste môi Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple trường soạn thảo maple Ví dụ: [>Maplets[Display]( Maplet([ [>Label("Nhap vao mot cong thuc toan:", [>'font' = Font( 'family'=".VnTime", italic, 20 ) ), [>TextField['TF1']('value' = [>(x^3+sqrt(x^2+1))/ln(1/x)), [>MathMLViewer['MMLV1']( ), [>[Button("Hien thi", Evaluate( 'MMLV1' = 'MathML[Export](TF1)' )), [>Button("Bo qua", Shutdown())] ])); 3.1.8 MapMLEditor Là điều khiển cho người sử dụng trực tiếp gõ thay đổi cơng thức tốn thay phải định nghĩa sẳn theo cú pháp Để thực chức người sử dụng click chuột phải vào môi trường soạn công thức chọn ký hiệu tốn học tùy ý danh sách Ví dụ: [> with(Maplets[Elements]); [> maplet := Maplet([[BoxCell("Click chuot phai go cong thuc")], [>[MathMLEditor('reference' = 'ME1')], [Button("Done", [>Shutdown([ME1]))]]); [> Maplets[Display](maplet); 3.1.9 Plotter Điều khiển dùng để hiển thị đồ thị chiều, chiều, vận động đồ thị: Ví dụ: [>with(Maplets[Elements]); [>Maplets[Display](Maplet([[Label("Ve thi ham so", 'font' = [>Font('family' = ".VnTime", italic, 20))], [> [Label("F(x):", 'font' = Font('family' = ".VnTime", italic, 18)), [>TextField['TF1']("x^2")], [Label("X1:", [>'font' = Font('family' = ".VnTime", italic, 18)), TextField['x1']("-3")], [>[Label("X2:", 'font' = Font('family' = ".VnTime", italic, 18)), [>TextField['x2']("3")], Plotter['PL1'](), [Button("Display", Evaluate('PL1' [>= 'plot(TF1, x = x1 x2)')), Button("OK", [>Shutdown())]])); 3.1.10 RadioBox Điều khiển cho phép người sử dụng chọn đối tượng giống CheckBox nút chọn hiển thị dạng nút trịn Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>[RadioButton['RB1']("1", 'value'=true, 'group'='BG1'), [>RadioButton['RB2']("2", 'value'=false, 'group'='BG1')], [>[Button("OK", Shutdown(['RB1', 'RB2'])), Button("Cancel", Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple [>Shutdown())] [>, ButtonGroup['BG1']()): [>Maplets[Display](maplet); 3.1.11 Slider Điều khiển cho phép người sử dụng chọn giá trị từ thước khoảng giá trị Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>["Select a value: ", Slider['SL1'](0 100, 10, 'showticks', [>'majorticks'=20, 'minorticks'=10, 'snapticks'=false)], [>[Button("OK", Shutdown(['SL1'])), Button("Cancel", Shutdown())] [>]): Maplets[Display](maplet); 3.1.12 Table Điều khiển giống bảng thường dùng, cho phép người sử dụng điển giá trị sẳn vào bảng Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>BoxCell(Table([A, B], [[1, 2], [3, 4]]), 'as_needed'), [>Button("OK", Shutdown()) ]): [>Maplets[Display](maplet); 3.1.13 TextBox Điều khiên cho phép hiển thị cho người dùng nhập dòng văn nhiều dịng Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>[Label("Nhap dong van ban:",'font' = Font( 'family'=".VnTime", [>italic, 14 ) ), BoxCell(TextBox['IB1'](3 30), 'as_needed')], [>[Button("OK", Shutdown(['IB1'])), Button("Cancel", Shutdown())] [>]): [>Maplets[Display](maplet); 3.1.14 TextField Giống TextBox, điều khiển cho hiển thị văn có dòng Việc xuất nhập văn phụ thuộc vào tùy chọn Editable mang giá trị True hay False Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>["Enter your name: ", TextField['IB1'](30)], [>[Button("OK", Shutdown(['IB1'])), Button("Cancel", Shutdown())] [>]): Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple [>Maplets[Display](maplet); 3.1.15 ToggleButton Giống CheckBox khác cách hiển thị Điều khiển chứa chuổi ký tự một hình ảnh giao diện nút Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet([ [>[ToggleButton['TB1']("Vi du mot Toggle Button", 'value'=true)], [>[Button("OK", Shutdown(['TB1'])), Button("Cancel", Shutdown())] [>]): [>Maplets[Display](maplet); 3.2 Tạo Menu Các thành phần menu maplet bao gồm:  MenuBar (Thanh menu): Phải thành phần thành phần số maplet  MenuItem(Các menu thành phần): Là thành phần menubar menu chọn nhanh(PopupMenu )  MenuSeparator(Dấu phân cách Menu thành phần): Là thành phần menubar menu chọn nhanh dùng đề phân cách menuItem Một menu chứa nhiều menu, menu có nhiều menu thành phần, dấu phân cách dùng để nhóm menu thành phần để phân cách với menu thành phần khác Ví dụ: [>with(Maplets[Elements]); [>maplet := Maplet(Window(title = "Menubar", 'menubar' = 'MNB', [["Menu-Bar"], [>[Button("Exit", Shutdown())]]), MenuBar['MNB'](Menu("Menu0", MenuItem("Quit", [>Shutdown())), Menu("Menu1", Menu("Close", MenuItem("Close", Shutdown())), [>MenuItem("Quit", Shutdown())), Menu("Menu2", MenuItem("Quit", Shutdown())))); [> Maplets[Display](maplet) 3.3 Thanh công cụ (ToolBar) Các khái niệm menu hay công cụ quen thuộc với người sử dụng window Trong maplet ta tạo công cụ để thực cơng việc maplet Thành phần công cụ gồm nút lệnh, nút phân cách.Ví dụ: Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple [>with(Maplets[Elements]): [>maplet := Maplet( [>Window('title' = "Tinh nguyen ham theo bien x", 'toolbar' = [>ToolBar( [>ToolBarButton("Thoat", Shutdown()), [>ToolBarSeparator(), [>ToolBarButton("Thuc hien", 'onclick'=Evaluate('TF1' = 'int(TF1, [>x)')) [>), [>[ [>TextField['TF1'](), [>Button("OK", Shutdown("OK")) [>]) [>): [>Maplets[Display](maplet); 3.4 Một số lệnh thường dùng cửa sổ maplet 3.4.1 CloseWindow Đóng cửa sổ maplet [>with(Maplets[Elements]): [>maplet := Maplet('onstartup' = 'A1', [>Window['W1']("1", [>[Button("Mo mot cua so moi", RunWindow('W2')), [>Button("Exit", Shutdown("1"))] [>), [>Window['W2']("2", [>[Button("Dong cua so nay", CloseWindow('W2')), [>Button("Exit", Shutdown("2"))] [>), [>Action['A1'](RunWindow('W1')) [>): [>Maplets[Display](maplet); 3.4.2 Evaluate Đây lệnh đặc biệt dùng để lấy giá trị chu trình hay thủ tục maple dạng tham số lệnh Ví dụ lệnh trình bày phần trước 3.4.3 Rundialog Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple Dùng để hiển thị hộp thoại maplet hộp thoại hiển thị chạy khơng có vấn đề xãy Ví dụ: [>with(Maplets[Elements]): [>maplet := Maplet( [>Window([ [>["Nhap bieu thuc:"],[TextField['TF1']()], [>[ [>Button("Dao ham theo bien x", Evaluate('TF1' = 'diff(TF1, [>x)')), [>Button("Dialog", RunDialog('MD1')), [>Button("Exit", Shutdown(['TF1'])) [>] [>]), [>MessageDialog['MD1']("Vi du ve hien thi Dialog") [>): [>Maplets[Display](maplet); 3.4.4 Runwindow Hiển thị cửa sổ thành phần ứng dụng maplet Ví dụ trình bày phần Closewindow 3.4.5 SetOption Lệnh cho phép giá trị số tùy chọn thay đổi ứng dụng chạy Ví dụ, Nếu người sử dụng kích vào nút, tùy chọn “ochange” nút sử dụng thuộc tính SetOption để bắt đầu thay đổi xóa text xuất Ví dụ: [>with(Maplets[Elements]): [>maplet1 := Maplet([ [>[Label('caption'="Nhap vao bieu thuc")], [>["Input:", TextField['B1'](20)], [>["Output:", TextField['B2'](20, 'editable' = 'false')], [>[ [>Button("Xoa Input", SetOption('target' = 'B1', 'value' = "")), [>Button("Copy to Output", SetOption('target' = 'B2', [>Argument('B1'))), [>Button("Thoat", Shutdown(['B2'])) [>] [>]): [>Maplets[Display](maplet1); 3.4.6 Shutdown Lệnh dùng để đóng maplet chạy Đặc biệt lệnh gán giá trị trả Ví dụ lệnh trình bày phần Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple 3.5 Giới thiệu sô hộp thoại thường dùng Các cửa sổ (Dialogs) cửa sổ nhỏ ứng dụng Maplet nhằm cung cấp thông tin, đưa cảnh báo nhận thơng tin…Ngồi số ký hiệu mặc định hộp thoại, người lập trình maplet định dạng lại số thuộc tính như: Ký tự xuất tiêu đề hay nút lệnh, hay thông báo Chú ý Dialog khơng có giá trị trả 3.5.1 AlertDialog (Hộp thoại cảnh báo) Dùng hộp thoại muốn cảnh báo điều cho người dùng maplet Ví dụ: > Maplets[Display]( Maplet( AlertDialog( > "Canh bao, sap mat dien", > 'onapprove' = Shutdown('true'), > 'oncancel' = Shutdown("FAIL") > ) ) ); 3.5.2 ColorDialog (Hộp thoại màu) Dùng hộp thoại người dùng chọn màu màu chuẩn để hiển thị đối tượng maplet Ví dụ: >restart;with(Maplets[Elements]): >Maplets[Display]( Maplet( ColorDialog['CD1']( > 'onapprove' = Shutdown(['CD1']), > 'oncancel' = Shutdown() > ) ) ); 3.5.3 ConfirmDialog Dùng hộp thoại để thông báo cho người sử dụng xác nhận thông tin hay hoạt động tiến hành Ví dụ: > > > > > > > with(Maplets[Elements]): maplet := Maplet(ConfirmDialog('question', "Co phai x>0?", 'onapprove' = Shutdown("true"), 'ondecline' = Shutdown("false"), 'oncancel' = Shutdown("FAIL") )): Maplets[Display](maplet); 3.5.4 FileDialog (Hộp thoại chọn file) Dùng hộp thoại muốn chọn file máy tính Ví dụ: > with(Maplets[Elements]): > maplet := Maplet(FileDialog['FD1']( 10 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện vẽ đồ thị mặt phẳng 28 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện vẽ đồ thị khơng gian chiều 29 Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện chọn màu vẽ đồ thị Thân chương trình: >restart; with(plots): with(Maplets[Tools]): with(Maplets[Elements]): with(StringTools): SetPL := proc () local p; p := plot(0, x = 0, axes = none, thickness = 0); 30 Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple Set('P' = p) end proc; SetPL3 := proc () local p; p := plot(0, x = 0, axes = none, thickness = 0); Set('P2' = p) end proc capnhat := proc () global Cn; Cn := end proc; chonmau := proc () global m1, Cn; Cn := 1; m1 := Maplets[Display](Maplet(ColorDialog['CL1']('onapprove' = Shutdown(['CL1']), 'oncancel' = Action(Evaluate('function' = 'capnhat()'), Shutdown())))): end proc: chonmau2 := proc () global m2, Cn; Cn := 1; m2 := Maplets[Display](Maplet(ColorDialog['CL2']('onapprove' = Shutdown(['CL2']), 'oncancel' = Action(Evaluate('function' = 'capnhat()'), Shutdown())))) : end proc: DT := proc (f, g, SL1, d) global p1, p2, p3; if Cn = then if d = F(x) then p1 := plot(f, x = -SL1 SL1, thickness = 3, color = m1[1]); Set('P' = p1) elif d = G(x) then p2 := plot(g, x = -SL1 SL1, thickness = 3, color = m2[1]); Set('P' = p2) else p3 := plot([f, g], x = -SL1 SL1, thickness = [3, 3], color = [m1[1], m2[1]], legend = ["Ham F(x)", "Ham G(x)"]); Set('P' = p3) ; 31 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple fi: else if d = F(x) then p1 := plot(f, x = -SL1 SL1, thickness = 3, color = red); Set('P' = p1) elif d = G(x) then p2 := plot(g, x = -SL1 SL1, thickness = 3, color = blue); Set('P' = p2) Else p3 := plot([f, g], x = -SL1 SL1, thickness = [3, 3], color = [red, blue], linestyle = [1, 10], legend = ["Ham F(x)", "Ham G(x)"]); Set('P' = p3) fi: fi: end proc: VanDong := proc (f, g, SL1, d) if Cn = then if d = F(x) then Set('P' = plots[animatecurve](f, x = -SL1 SL1, thickness = 3, color = m1[1])) elif d = G(x) then Set('P' = plots[animatecurve](g, x = -SL1 SL1, thickness = 3, color = m2[1])) else Set('P' = plots[animatecurve]({f, g}, x = -SL1 SL1, thickness = 3, color = m1[1])) fi: else if d = F(x) then Set('P' = plots[animatecurve](f, x = -SL1 SL1, thickness = 3, color = red)) elif d = G(x) then Set('P' = plots[animatecurve](g, x = -SL1 SL1, thickness = 3, color = blue)) else Set('P' = plots[animatecurve]({f, g}, x = -SL1 SL1, thickness = 3, color = red)) end fi: fi: end proc: DT2 := proc (f, g, x1, x2, y1, y2, d, m3, m4) global p1, p2, p3; if d = F(x) then p1 := plot3d(f, x = x1 x2, y = y1 y2, grid = [50, 50], axes = boxed, color = m3); Set('P2' = p1) elif d = G(x) then p2 := plot3d(g, x = x1 x2, y = y1 y2, grid = [50, 50], axes = boxed, color = m4); Set('P2' = p2) else 32 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple p3 := plot3d([f, g], x = x1 x2, y = y1 y2, grid = [50, 50], axes = boxed, color = [m3, m4]); Set('P2' = p3) fi: end proc: VanDong2 := proc (f1, g1, x1, x2, y1, y2, k1, k2, d, m3, m4) if d = F(x) then Set('P2' = plots[animate3d](f1, x = x1 x2, y = y1 y2, t = k1 k2, axes = boxed)) elif d = G(x) then Set('P2' = plots[animate3d](g1, x = x1 x2, y = y1 y2, t = k1 k2, axes = boxed)) else Set('P2' = plots[animate3d]({f1, g1}, x = x1 x2, y = y1 y2, t = k1 k2, axes = boxed)) fi: end proc: Help1:=proc() Maplets[Examples][Message]( “Bạn nhập vào hàm số cần vẽ dạng y = f(x) sử dụng chức maplet vẽ đồ thị,hãy sử dụng thước vẽ để quan sát đồ thị giá trị khác Chúc bạn thành công!”); end: Help2:=proc() Maplets[Examples][Message](“ Bạn nhập vào hàm số cần vẽ dạng y = f(x) sử dụng chức maplet vẽ đồ thị Luy ý:Nếu bạn muốn quan sát vận động đồ thị không gian ,bạn phải nhập vào hàm số dang z = f(x,y,t), t tham số vận động Chúc bạn thành công!”); end: dothi:=Maplet(onstartup=RunWindow(MAIN),Window[MAIN]"Do thi",([ ["Chào mung ban den voi chuong trinh ve thi bang Maplet!"],["Hãy chon không gian ban muon ve thi!"], [Button("Mat phang",onclick=A1),Button(" Khong gian",onclick=A2),Button("Exit",onclick=A3)]]), Window[Plot]("Do thi mat phang",'menubar'='MNB', [[ BoxColumn(border=true,background="#74CFA6", ["hay chon thi ban muon ve:",DropDownBox['d']("F(x)", sort(["F(x)","G(x)","F(x)&G(x)"], lexorder))], ["F(x)",TextField['f']( "x^3*sin(x)"),Button("Color",Evaluate('function'='chonmau()'))],["G(x)",TextField['g']( "x^3+3*x^2"),Button("Color",Evaluate('function'='chonmau2()'))], ["VUNG HIEN THI DO THI:"], 33 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Plotter['P']( continuous=true,play=true),[ Slider['SL1'](10 100, 10, 'showticks', 'majorticks'=20, 'minorticks'=5, 'snapticks'=false,'onchange'='Action5','background'="#5C5C6C")], [Button("Display",Action('reference'='Action5', Evaluate('function'='DT(f,g,SL1,d)'))), Button("Animate",Evaluate('function'='VanDong(f,g,SL1,d)')), [Button("Back",CloseWindow('Plot'))], Button("Exit",onclick=A3)])]]), Action[A1](RunWindow(Plot)), Window[Plot2]("Do thi khong gian",'menubar'='MNB2', [[ BoxColumn(border=true,background="#FFCCCC", ["Hay chon thi ban muon ve?:",DropDownBox['d']("F(x)", sort(["F(x)","G(x)","F(x)&G(x)"], lexorder))],["F(x,y)",TextField['f1']( "sin(x)/y^2"),"Color",DropDownBox['m3']("green", sort(["blue","red","yellow"," green","pink","orange"], lexorder))],["G(x,y)",TextField['g1']( "x^3+y^2+1"),"Color",DropDownBox['m4']("red", sort(["blue","red","yellow","green","pink","orange"], lexorder))],["X1",TextField['x1']( "5"),"X2",TextField['x2']( "5")],["Y1",TextField['y1']( "-5"),"Y2",TextField['y2']( "5")],Plotter['P2'](continuous=true,play=true ), [Button("Display", Evaluate('function'='DT2(f1,g1,x1,x2,y1,y2,d,m3,m4)')), Button("Animate",onclick=A4),[Button("Back", CloseWindow('Plot2'))],Button("Exit",onclick=A3)])]]), Action[A2](RunWindow(Plot2)),MenuBar['MNB'](Menu("File", MenuItem("Exit Alt+F4",Shutdown()),MenuItem("ClearAll",(Action( SetOption(target='f',value=""), Evaluate('function' = 'SetPL(SL1)'), SetOption(target='g',value="") )))) ,Menu("Help", MenuItem("Quick Help ",Evaluate('function'='Help1()')))), MenuBar['MNB2'](Menu("File", MenuItem("Exit Alt+F4",Shutdown()),MenuItem("ClearAll ",(Action( SetOption(target='f1',value=""), SetOption(target='g1',value=""), SetOption(target='x1',value=""), Evaluate('function' = 'SetPL3()'), SetOption(target='x2',value=""), SetOption(target='y1',value=""), SetOption(target='y2',value=""), )))), Menu("Help", MenuItem("Quick Help ",Evaluate('function'='Help2()')))), Window['W2']("Maplet thông báo:", [["Ban thuc su muon thoat khoi he thong?"], [Button("Ok", Shutdown()), Button("Cancel", CloseWindow('W2'))]] ), Action['A3'](RunWindow(W2)), 34 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Window[KGT]('title' = "Nhap khoang gia tri", [["Nhap khoang cho tham so van dong t:],[ "T1", width['k1'](width['k2'], "1", "T2", width['k2'](width['k2'], "2")]), [Button("OK", onclick = A5), ()("Tro lai", CloseWindow(KGT))], Action['A4'](RunWindow(KGT)); Action['Action['A4']'](RunWindow(KGT), Evaluate('function' = 'VanDong2(f1, g1, x1, x2, y1, y2, "T2", "OK", d, m3, m4)'))): Maplets[Display](dothi); 2.2.3 Maplet tính giới hạn đạo hàm Maplet chia làm hai phần: Phần 1: Là maplet tính giới hạn hàm số,với chức năng: Tính giới hạn Tính giới hạn trái Tính giới hạn phải Tính giới hạn vơ Phần 2: Là maplet tính đạo hàm hàm số,với maplet này,chúng ta tính đạo hàm hàm số theo biến cấp tùy ý Hình ảnh họa: Giao diện chọn phép tính ban đầu 35 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện tính giới hạn Giao diện tính đạo hàm 36 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Thân chương trình: >with(plots):with(Maplets[Tools]): with(Maplets[Elements]): KiemTra:=proc(F,gt) if limit(F,x=gt,left) # limit(F,x=gt,right) then Maplets[Examples][Message]("Khong ton tai gioi han !"); else Maplets[Tools][Set]('GioiHan'(value)=(Limit(F,x=gt)=limit(F,x=gt))); fi: end: Help1:=proc() Maplets[Examples][Message](“Bạn nhập vào hàm số dạng y = f(x) thực phép toán tương ứng Luwy ý : Nếu bạn muốn tìm giới hạn hàm số tai vơ cùng,bạn cần nhập vào hàm số bấm nút lệnh Giới han ∞.Bạn sẻ có kết tương ứng Chúc bạn thành công!”) end: Help2:=proc() Maplets[Examples][Message](“Bạn nhập vào hàm số tùy ý,nhập cấp, biến đạo hàm thực phép tốn tương ứng Chúc bạn thành cơng!”) end: GioiHan:=Maplet(onstartup=RunWindow(MAIN),Window[MAIN]("Gioi Han - Dao Ham",[["Chào mừng bạn đến với maplet tính Giới Hạn - Dao Hàm!"],["Bạn muốn tính giới hạn hay đạo hàm?"], [Button("Gioi Han",onclick=A1),Button(" Dao Ham",onclick=A2),Button("Thoat",onclick=A3)]]), Window[Gioihan]("Gioi Han",'menubar'='MNB', [[BoxColumn(border=true,background="#74CFA6",["Nhập hàm F(x)",TextField['F']("tan(x+Pi/2)")], ["Tính GH điểm ",TextField['gt']("0")], ["Kết Qủa:",MathMLViewer['GioiHan'](),background="#FF9999"], [Button("Gioi Han",Evaluate('function'='KiemTra(F,gt)')),Button("Gioi Han Trai",Evaluate('GioiHan'='Limit(F,x=gt,left)=limit(F,x=gt,left)')),Button("Gioi Han Phai",Evaluate('GioiHan'='Limit(F,x=gt,right)=limit(F,x=gt,right)')),Button("Gioi Han Tai infinity",Evaluate('function'='GioiHanVC(F)'))], 37 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple [Button("Tro Lai", Action(SetOption(target='GioiHan',value=""),CloseWindow('Gioihan'))),Button("ClearAll", Action( SetOption(target='F',value=""), SetOption(target='gt',value=""), SetOption(target='GioiHan',value="")) ), Button("Thoat", RunWindow('W2'))])]]), Action[A1](RunWindow('Gioihan')), Window['Dham']("Dao Ham", 'menubar'='MNB2',[[BoxColumn(border=true,background="#FFCCCC",["Maplet tính Đạo Hàm :"],["Nhập hàm F:", TextField['G'](width=30,"x^3")], ["Đến cấp:",TextField['K'](width=5), "Theo Biến:", TextField['Bien'](width=5 )],["Kết Qủa", MathMLViewer['Daoham'](),background="#74CFA6"], [Button("Dao Ham", Evaluate('Daoham'='Diff(G,Bien$K)=diff(G,Bien$K)')),Button("Tro Lai", Action( SetOption(target='Daoham',value=""), SetOption(target='K',value=""), SetOption(target='Bien',value=""),CloseWindow('Dham'))), Button("ClearAll", Action( SetOption(target='G',value=""), SetOption(target='K',value=""), SetOption(target='Bien',value=""), SetOption(target='Daoham',value="")) ), Button("Thoat", RunWindow('W2'))])]]), Action[A2](RunWindow('Dham')),MenuBar['MNB'](Menu("File", MenuItem("Exit Alt+F4",Shutdown()),MenuItem("ClearAll",(Action( SetOption(target='F',value=""), SetOption(target='gt',value=""), SetOption(target='GioiHan',value=""))))), Menu("Help", MenuItem("Quick Help",Evaluate('function'='Help1()')))),MenuBar['MNB2'](Menu("File", MenuItem("Exit Alt+F4",Shutdown()),MenuItem("ClearAll ",(Action( SetOption(target='G',value=""), SetOption(target='K',value=""), SetOption(target='Bien',value=""), SetOption(target='Daoham',value=""))))), Menu("Help", MenuItem("Quick Help ",Evaluate('function'='Help2()')))), Window['W2']("Maplet thông báo:", [["Ban thuc su muon thoat khoi he thong?"],[Button("Ok", Shutdown()), Button("Cancel", CloseWindow('W2'))]] ), Action['A3'](RunWindow('W2'))) : Maplets[Display](GioiHan); 38 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple 2.3.1 Mapet ứng dụng phương trình vi phân Phương trình vi phân vấn đề toán học, nhiên việc tính tốn đối tượng khó khăn Sau số Maplet giải phương trình vi phân, hệ phương trình vi phân để phục vụ cho việc tính tốn đối tượng cách dễ dàng 2.3.2 Maplet giải phương trình vi phân thường Phương trình đầu vào có dạng: y"+ Ay '+ By = Với điều kiện ban đầu : y(0) = x0 , y '(0) =y0 ; Hình ảnh minh họa: Giao diện giải phương trình vi phân 39 Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple Thân chương trình: > restar; with(Maplets[Elements]); with(DEtools); with(Maplets[Tools]); DT := proc (f, k1, k2) global p2, p3, t, dothi; t := k1, k2; p2 := dsolve({t, f}, {y(x)}); Set('vp' = p2) end proc; maplet := Maplet(Window([BoxColumn(border = true, background = "#9999FF", [Label("MAPLET GIAI PHUONG TRINH VI PHAN THUONG", 'font' = Font("courier", 14))], [Label("Y(x)", 'font' = Font("courier", 14)), TextField['f'](width = 40, "D(D(y))(x)2*D(y)(x)+2*y(x)=4*exp(x) ")], ["y()", TextField['k1']("y(0)=1"), "D(y)", TextField['k2']("D(y)(0)=2")]), BoxColumn(border = true, background = "#9999FF", [Label("Ket Qua", 'font' = Font("courier", 14))], [MathMLViewer[vp](height = 90)], ["DO THI HAM SO"], [Plotter['PL1'](height = 300)]), [Button("Tinh", Evaluate('function' = 'DT(f, k1, k2)')), [Button("Do Thi", Evaluate('PL1' = 'plot(subs(p2, {y(x)}), x = -8 .10)'))], Button("Exit", Shutdown())]])); Maplets[Display](maplet); 2.2.4 Maplet giải hệ phương trình vi phân thường Hệ phương trình vi phân có dạng: y"(x) =z(x); z"(x)=y(x); Với điều kiện ban đâu : y(0)=x0; z(0)=y0; Hình ảnh minh họa: 40 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện giải hệ phương trình vi phân Thân chương trình: > restar; with(Maplets[Elements]); 41 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple with(DEtools); with(Maplets[Tools]); DT := proc (f1, f2, dk1, dk2) global p2, p3, t, h, p; t := f1, f2; p := {y(x), z(x)}; h := dk1, dk2; p2 := dsolve({h, t}); Set('vp' = p2) end proc; maplet := Maplet(Window([BoxColumn(border = true, background = "#9999FF", ["MAPLET GIAI HE PHUONG TRINH VI PHAN"]), BoxColumn(border = true, background = "#9999FF", [Label("F1(x):", 'font' = Font("courier", 14)), TextField['f1'](width = 30, "diff(y(x),x)=z(x)-y(x)-x")], [Label("F2(x):", 'font' = Font("courier", 14)), TextField['f2'](width = 30, "diff(z(x),x)=y(x)")], [Label("y(0)", 'font' = Font("courier", 14)), TextField['dk1'](width = 10, "y(0)=0"), Label("z(0)", 'font' = Font("courier", 14)), TextField['dk2'](width = 10, "z(0)=1")]), BoxColumn(border = true, background = "#9999FF", [Label("Ket Qua", 'font' = Font("courier", 14))], [MathMLViewer[vp](height = 200)]), [Button("Tinh", Evaluate('function' = 'DT(f1, f2, dk1, dk2)')), Button("Exit", Shutdown())]])); Maplets[Display](maplet); 42 ... _ Thiết kế giao diện Maplet Maple Giao diện tính giới hạn Giao diện tính đạo hàm 36 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Thân chương trình: >with(plots):with(Maplets[Tools]):... Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện nhập ma trận 13 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện tính tốn ma trận Thân chương trình: ... vẽ đồ thị 27 Nhóm niên luận Tốn Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện vẽ đồ thị mặt phẳng 28 Nhóm niên luận Toán Tin K32 _ Thiết kế giao diện Maplet Maple Giao diện vẽ đồ thị không

Ngày đăng: 26/12/2013, 17:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan