Symbolic: Demo C# gọi tới package trong maple

859 views
Skip to first unread message

do dinh Thu

unread,
Jan 29, 2013, 1:09:42 PM1/29/13
to ch_cn...@googlegroups.com, do dinh thu
Hi anh em,
Sau một hồi độ chế từ ConsoleApp ở:  http://www.mapleprimes.com/posts/38048-Using-OpenMaple-With-C
Mình cũng hoàn thành C# WinFormApp gọi tới proc được viết trong Maple. Hy vọng nó sẽ có ích cho anh em trong môn Symbolic này.


(Nghe đồn là sau thi vài ngày mình nộp bài thu hoạch cũng được để kịp hoàn thành.)

Chúc cả nhà thi tốt.
--
Đỗ Đình Thủ
Mobile: 0909 903 401
C# goi maple package.doc

Sang Nguyen Van

unread,
Jan 29, 2013, 3:29:39 PM1/29/13
to ch_cn...@googlegroups.com
Vô cùng cảm ơn bạn.
> --
> Bạn nhận được thư này vì bạn đã được đăng ký vào nhóm Google Groups
> "CH_CNTT_K6".
> Để hủy đăng ký nhóm này và ngừng nhận email từ nhóm, hãy gửi email tới
> ch_cntt_k6+...@googlegroups.com.
> Để có thêm tùy chọn, hãy truy cập https://groups.google.com/groups/opt_out.
>
>
>

huy trần

unread,
Jan 29, 2013, 6:04:31 PM1/29/13
to ch_cn...@googlegroups.com, do dinh thu
Tks bạn ^_^
Mình xem lại thông tin của khóa trước thì tiểu luận môn symbolic chỉ cần nộp file .mw cũng được rồi
Ai muốn làm thêm giao diện thì mới cần kết nối với c# hay java

Tong Vuu

unread,
Jan 29, 2013, 8:33:08 PM1/29/13
to ch_cn...@googlegroups.com
He he, muốn làm giao diện thì chơi trong file mw luôn. Hơi hạn chế nhưng cũng đủ dùng :)


Thank you & best regards,

Vưu Văn Tòng


YM: tongvuu
FB: https://facebook.com/soibac


Vào 06:04 Ngày 30 tháng 1 năm 2013, huy trần <ch11...@gm.uit.edu.vn> đã viết:
--

Tekaru Oka

unread,
Aug 23, 2014, 11:17:15 PM8/23/14
to ch_cn...@googlegroups.com, dodi...@gmail.com

Chào bạn,

Mình muốn kết nối C# với Maple dùng thư viện mà mình tạo ra. Ở đây chẳng hạn mình tạo thuvien.m và sử dụng thư mục Data kèm chung thư viện này. Mình đã test thử với file test.mw ở một thư mục dùng lệnh sau:

url := currentdir():
libname := libname, url:
with(thuvien);

Mọi thứ chạy đều ổn
Nhưng khi mình copy thuvien.m này vào thư mục lib cài đặt của maple để dùng cho C# và dùng lệnh sau trên C#:

MapleEngine.EvalMapleStatement(kv, Encoding.ASCII.GetBytes(“libname := libname,\”C:\\Program Files (x86)\\Maple 18\\lib\”:with(DIENMOTCHIEU);”);

Thử lệnh này cũng không được
openMaple.Run(“libname := libname,\”C:\\Program Files (x86)\\Maple 18\\lib\”:with(DIENMOTCHIEU);”);

Thì chương trình chạy một chút thì báo lỗi:

Error, (in with) user level initialization for package `thuvien’ failed: file or directory does not exist

Và sau đó vẫn hiện ra giao diện chương trình nhưng không dùng được file thuvien.m đó.
Nhưng theo hướng dẫn của bạn thì lại thực hiện được file TEST


On Wednesday, January 30, 2013 1:09:42 AM UTC+7, do dinh thu wrote:

do dinh Thu

unread,
Aug 26, 2014, 12:06:29 PM8/26/14
to Tekaru Oka, ch_cn...@googlegroups.com
Xin chào bạn!
Xin lỗi vì trả lời muộn, hôm nay mình mới xem email.

Về phần ct bạn viết mình thấy ngay từ đầu C# ko connect tới maple được rồi. Bản thân lệnh:
MapleEngine.EvalMapleStatement(kv, Encoding.ASCII.GetBytes(“libname := libname,\”C:\\Program Files (x86)\\Maple 18\\lib\”:with(DIENMOTCHIEU);”); hơi kỳ.
bạn so sánh lệnh mình viết:
MapleEngine.EvalMapleStatement(kv, Encoding.ASCII.GetBytes("with(DIENMOTCHIEU):")); //đâu có nói path làm gì.

Đính kèm là 3 class mình viết trong:
Dùng connect maple thì có 2 lớp: MapleEngine và OpenMaple. chủ yếu là làm đơn giản. 
Hàm OpenMaple.Open() sẽ connect, load thư viện DIENMOTCHIEU
Trong class thực thi ta khai báo: 
 public partial class MachDienForm : Form
    {
        //Tri thức
        public TriThuc tt;
    //....
        public OpenMaple openMaple;
    
        public MachDienForm()
        {
            InitializeComponent();
            tt = new TriThuc();
          
            //load Maple
            openMaple = new OpenMaple();
            openMaple.Open();
        }
Tới hàm muốn giải toán:
 //Giai toan
        private void giaiBaiMoi()
        {
            String expr = "ct:= " + Util.convertTapLuatToString(tt) + ":"
                        + "gt:= " + md.Inputs + ":"
                        + "kl := " + md.Outputs + ":"
                        + "lg := NewSuyDienTien(ct,gt, kl):"
                        + "lgtot := BoLuatThua(lg, gt, kl):"
                //        + "kq := XuatLoiGiaiString(lgtot, gt);";
                        + "XuatLoiGiai(lgtot, gt);";
            OpenMaple.myResult = "";
            openMaple.Run(expr);
            //ket qua tra ve tu maple la chuoi OpenMaple.myResult
        }

đơn giản chỉ là tạo string expr là một chuỗi kết thúc bằng ";". Reset biến trả về, gọi hàm Run:
openMaple.Run(expr)

lấy kết quả trả về là String trong OpenMaple.myResult.

Chúc bạn thành công.
--
*------------------------------------------------------------------------------------------*
* Đỗ Đình Thủ                                                                       *
* Mobile: 0909 903 401                                                          *
*------------------------------------------------------------------------------------------*
MachDienForm.cs
MapleEngine.cs
OpenMaple.cs
Reply all
Reply to author
Forward
0 new messages