Bài giảng Maple - Bài 7 Lập trình trong Maple

Sự định giá biến tòan cục… Maple tiến hành định giá biến tòan cục một lần duy nhất khi gặp nó. Sự định giá này dựa trên “trạng thái hiện tại” của thủ tục.

ppt24 trang | Chia sẻ: truongthinh92 | Lượt xem: 2156 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Maple - Bài 7 Lập trình trong Maple, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH TRONG MAPLEThủ tụcPROCEDUREThủ tục (procedure) là một khái niệm “phổ biến” trong các ngôn ngữ lập trình.Thủ tục cho phép tạo ra những đọan chương trình có tính tùy biến cao (có thể tái sử dụng ở nhiều nơi).Làm dễ hơn việc lập trình và gỡ rối. (chia để trị devide to conquer) Khai báo một thủ tụcprocedure_name:= proc(parameter_sequence) [local local_sequence] [global global_sequence] [options options_sequence] statements_sequence;end proc;Giải thích Parameter_sequenceParameter_sequence :Một dãy các kí hiệu ngăn cách bởi dấu phẩy .Tên các tham biến truyền cho chương trình.squareSum:= proc(x,y) end proc;Giải thích local_sequenceLocal_sequence:Là một dãy các tên.Khai báo các biến cục bộ cho thủ tục.Các biến này chỉ có họat vi cục bộ. (chỉ có thể được truy cập bên trong thủ tục)Giải thích Global-sequenceGlobal-sequence:Là một dãy gồm các biến tòan cục.Các biến tòan cục cho thể sử dụng bên ngòai thủ tục. Viết một thủ tục kiểm tra xem một danh sách chỉ tòan là số???Viết một thủ tục kiểm tra xem một danh sách chỉ tòan là số???Nếu đúng thì tính tổng bình phương các phần tử.Viết chương trình bỏ qua các phần tử không phải là số Tính tổng của một ListViết chương trình:Bỏ qua các phần tử không có dạng số.Tính tổng các phần tử của một List.Ví dụViết một thủ tục kiểm tra mục x có phải là phần tử của danh sách hay không?Nếu có thì là phần tử thứ mấy?Ví dụTính các đa thức Chebyshev.Các đa thức Chebyshev xác định như sau: T(0)=1,T(1)=x T(n)=2xT(n-1) – T(n-2)Ví dụViết chương trình hóan vị một cách tùy ý các phần tử của một list.Biến tòan cục Được khai báo với từ khóa global bên trong một thủ tục.Có phạm vi (scope-tầm phủ sóng) cả bên ngòai thủ tục. Biến tòan cục Ví dụ: > myProc := proc() global a; a:=10; printf("Gia tri a ben trong myProc:%d",a); end proc; myProc(); #goi thu tuc myProc printf("Gia tri cua a ben ngoai myProc:%d",a);Biến cục bộNằm bên trong một thủ tục và được khai báo với từ khóa local.Chỉ có họat vi-phạm vi(scope) cục bộ bên trong thủ tục.Biến cục bộVí dụ:> restart;> myProc := proc() local a; a:=x^2+x+1; printf("Gia tri a ben trong myProc:%a",a); end proc; myProc(); #goi thu tuc myProc printf("Gia tri cua a ben ngoai myProc:%a",a);Nhắc lại sự định giá biến && biểu thức > restart;> z:=y; y:=t; t:=x^2 + 5*x -12;y,z,t là các biến lập trình.x là biến toán học.Ví dụyztVí dụ> z;> y;> t;> x; xQuá trình định giá biểu thứcz+xy+xt+xSự định giá biến tòan cụcMaple tiến hành định giá biến tòan cục một lần duy nhất khi gặp nó.Sự định giá này dựa trên “trạng thái hiện tại” của thủ tục.Ví dụ 1> myProc := proc() local x; global p; p:=x^2 + x +1; x:=2; print(p); end proc;myProc();> myProc := proc() local x; global p; p:=x^2 + x +1; print(p); x:=2: end proc;myProc();Truyền tham sốTham số trong Maple được truyền theo kiểu tham biến.Dùng tham biến để trả lại kết quả tính tóan. Tạo các thủ tục tùy biến hơnirem(a,b,’quot’); irem(a,b);Dùng nargs (number of arguments) để tạo ra những thủ tục tương tự irem. Đệ qui trong MapleMột thủ tục gọi chính nó.Nên tránh dùng khi có thể.

Các file đính kèm theo tài liệu này:

  • pptmaple_baiso7_laptrinhtrongmapple1_3911.ppt