Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
258,85 KB
Nội dung
Ngơn ngữ lập trình Avenue 1.Khái niệm Ngơn ngữ Avenue ( hay cịn gọi ngơn ngữ lập trình Avenue) ngơn ngữ kịch có tính chun dụng hướng đối tượng tích hợp hồn tồn với ArcView công việc làm chạy tảng mà ArcView có sẵn; Với ngơn ngữ Avenue sử dụng để tùy chỉnh cách làm việc với ArcView; hướng dẫn ArcView thực nhiệm vụ cụ thể mà cần làm; chí phát triển ứng dụng hoàn chỉnh mà hoạt động với giao diện người dùng đồ họa ArcView Một giải pháp nhanh chóng hiệu cho việc tiếp cận lập trình GIS Đi liền với phiên ArcView GIS, ngôn ngữ Avenue khơng cầu kỳ phức tạp, tỏ mạnh mẽ gần gũi người bước chân vào lĩnh vực lập trình GIS Nếu có mong muốn xây dựng cho ứng dụng GIS khơng q lớn, khơng địi hỏi mức độ chia liệu đa người dùng, ArcView GIS kết hợp với Avenue lựa chọn tốt cho Những người khai thác phần mềm ArcView áp dụng lĩnh vực khác nhau, quốc gia khác Với thành phần có sẵn, ta làm việc với ngơn ngữ lập trình Avenue ArcView ta khơng cần biết cách người ta xây dựng thực nên thành phần có sẵn ArcView, mà cần biết thành phần có chức gì, hoạt động đem thành phần lắp ráp lại với tạo nên ứng dụng theo ý muốn Cách thức hoạt động Avenue ngôn ngữ kịch hướng đối tượng Sự nhấn mạnh Avenue, giống tất hệ thống định hướng đối tượng, xác định đối tượng sau gửi lệnh Chúng ta nghĩ đối tượng gói bao gồm liệu kết hợp chặt chẽ chức Chúng ta tương phản điều với thực tiễn lập trình thủ tục ngơn ngữ đặt trọng tâm vào chức (thủ tục) Ngơn ngữ lập trình Avenue Trong Avenue, thay gọi hàm cách rõ ràng với đối số, gửi lệnh đến đối tượng Khi đối tượng nhận lệnh thực số hành động Các đối tượng ArcView thành viên hệ thống phân cấp lớp tổ chức thành loại chức liên quan đến tất khía cạnh ứng dụng Chúng ta sử dụng ngôn ngữ Avenue để tổ chức cấu trúc lệnh Lệnh đối tác Avenue gọi chức truyền thống Một gọi chức việc thực tương ứng một-một, lệnh kích hoạt số số phương pháp Lệnh xác định thể lớp cho phương thức định thực Do đó, lập trình Avenue bao gồm lệnh đối tượng viết thay gọi hàm Bằng cách gửi lệnh tới đối tượng, kích hoạt phương thức phù hợp với lớp mà đối tượng cá thể Một đối tượng Avenue trả lời lệnh cách trả lại đối tượng; số trường hợp, lệnh tạo đối tượng trường hợp khác, lệnh ban đầu trả đối tượng có Trong ngôn ngữ thủ tục, viết code bao gồm việc thiết lập thói quen gọi thói quen khác Chúng ta trì trạng thái chương trình biến (các loại cấu trúc, với phạm vi toàn cầu địa phương) thông lệ hoạt động trạng thái biến Trong Avenue, trì kiểm soát trạng thái hệ thống đối tượng khởi tạo Ngơn ngữ lập trình Avenue Các lệnh Avenue cho phép tạo, kiểm sốt nhận thơng tin đối tượng Mỗi lớp Avenue cung cấp lệnh hoạt động lớp thể lớp Các phương thức kích hoạt lệnh cụ thể cho lớp Tổng quan ngơn ngữ Avenue +Đặc điểm ngơn ngữ lập trình Avenue Ngơn ngữ lập trình Avenue ngôn ngữ kịch (script) hướng đối tượng Ngơn ngữ lập trình Avenue khơng có tính nhạy cảm Ngơn ngữ lập trình Avenue ngơn ngữ biên dịch Ngơn ngữ lập trình Avenue khơng hỗ trợ đệ quy Ngơn ngữ lập trình Avenue khơng cho phép tạo hay sửa đổi lớp có sẵn ArcView Các kịch Avenue thực thi bên ArcView Các biểu thức Avenue thực thi theo chiều từ trái qua phải độ ưu tiên tốn tử Cho phép liên kết với ngơn ngữ lập trình khác thơng qua việc gọi *.DLL *.exe +Chức Avenue Thay đổi giao diện ArcView GIS Tương tác với đồ, lớp liệu Làm việc với bảng liệu Lập trình giao diện Phân phối ứng dụng thông qua extension Liên kết ứng dụng, kết hợp với ngơn ngữ lập trình khác VB, VC++ Cấu trúc ngôn ngữ Avenue 4.1.Các kiểu đối tượng liệu Ngơn ngữ lập trình Avenue Kiểu đối tượng số Avenue gồm chung số nguyên, thực vào lớp chung để quản lý gọi lớp số học Avenue hỗ trợ khái niệm số Null, Null đối tượng kiểu số có giá trị Null Giá trị Null sinh ta thực tác vụ số học khơng Ví dụ: 9.sqrt ‘sẽ trả giá trị Null Giá trị Null tham gia biểu thức biểu thức trả kết Null Ví dụ: 1.3*7 + Định dạng số Lớp số học, Script đối tượng số Avenue cung cấp thuộc tính Format cho phép ta điều khiển đầu chuỗi dạng số Avenue dùng chữ d để quy ước số lượng chữ số chuỗi đầu Ví dụ: aNumber.SetFormat(“d.dd” ): Định dạng chuỗi cho cho đối tượng số aNumber chữ số bên trái có hai chữ số bên phải Number.SetDefFormat(“d.dd”): Định dạng chuỗi số cho tất đối tượng số project có dạng “d.dd” aScript.SetNumberFormat(“d.dd”): Định dạng chuỗi số cho tất đối tượng số script có dạng “d.dd” Khi thực thi, đối tượng số kiểm tra định dạng nó, sau tới script chứa nó, project chứa nó, cuối dạng hệ thống Để bỏ định dạng số cho đối tượng số ta truyền vào chuỗi format (“”) rỗng Ví dụ: aNumber.SetFormat(“”) Một số lệnh lớp số học tóm tắt bảng sau Ngơn ngữ lập trình Avenue Tên lệnh Astring Kiểu trả String MakeRandom(min,max ) Number Round Number Sprt Number Ý nghĩa Chuyển số sang chuỗi Lấy số khoảng từ tới max Làm tròn dạng số nguyên Lấy bậc số Ví dụ: 1234.56.AsString - Kết trả chuỗi “1234.56” Round(123.345) - Kết trả 123 Sqrt(16) - Kết trả Kiểu đối tượng String Avenue quản lý chuỗi thông qua lớp String Một chuỗi đặt dấu “” Ví dụ: “abc” hay “60CNTT-1” Một chuỗi có ký tự đặc biệt ký tự xuống hàng ‘nl’, dấu tab ‘tab’, ‘cr’ Ví dụ: “Xin chao” + nl + “ 60CNTT-1” + Đếm kí tự chuỗi Ta dùng lệnh Count để xác định số lượng ký tự chuỗi Ví dụ: T=“60CNTT-1”.Count - T có giá trị + Phép kết nối chuỗi Ngôn ngữ lập trình Avenue Để nối hai chuỗi ta dùng kí tự ‘+’ hay ‘++’ Ví dụ: s = “Xin chao” + “ 60CNTT-1” - kết cho ta chuỗi s “Xin chao 60CNTT-1” + Phép so sánh chuỗi Ta dùng tốn tử =, , = để so sánh hai chuỗi Trong Avenue không phân biệt chữ hoa chữ thường Ví dụ: if (“no” = “NO”) then … end if ( điều kiện) then End Là Câu lệnh có điều kiện Avenue, lệnh ta tìm hiểu kỹ phần lệnh Avenue Lệnh Contains cho phép ta kiểm tra chuỗi có nằm chuỗi cho trước Ví dụ: S=“abc de fg”.Contains(“de”) - S trả true chuỗi de chuỗi “abc de fg” + Phép chuyển đổi chuỗi Lệnh AsNumber cho phép ta chuyển chuỗi sang số, để thực lệnh ta phải thực lệnh IsNumber trước nó, lệnh IsNumber trả true AsNumber thực Ví dụ: S=“8.7” Ngơn ngữ lập trình Avenue If (S.IsNumber) then T=S.AsNumber End Output : T=8.7 + Các phép thực thi chuỗi Lệnh s.Left(n) trả chuỗi có số lượng ký tự n ký tự bên trái chuỗi s Lệnh s.Right(n) trả chuỗi có số lượng n ký tự bên phải chuỗi s Lệnh s.Middle(Offset,nCh) trả chuỗi có nCh ký tự vị trí Offset Lệnh s.UCase, s.LCase chuyển chuỗi s sang dạng chữ hoa hay chữ thường Ví dụ: T=”Xin chao”.Left(3) - T “Xin” T=”Xin chao”.UCase - T “XIN CHAO” Kiểu đối tượng Pattern Patten String có dùng thêm ký tự rút ngắn để biễu diễn, ký tự ‘*’ ký tự ‘?’ Ký tự ‘*’ biểu diễn cho rỗng hay nhiều ký tự, ký tự ‘?’ biểu diễn cho ký tự Ví dụ: P=“Yes*”.AsPattern S=“Yes, I say” Phép so sánh P=S cho kết True Dùng dấu ‘\’ ta biểu diễn cho ký tự ‘*’ Ngơn ngữ lập trình Avenue Ví dụ: “\*” - chuỗi có dấu ‘*’ P=“\*”.AsPattern S1=“*” S2=“a” Phép so sánh P=S1 có giá trị True Phép so sánh P=S2 có giá trị False + Kiểu đối tượng Logic Logic class Boolean có hai giá trị thuộc nó: True False Một số lệnh class Boolean tóm tắt bảng sau: Tên lệnh AsString Kiểu trả String And Boolean Not Boolean Or Boolean Xor Boolean Ví dụ: T=True.Astring - T =“True” P=True S=False T=P And S - T=False Ý nghĩa Chuyển giá trị True hay False sang chuỗi Phép And hai giá trị kiểu Boolean Phép Not giá trị kiểu Boolean Phép Or hai giá trị kiểu Boolean Phép Xor hai giá trị kiểu Boolean Ngôn ngữ lập trình Avenue T=P Or S - T=True Kiểu đối tượng Nil Class Nil có giá trị thuộc nil Trong Avenue ta hay dùng giá trị nil để số lệnh khơng trả giá trị Ví dụ: t=av.FindDoc(“View1”) if (t=nil) then msgbox.info(“Khong tim duoc View1”,”Thong bao”) end Đoạn chương trình in thơng điệp “Khong tim duoc View1” project thời ta khung nhìn có tên View1 av đối tượng ứng dụng ArcView, đối tượng ta tìm hiểu phần số lớp đối tượng Avenue Msgbox lớp cho phép ta thực hiển thị thơng điệp lên hình, lớp ta tìm hiểu phần số lớp đối tượng Avenue List – Danh sách List tập hợp có thứ tự đối tượng chứa Các đối tượng chứa sách dạng Mỗi đối tượng danh sách gọi phần tử, vị trí phần tử xác định thông qua số Chỉ số danh sách luôn Chỉ số cuối danh sách List.Count -1 Ví dụ: alist={1, 5, ”a”, ”hello world”} ‘ danh sách alist có phần tử Ngơn ngữ lập trình Avenue blist={6 , alist, “nice” } ‘ danh sách blist có phần tử mà phần tử thứ hai list f = alist.Get(0) ‘ lấy phần tử danh sách alist, f có giá trị l = alist.Get(alist.Count-1) ‘ lấyphần tử cuối danh sách alist, l có giá trị “hello world” Để duyệt phần tử danh sách ta hay dùng vịng lặp for Ví dụ: For each i in alist Msgbox.info(i.AsString, “Phan tu”) End For i=0 to alist.Count-1 Msgbox.info(alist.Get(i).AsString,“Phan tu”) End Lệnh for dạng câu lệnh lặp Avenue, ta tìm hiểu lệnh phần câu lệnh Avenue Ta thực phép ‘+’, ‘-’ danh sách Ví dụ: alist={1 ,2 ,4, 5} blist={3, 4, 6, 7} clist=alist + blist Output: clist={1,2,4,5,3,4,6,7} dlist=alist-blist Ngơn ngữ lập trình Avenue T: True F: False Phép toán And: A T T F F B T F T F A And B T F F F B T F T F A Or B T T T F B T F T F A And B F T T F Phép toán Or: A T T F F Phép toán Xor: A T T F F Phép toán Not A T F 2.3.Biến phạm vi biến Not A F T Ngơn ngữ lập trình Avenue Tên biến Avenue ký tự chữ ký tự số khơng có ký tự đặc biệt Ví dụ: a, b, myList, myView, _aDoc Trong Avenue có loại biến, biến cục biến toàn cục Biến cục biến có phạm vi hoạt động script Biến tồn cục biến có phạm vi hoạt động tất script, tên biến viết bắt đầu dấu “_” Ví dụ: _alist, _aname Khi ta không muốn lưu lại giá trị biến toàn cục ta gọi lệnh ClearGlobals để xố giá trị biến tồn cục Ví dụ: av.ClearGlobals Trong Avenue ta khơng cần phải khai báo biến, biến gán cho đối tượng Avenue tự động hiểu biến có kiểu kiểu đối tượng gán Ví dụ: a=nil - biến a có kiểu nil a=List.make - biến a có kiểu List a gán cho đối tượng danh sách tạo 4.4 Các Câu lệnh Câu lệnh gán Câu lệnh gán có dạng: biến = đối tượng Một biến gán cho đối tượng Ví dụ: a=5 - gán cho biến a giá trị Ngôn ngữ lập trình Avenue myView=av.FindDoc(“View1”) - gán đối tượng khung nhìn View1 cho biến myView Câu lệnh điều kiện Câu lệnh điều kiện có ba dạng Dạng if(biểu thức logic 1) then khối lệnh end Ví dụ: if ( i