1. Trang chủ
  2. » Khoa Học Tự Nhiên

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

42 1,4K 2

Đ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

Thông tin cơ bản

Tiêu đề Thiết kế giao diện Maplet trong Maple
Tác giả Nhóm Niên Luận Toán Tin K32
Trường học Trường Đại Học
Chuyên ngành Toán Tin
Thể loại Niên luận
Năm xuất bản 2025
Thành phố Thành phố
Định dạng
Số trang 42
Dung lượng 1,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.

Trang 1

SƠ LƯỢC VỀ MAPLET TRONG MAPLE

1 Giới thiệu về Maplet

 Maple tuy là một công cụ giải toán rất tuyệt với nhưng những câu lệnh còn phức tạp và rất khó nhớ Để đơn giản cho những người không thường sử dụng, từ Maple 7 trở đi, một gói lệnh (Package) cho phép người sử dụng ở trình độ cao có thể tạo những “cửa sổ tính toán” nhăm đơn giản hóa các câu lệnh thông qua giao diện gồm các nút (button), các hộp văn bản (textbox), các hộp kiểm tra (checkbook),…đó là Maplet

 Maplet có tầm ứng dụng rất rộng rãi Các Maplet có thể cho chúng ta có thể lập trình thành các form hay gọi là “máy tính” trong Maple, các giao diện này được người dùng thiết kế tùy thuộc vào các yêu cầu khác nhau, các đối tượng trên Maplet được liên kết

với các gói lệnh hoặc các thủ tục(proc()) mình tự tạo trong Maple

 Tài liệu này được biên soạn một cách sơ lược về Maplet Nếu bạn là một người thường xuyên sử dụng hoặc muốn tìm hiểu sâu hơn về Maplet thì những câu lệnh sau sẽ giúp bạn rất nhiều

[Alert , Con firm, GetColor , GetEquation, GetExpression,

GetFile, GetInput , Integration,KernelOpts, LinearAlgebra,

Message, Question, Selection, ShowTable, SignQuery]

[> Integration();

1.2 Tạo ra các giao diện đến các thủ tục và các gói lệnh trong Maplet

Một giao giao diện Maplet có thể dễ dàng thay đổi các giá trị tính toán và các tùy chọn trong các thủ tục và các gói lệnh của Maplet Ví dụ một gói lệnh sẽ tạo ra danh sách các thiết lập ban đầu mà người sủ dụng hoặc khi cần có thể thay đổi Một giao diện Maplet đến một gói lệnh có thể được tạo ra để giúp người sử dụng hiểu về câu lệnh đó Ví dụ sau sẽ cho người sử dụng học về cách tính định thức của một vector trong gói lệnh

LinearAlgebra() (Gói lệnh về đại số tuyến tính)

[>with(LinearAlgebra):

Trang 2

[>Message("You are correct!");

2 Gói lệnh trong Maplet

Gói lệnh trong Maplets bao gồm 3 gói lệnh con: Elements(các thành phần), Examples(các

ví dụ), Tools(các công cụ) và thủ tục Display để chạy các ứng dụng được viết

Trong đó:

 Elements: gồm các thành phần độc lập được sử dụng để tạo nên một Maplet như: Cửa

sổ, các nút lệnh, các hộp kiểm tra…Trong gói lệnh con Maplets[Example] có nhiều thành phần khác nhau được sử dụng, mỗi thành phần có các mô tả và tùy chọn khác nhau

 Examples: Gồm các ví dụ chỉ cách sử dụng các Maplet, trong đó có nhiều ví dụ phức tapj được liên kết đến các trang trợ hướng dẫn và các worksheet mô tả cách thành lập các Maplet này

 Tools: Gồm các cộng cụ cho người sử dụng Maple thàh lập các Maplet

3 Giới thiệu một số thành phần trong Maplet

3.1 Các thành phần trong cửa sổ chính

Tất cả các thành phần được giới thiệu ở đây chỉ nhằm giải thích ý nghĩa và nêu ý nghĩa về cách dùng Còn cú pháp sử dụng ta luân xem dễ dàng bằng lệnh ?<tên thành phần[> hoặc bôi đen thành phần cần tìm kiếm và nhấn F2

3.1.1 Button(nút lệnh)

Các nút lệnh có thể xuất hiện nhiều lần trong một cửa sổ Maplet Mỗi nút lệnh được liên quan đến một hoạt động cụ thể khi được kích hoạt Các trạng thái thể hiện của nút lệnh được thay đổi trong các tùy chọn của câu lệnh khởi tạo nút lệnh Ví dụ sau tạo ra hai nút

lệnh Ok, Cande trong một maplet bằng lệnh:

Trang 3

3.1.2 Checkbox

Là một điều khiển gồm nhiều ô lựa chọn Giống như nút lệnh mỗi hộp kiểm tra liên quan đến một hoạt động cụ thể, khi được kích hoạt người sử dụng phải đánh dấu chọn lựa một hoặc nhiều danh sách 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",

Trang 4

[> "Thang 05","Thang 06","Thang 07", "Thang 08",

[> "Thang 09", "Thang 10","Thang 11", "Thang 12"], lexorder))], [> [Button("OK", Shutdown(['DDB1'])), Button("Cancel",

[>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",

[>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",

3.1.7 MathMLViewer ( Cửa sổ hiển thị các công thức toán)

Là một điều khiển cho phép hiển thị các công thức toán chứa trong nó Các biểu thức được hiển thị dưới dạng công thức toán học bình thường thay cho các cú pháp câu lệnh định nghĩa Chú ý các đối tượng trong điều khiển này không thể copy hoặc paste như trong môi

Trang 5

trường soạn thảo của maple Ví dụ:

[>Maplets[Display]( Maplet([

[>Label("Nhap vao mot cong thuc toan:",

[>'font' = Font( 'family'=".VnTime", italic, 20 ) ),

[>'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,

[>[RadioButton['RB1']("1", 'value'=true, 'group'='BG1'),

[>RadioButton['RB2']("2", 'value'=false, 'group'='BG1')],

[>[Button("OK", Shutdown(['RB1', 'RB2'])), Button("Cancel",

Trang 6

[>["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);

Giống như TextBox, điều khiển này cũng cho hiển thị văn bản nhưng chỉ có trên một dòng Việc xuất nhập văn bả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())] [>]):

Trang 7

[>Maplets[Display](maplet);

3.2 Tạo Menu

Các thành phần trong một menu trong maplet bao gồm:

 MenuBar (Thanh menu): Phải là thành phần trong một thành phần trong một của số nào đấy của maplet

 MenuItem(Các menu thành phần): Là một thành phần trong một menubar hoặc một menu chọn nhanh(PopupMenu ) nào đó

 MenuSeparator(Dấu phân cách các Menu thành phần): Là một thành phần trong một menubar hoặc trong một menu chọn nhanh nào đó dùng đề phân cách các menuItem

Một thanh menu có thể chứa nhiều menu, mỗi menu có thể có nhiều menu thành phần, các dấu phân cách dùng để nhóm các menu thành phần và cũng để phân cách với các menu thành phần khác Ví dụ:

3.3 Thanh công cụ (ToolBar)

Các khái niệm về thanh menu hay thanh công cụ rất quen thuộc với những người sử dụng window Trong maplet cũng vậy ta cũng có thể tạo ra các thanh công cụ để thực hiện các công việc chính trong maplet của mình Thành phần trong thanh công cụ gồm các nút

lệnh, các nút phân cách.Ví dụ:

Trang 9

Dùng để hiển thị một hộp thoại nào đó trong maplet nếu hộp thoại đã được hiển thị thì khi chạy sẽ không có vấn đề gì xãy ra Ví dụ:

Lệnh này dùng để đóng một maplet đang chạy Đặc biệt trong lệnh này có thể gán giá trị

trả về Ví dụ về lệnh này đã được trình bày ở phần trên

Trang 10

3.5 Giới thiệu một sô hộp thoại thường dùng

Các cửa sổ (Dialogs) là các cửa sổ nhỏ trong ứng dụng Maplet nhằm cung cấp thông tin, đưa ra các cảnh báo hoặc nhận thông tin…Ngoài một số ký hiệu mặc định trong hộp thoại, người lập trình maplet có thể định dạng lại một số thuộc tính như: Ký tự xuất hiện trên thanh tiêu đề hay trên nút lệnh, hay trên các thông báo Chú ý Dialog không có giá trị trả

về

3.5.1 AlertDialog (Hộp thoại cảnh báo)

Dùng hộp thoại này khi muốn cảnh báo một điều gì 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 này người dùng có thể chọn một màu trong các màu chuẩn để hiển thị trên một đối tượng nào trên maplet Ví dụ:

3.5.4 FileDialog (Hộp thoại chọn file)

Dùng hộp thoại này khi muốn chọn một file nào trong máy tính Ví dụ:

> with(Maplets[Elements]):

> maplet := Maplet(FileDialog['FD1'](

Trang 11

3.5.6 Massage (hộp thoại thông báo)

Dùng hộp thoại này để thông báo cho người dùng một thông tin gì đấy Hộp thoại này chỉ

có 2 phần: Phần thông báo cần hiển thị và nút tắt hộp thoại Ví dụ:

3.5.7 QuestionDialog (hộp thoại truy vấn)

Hộp thoại này dùng cho người sử dụng có thể xác nhận một vấn đề gì đó với hai trạng thái

3.6 Tạo bảng trong maplet

Trong cửa sổ maplet có thể tạo ra các bảng(table) mỗi bảng gồm có các tiêu đề, các ô Nếu khai báo một bảng mà không có thanh tiêu đề thì thanh tiêu đề mặc định là A…Z , AA…ZZ Ví dụ:

> IL := [1,x,exp(x),a^x, sin(x), cos(x), tan(x), cot(x)]:

> Maplets[Display]( Maplet( [

Trang 12

> BoxCell(Table( ["Ham so co ban", "Nguyen ham"], [seq( [i, int(

có thể dêt dàng khai thác đươc tiềm năng của phần mền này Trong maple có một phần nhỏ

là maplet, maplet là một mảng giúp cho những người dùng maple tự tạo nên các giao diện tính toán tùy theo yêu cầu của người sử dụng Mọi thao tác trên maplet giống như chúng ta đang làm việc với môi trường Window của máy tính vậy Trong phần này chúng tôi sẽ trình bày một số maplet về các vấn đề trong toán cao cấp của chương trình Đại học, bao gồm:

 Maplet ứng dụng trên Đại số tuyến tính

 Maplet ứng dụng trên phép tính vi tích phân hàm một biến

 Maplet ứng dụng trên phương trình vi phân Toán Lý

2 Giới thiệu tổng quan về một số maplet ứng dụng

2.1 Maplet ứng dụng trên Đại số tuyến tính

2.1.1 Maplet tính toán trên ma trận vuông

Maplet này cho phép người sử dụng tính toán trên ma trận vuông, bằng việc nhập vào một

ma trận sau đó thực hiện các phép toán điển hình như: Tính định thức ma trận, Hạng ma trận, Giá trị riêng, Vector riêng, Đa thức đặc trưng, Tính lũy thừa, Tìm ma trận

nghịchđảo, Đa thức tối tiểu và Chéo hóa ma trận

Hình ảnh minh họa:

Trang 13

Giao diện nhập ma trận.

Trang 14

Giao diện tính toán ma trận

Trang 15

else Maplets[Tools][Set](('ketqua')(value) = Determinant(A))

fi: end: DTDT := proc () if t = 0 then Thongbao() else Maplets[Tools][Set](('ketqua')(value)

Trang 16

gt := select(t-> type(t[1], realcons), LinearAlgebra[Eigenvectors](A, output = list))):

ok1 := is(sum(gt[k][2], k = 1 nops(gt)) = RowDimension(A)):

toán",'font'=Font(15),'foreground'="#FF3399"),

BoxCell(MathMLViewer['ketqua'](height=200

Trang 17

,background="#E8EEEE",foreground="#253BA3"),hscroll=always,vscroll=always)] )],

[BoxRow(border=true,background="#998B52",

Button("Nhập ma trận",foreground = red,background = green,Evaluate('function'='Nhap()')), Button("Hạng ma trận",foreground = red,background = green,Evaluate('function'='Hang()')), Button("Định thức", foreground = red,background = green,Evaluate('function'='Dinhthuc()')), Button("Đa thức đặc trưng ",foreground

[BoxRow(border = true, background = "#998B52",

Button("Luy Thừa",foreground = "#6632A7",background = "#0A9EB0",Evaluate('function'

Button("Xóa Dữ Liệu",foreground = "#6632A7",background = "#0A9EB0",

Action(SetOption(target = 'nhap', value = ""),SetOption(target = 'ketqua', value =

""),Evaluate('function' = 'Capnhat()')),

Button("Thoát",foreground = "#6632A7",background =

"#0A9EB0",Action(RunWindow('W2')))

)]]), MenuBar['MNB'](Menu("File", MenuItem("Exit Alt+F4",

Shutdown())),Menu("Help", MenuItem("Quick Help ", RunWindow('W3'))),

Window['W2']("Maplet-Tính toán trên Ma trận vuông thông báo:",[["Bạn thực sự muốn thoát khỏi hệ thống?"],[Button("Ok", Action(Evaluate('function' = 'Capnhat()'),

Shutdown())),Button("Cancel", CloseWindow('W2'))]]),

Window['W3']("Giới thiệu, trợ giúp",[["GIỚI THIỆU-TRỢ

GIÚP"],[TextBox['IB1'](background = "#BFE9E6",foreground = "#1015E9",10 40,editable

2.1.2 Maplet giải hệ phương trình tuyến tính

Maplet này được sử dụng giải hệ phương trình tuyến tính theo phép khử Gauss Việc nhập ma

Trang 18

trận vào tương tự như phần trên Ngoài nút nhập vào ma trận thì maplet cho ta hai thông tin khác đó là cho phép người dùng thấy được ma trận sau khi biến đổi theo phương pháp khử Gauss Ngoài ra nút nghiệm cho phép ta thấy được các ngiệm của hệ

Hình ảnh minh họa:

Giao diện về ma trận sau khi biến đổi Gauss

Trang 19

Giao diện cho thấy ngiệm của hệ phương trình

Giao diện trợ giúp

Trang 20

Thân chương trình:

restar; with(LinearAlgebra); with(Student[LinearAlgebra]): with(linalg): Thongbao:=proc()

Maplets[Display]( Maplet( AlertDialog(title="Maplet-Giải hệ phương trình tuyến tính thông báo!", " Bạn vui lòng nhập vào ma trận! ",

while true do A:=MatrixBuilder(C,2,5,square=false,sqrstatic=true,augmented=true,augstatic=true);

if RowDimension(A) # ColumnDimension(A)-1 then Maplets[Examples][Message]("Chu y ma tran suy rong <A|b>, A la ma tran vuong."); else

Trang 21

Maplets[Examples][Message]("He phuong trinh vo nghiem, Det(A)=0 !")

maplet:=Maplet('onstartup' = 'A1', Window['W1']("Maplet giai he - PP khu Gauss

",'menubar'='MNB' ,[Label("\\nGIẢI PHƯƠNG TRÌNH A.x=b BẰNG PHƯƠNG PHÁP KHỬ

GAUSS\\n",'font'=Font(16),'foreground'="#1E05E9", ), [BoxColumn(border=true, background

="#57E9CD", Label("Ma trân suy rộng",'foreground'=blue, 'font' = Font( bold, 12)),

MathMLViewer['nhap'](height=200, background="#E8EEEE",foreground="#253BA3") ),

BoxColumn(border=true,background ="#57E9CD", Label("K?t qu? tính toán",'foreground'=blue,

'font' = Font( bold, 12)),

MathMLViewer['kq'](height=200, background="#E8EEEE",foreground="#253BA3") )],

BoxRow(border=true, background ="#9EBA66",Button("Nhập Ma Trận",

Evaluate('function'='NhapMT()')), Button("Ma Trận Khử Gauss",Evaluate('function'='PPGausse()')),

Button("Nghiệm", Evaluate('function'='NghiemGauss()')),ưButton("Xoa Du Lieu",Action(

SetOption(target='nhap',value=""),

Evaluate('function'='Capnhat()'),

SetOption(target='kq',value=""))), Button("Thoát", Action(RunWindow('W2'))) ) ]),

MenuBar['MNB'](Menu("File", MenuItem("Exit Alt+F4",Shutdown())),

Menu("Help", MenuItem("Quick Help ",RunWindow('W3')),

Window['W2']("Maplet-Ma tran vuong thong bao:", [["Ban thuc su muon thoat khoi he thong?

"],[Button("Ok", Action(Evaluate('function'='Capnhat()'),Shutdown())),

Button("Cancel", CloseWindow('W2'))]] ),

Window['W3']"Giới thiệu-Trợ giúp",[["GIỚI THIỆU-TRỢ GIÚP”]

[TextBox['IB1'](background = "#BFE9E6" ,foreground = "#1015E9" ,10 40,editable = false,

+Giới thiệu

Họ và tên: Phan Văn Cương

Trường: Đại học Khoa Học Huế

Ngành: Toán tin Ứng Dụng

Lớp: Toán Tin K32

+Hướng dẫn sử dụng

Bạn nhấn vào Nhập Ma Trận, bạn sẽ thấy một giao diện chuên nhập ma trận hiện ra Trên đó bạn có

thể điều chỉnh các thông số theo ý ma trận mà bạn muốn nhập Thực hiện xong việc nhập bạn có thể

nhấn vào Ma Trận Khử Gauss để thấy được ma trận sau khi biến đổi đưa về dạng tam giác hoặc chọn

vào nút Nghiệm để biết được nghiệm của hệ

\n”)],

[Button("Thoát", Shutdown())]]),

Action['A1'](RunWindow('W1')):

Maplets[Display](maplet);

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

HÌNH ẢNH LIÊN QUAN

Hình ảnh minh họa: - Niên luận giới thiệu lập trình giao diện MAPLET TRONG MAPLE
nh ảnh minh họa: (Trang 18)
Hình ảnh minh  họa: - Niên luận giới thiệu lập trình giao diện MAPLET TRONG MAPLE
nh ảnh minh họa: (Trang 27)
Hình ảnh mình họa: - Niên luận giới thiệu lập trình giao diện MAPLET TRONG MAPLE
nh ảnh mình họa: (Trang 35)
Hình ảnh minh họa: - Niên luận giới thiệu lập trình giao diện MAPLET TRONG MAPLE
nh ảnh minh họa: (Trang 39)

TỪ KHÓA LIÊN QUAN

w