1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình phân tích khả năng ứng dụng đối tượng dữ liệu mang bộ mô tả kiểu động p9

5 10 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • NGÔN NGỮ LẬP TRÌNH

    • ĐẠI HỌC CẦN THƠ - 12/2003

      • MỤC ĐÍCH YÊU CẦU

      • ĐỐI TƯỢNG SỬ DỤNG

      • NỘI DUNG CỐT LÕI

      • KIẾN THỨC TIÊN QUYẾT

      • DANH MỤC TÀI LIỆU THAM KHẢO

      • 1.1 TỔNG QUAN

        • 1.1.1 Mục tiêu

        • 1.1.2 Nội dung cốt lõi

        • 1.1.3 Kiến thức cơ bản cần thiết

      • 1.2 KHÁI NIỆM VỀ NGÔN NGỮ LẬP TRÌNH

      • 1.3 VAI TRÒ CỦA NGÔN NGỮ LẬP TRÌNH

      • 1.4 LỢI ÍCH CỦA VIỆC NGHIÊN CỨU NNLT

        • 1.4.1 Cho phép lựa chọn một NNLT phù hợp với dự án thực tế

        • 1.4.2 Sử dụng một cách có hiệu quả các công cụ của ngôn ngữ

        • 1.4.3 Làm tăng vốn kinh nghiệm khi xây dựng các chương trình

        • 1.4.4 Tạo sự dễ dàng để học một ngôn ngữ mới

        • 1.4.5 Tạo tiền đề để thiết kế một ngôn ngữ mới

      • 1.5 CÁC TIÊU CHUẨN ÐÁNH GIÁ MỘT NGÔN NGỮ LẬP TRÌNH TỐT

        • 1.5.1 Tính dễ đọc

        • 1.5.2 Tính dễ viết

        • 1.5.3 Ðộ tin cậy

        • 1.5.4 Chi phí

      • 1.6 CÂU HỎI ÔN TẬP

      • 2.1 TỔNG QUAN

        • 2.1.1 Mục tiêu

        • 2.1.2 Nội dung cốt lõi

        • 2.1.3 Kiến thức cơ bản cần thiết

      • 2.2 ÐỐI TƯỢNG DỮ LIỆU

        • 2.2.1 Khái niệm đối tượng dữ liệu

        • 2.2.2 Các loại ÐTDL

        • 2.2.3 Thuộc tính của ÐTDL

        • 2.2.4 Giá trị dữ liệu

        • 2.2.5 Thời gian tồn tại

        • 2.2.6 Các mối liên kết

      • 2.3 BIẾN VÀ HẰNG

        • 2.3.1 Biến

        • 2.3.2 Hằng

      • 2.4 KIỂU DỮ LIỆU

        • 2.4.1 Ðịnh nghĩa kiểu dữ liệu

        • 2.4.2 Sự đặc tả kiểu dữ liệu

          • Phép toán

        • 2.4.3 Sự cài đặt kiểu dữ liệu

      • 2.5 SỰ KHAI BÁO

        • 2.5.1 Khái niệm khai báo

        • 2.5.2 Mục đích của sự khai báo

      • 2.6 KIỂM TRA KIỂU VÀ BIẾN ÐỔI KIỂU

        • 2.6.1 Khái niệm kiểm tra kiểu

        • 2.6.2 Kiểm tra kiểu động

        • 2.6.3 Kiểm tra kiểu tĩnh

      • 2.7 CHUYỂN ÐỔI KIỂU

      • 2.8 GÁN VÀ KHỞI TẠO

        • 2.8.1 Phép gán

        • 2.8.2 Sự khởi tạo biến

      • 2.9 CÂU HỎI ÔN TẬP

      • 3.1 TỔNG QUAN

        • 3.1.1 Mục tiêu

        • 3.1.2 Nội dung cốt lõi

        • 3.1.3 Kiến thức cơ bản cần thiết

      • 3.2 ÐỊNH NGHĨA KIỂU DỮ LIỆU SƠ CẤP

      • 3.3 SỰ ÐẶC TẢ CÁC KIỂU DỮ LIỆU SƠ CẤP

        • 3.3.1 Thuộc tính của kiểu dữ liệu sơ cấp

        • 3.3.2 Giá trị của kiểu dữ liệu sơ cấp

        • 3.3.3 Phép toán trên kiểu dữ liệu sơ cấp

      • 3.4 CÀI ÐẶT CÁC KIỂU DỮ LIỆU SƠ CẤP

        • 3.4.1 Tổ chức dữ liệu trong bộ nhớ

        • 3.4.2 Cài đặt phép toán

      • 3.5 KIỂU DỮ LIỆU SỐ

        • 3.5.1 Số nguyên

          • Sự đặc tả

          • Sự cài đặt

        • 3.5.2 Miền con của số nguyên

          • Sự đặc tả

          • Sự cài đặt

          • Lợi ích của việc sử dụng kiểu miền con

        • 3.5.3 Số thực dấu chấm động

          • Sự đặc tả

          • Sự cài đặt

      • 3.6 KIỂU LIỆT KÊ

        • 3.6.1 Đặt vấn đề

        • 3.6.2 Sự đặc tả

        • 3.6.3 Sự cài đặt

        • 3.6.4 Lợi ích của việc sử dụng kiểu liệt kê

      • 3.7 KIỂU LOGIC

        • 3.7.1 Sự đặc tả

        • 3.7.2 Phép cài đặt

      • 3.8 KIỂU KÝ TỰ

        • 3.8.1 Sự đặc tả

        • 3.8.2 Phép cài đặt

      • 3.9 CÂU HỎI ÔN TẬP

      • 4.1 TỔNG QUAN

        • 4.1.1 Mục tiêu

        • 4.1.2 Nội dung cốt lõi

        • 4.1.3 Kiến thức cơ bản cần thiết

      • 4.2 ÐỊNH NGHĨA KIỂU DỮ LIỆU CÓ CẤU TRÚC

      • 4.3 SỰ ÐẶC TẢ KIỂU CẤU TRÚC DỮ LIỆU

        • 4.3.1 Sự đặc tả các thuộc tính

          • Số lượng phần tử

          • Tên để dùng cho các phần tử được lựa chọn

          • Số lượng lớn nhất các phần tử

          • Tổ chức cấu trúc

        • 4.3.2 Các phép toán trên cấu trúc dữ liệu

          • Phép toán lựa chọn phần tử của cấu trúc

          • Các phép toán thao tác trên toàn bộ cấu trúc dữ liệu

          • Thêm / bớt các phần tử

          • Tạo / hủy CTDL

      • 4.4 SỰ CÀI ÐẶT CÁC CẤU TRÚC DỮ LIỆU

        • 4.4.1 Biểu diễn bộ nhớ

          • Biểu diễn tuần tự

          • Biểu diễn liên kết

        • 4.4.2 Cài đặt các phép toán trên cấu trúc dữ liệu

          • Ðối với biểu diễn tuần tự

          • Ðối với biểu diễn liên kết

      • 4.5 VÉCTƠ

        • 4.5.1 Định nghĩa véctơ

        • 4.5.2 Sự đặc tả và cú pháp

          • Đặc tả thuộc tính của véctơ

          • Đặc tả các phép toán trên véctơ

        • 4.5.3 Cài đặt một véctơ

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiện các phép toán

      • 4.6 MẢNG NHIỀU CHIỀU

        • 4.6.1 Sự đặc tả và cú pháp

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.6.2 Sự cài đặt

          • Sự biểu diễn bộ nhớ

          • Giải thuật thực hiện phép toán

      • 4.7 MẨU TIN

        • 4.7.1 Định nghĩa mẩu tin

        • 4.7.2 Sự đặc tả và cú pháp

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.7.3 Sự cài đặt

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiên phép toán

      • 4.8 MẨU TIN CÓ CẤU TRÚC THAY ÐỔI

        • 4.8.1 Ðặc tả và khai báo

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.8.2 Cài đặt mẩu tin có cấu trúc thay đổi

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiện phép toán

      • 4.9 CHUỖI KÝ TỰ:

        • 4.9.1 Ðặc tả và cú pháp:

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.9.2 Cài đặt

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiện các phép toán

      • 4.10 CẤU TRÚC DỮ LIỆU CÓ KÍCH THƯỚC THAY ÐỔI

        • 4.10.1 Danh sách và cấu trúc danh sách

        • 4.10.2 Ngăn xếp và hàng đợi

      • 4.11 CON TRỎ

        • 4.11.1 Cấp phát tĩnh, cấp phát động và con trỏ

        • 4.11.2 Sự đặc tả

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.11.3 Sự cài đặt

          • Ðịa chỉ tuyệt đối

          • Ðịa chỉ tương đối

      • 4.12 TẬP HỢP

        • 4.12.1 Ðặc tả

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.12.2 Cài đặt

          • Véctơ bit

          • Bảng băm

      • 4.13 TẬP TIN

        • 4.13.1 Tập tin tuần tự

          • Sự đặc tả

          • Phép cài đặt

        • 4.13.2 Tập tin văn bản

        • 4.13.3 Tập tin truy xuất trực tiếp

      • 4.14 CÂU HỎI ÔN TẬP

      • 5.1 TỔNG QUAN

        • 5.1.1 Mục tiêu

        • 5.1.2 Nội dung cốt lõi

        • 5.1.3 Kiến thức cơ bản cần thiết

      • 5.2 SỰ PHÁT TRIỂN CỦA KHÁI NIỆM KIỂU DỮ LIỆU

      • 5.3 TRỪU TƯỢNG HÓA

        • 5.3.1 Khái niệm trừu tượng hóa

        • 5.3.2 Trừu tượng hóa quá trình

        • 5.3.3 Trừu tượng hóa dữ liệu

      • 5.4 ÐỊNH NGHĨA KIỂU

        • 5.4.1 Khái niệm

        • 5.4.2 Tính tương đương của các kiểu định nghĩa

      • 5.5 CÂU HỎI ÔN TẬP

      • 6.1 TỔNG QUAN

        • 6.1.1 Mục tiêu

        • 6.1.2 Nội dung cốt lõi

        • 6.1.3 Kiến thức cơ bản cần thiết

      • 6.2 ÐỊNH NGHĨA CHƯƠNG TRÌNH CON

        • 6.2.1 Ðặc tả chương trình con

        • 6.2.2 Cài đặt chương trình con

      • 6.3 CƠ CHẾ GỌI CHƯƠNG TRÌNH CON

        • 6.3.1 Ðịnh nghĩa và kích hoạt chương trình con

        • 6.3.2 Cài đặt định nghĩa và kích hoạt chương trình con

      • 6.4 CHƯƠNG TRÌNH CON CHUNG

      • 6.5 TRUYỀN THAM SỐ CHO CHƯƠNG TRÌNH CON

        • 6.5.1 Khái niệm truyền tham số

        • 6.5.2 Sự tương ứng giữa tham số tham số thực tế và tham số hình thức

        • 6.5.3 Các phương pháp truyền tham số tham số

          • Truyền bằng giá trị (transmission by value)

          • Truyền tham chiếu (transmission by reference)

          • Truyền bằng giá trị-kết quả (transmission by value-result)

          • Truyền bằng kết quả (transmission by result)

      • 6.6 CÂU HỎI ÔN TẬP

      • 7.1 TỔNG QUAN

        • 7.1.1 Mục tiêu

        • 7.1.2 Nội dung cốt lõi

        • 7.1.3 Kiến thức cơ bản cần thiết

      • 7.2 KHÁI NIỆM ÐIỀU KHIỂN TUẦN TỰ

      • 7.3 ÐIỀU KHIỂN TUẦN TỰ TRONG BIỂU THỨC

        • Ðặt vấn đề

        • 7.3.2 Sự biểu diễn theo cấu trúc cây của biểu thức

        • 7.3.3 Cú pháp của biểu thức

          • Ký hiệu tiền tố (prefix)

          • Ký hiệu hậu tố (postfix)

          • Kí hiệu trung tố (infix)

        • 7.3.4 Dịch biểu thức thành biểu diễn cây

        • 7.3.5 Biểu diễn trong thời gian thực hiện của biểu thức

      • 7.4 ÐIỀU KHIỂN TUẦN TỰ GIỮA CÁC LỆNH

        • 7.4.1 Các lệnh cơ bản

        • 7.4.2 Điều khiển tuần tự dùng nhãn lệnh và lệnh GOTO

        • 7.4.3 Các lệnh cấu trúc

          • Lệnh hợp thành (Compound Statements)

          • Lệnh điều kiện (Conditional Statements)

          • Lệnh lặp (Interation Statements)

      • 7.5 SỰ NGOẠI LỆ VÀ XỬ LÝ NGOẠI LỆ

        • 7.5.1 Một số khái niệm

        • 7.5.2 Xử lý ngoại lệ

        • 7.5.3 Ðề xuất một ngoại lệ

        • 7.5.4 Lan truyền một ngoại lệ (Propagating an exception)

        • 7.5.5 Sau khi một ngoại lệ được xử lý

      • 7.6 CÂU HỎI ÔN TẬP

      • 8.1 TỔNG QUAN

        • 8.1.1 Mục tiêu

        • 8.1.2 Nội dung cốt lõi

        • 8.1.3 Kiến thức cơ bản cần thiết

      • 8.2 NGÔN NGỮ LẬP TRÌNH HÀM

        • 8.2.1 Giới thiệu

        • 8.2.2 Hàm toán học

        • 8.2.3 Dạng hàm

        • 8.2.4 Bản chất của ngôn ngữ lập trình hàm

      • 8.3 NGÔN NGỮ LISP

        • 8.3.1 Giới thiệu:

        • 8.3.2 Các khái niệm cơ bản

          • Nguyên tử (atom)

          • Danh sách

          • Biểu thức

        • 8.3.3 Các hàm

          • Một số hàm định nghĩa trước

          • Hàm do người lập trình định nghĩa

        • 8.3.4 Ðệ quy

        • 8.3.5 Các hàm nhập xuất

        • 8.3.6 Biến toàn cục và biến cục bộ

          • Biến toàn cục

          • Biến cục bộ

          • Biến cục bộ che biến toàn cục

        • 8.3.7 Hướng dẫn sử dụng LISP

          • Sử dụng XLISP

          • Soạn thảo tập tin chương trình

          • Nạp hàm tự định nghĩa cho XLISP

          • Một số thông báo lỗi thường gặp

          • - Unbound function: Hàm không có.

          • - Bad function: Hàm sai.

          • - Too many arguments: Thừa tham số.

          • - Too few arguments: Thiếu tham số.

          • - Misplaced close paren: Thừa dấu ngoặc đóng/ Thiếu dấu ngoặc mở.

          • - EOF reached beore expression end: Thừa dấu ngoặc mở/ Thiếu dấu ngoặc đóng.

          • - Not a number: Đối số của hàm phải là một số.

          • - Bad argument type: Kiểu của tham số sai.

      • 9.1 TỔNG QUAN

        • 9.1.1 Mục tiêu

        • 9.1.2 Nội dung cốt lõi

        • 9.1.3 Kiến thức cơ bản cần thiết

      • 9.2 GIỚI THIỆU VỀ LẬP TRÌNH LOGIC

      • 9.3 NGÔN NGỮ PROLOG

        • 9.3.1 Giới thiệu

        • 9.3.2 Các yếu tố cơ bản của Turbo Prolog

          • Đối tượng

          • Quan hệ giữa các đối tượng

          • Sự kiện và luật

        • 9.3.3 Cấu trúc của một chương trình Prolog

          • Phần Domains

          • Phần Predicates

          • Phần Clauses

          • Phần Goal

          • Một số ví dụ về chương trình prolog

        • 9.3.4 Các nguyên tắc của ngôn ngữ Prolog

          • Đồng nhất

          • Quay lui

        • 9.3.5 Bộ ký tự, từ khoá

        • 9.3.6 Các kiểu dữ liệu

          • Kiểu dữ liệu chuẩn

          • Các kiểu dữ liệu do người lập trình định nghĩa

        • 9.3.7 Các hàm xuất nhập chuẩn

          • Xuất ra màn hình

          • Nhập vào từ bàn phím

        • 9.3.8 Kỹ thuật đệ quy

Nội dung

Tham khảo tài liệu ''giáo trình phân tích khả năng ứng dụng đối tượng dữ liệu mang bộ mô tả kiểu động p9'', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

h a n g e Vi e y N c • Các hàm điều khiển - (IF E1 E2 E3) nhận vào biểu thức E1, E2 E3 Nếu E1 khác NIL hàm trả giá trị E2 ngược lại trả giá trị E3 - (IF E1 E2) tương đương (IF E1 E2 NIL) - Nếu E2 khác NIL (IF E1 E2 E3) tương đương (OR (AND E1 E2) E3) (COND (ÐK1 E1) (ÐK2 E2) (ÐKn En) [(T En+1)] ) Nếu ĐK1 khác NIL trả kết giá trị E1, ngược lại xét ĐK2 Nếu ĐK2 khác NIL trả kết giá trị E2, ngược lại xét ĐK3 Nếu ĐKn khác NIL trả kết giá trị En, ngược lại trả NIL trả kết giá trị En+1 (trong trường hợp ta sử dụng (T En+1)) - (PROGN E1 E2 En) nhận vào n biểu thức E1, E2, En Hàm định trị biểu thức E1, E2, En từ trái sang phải trả kết giá trị biểu thức En - (PROG1 E1 E2 En) nhận vào n biểu thức E1, E2, En Hàm định trị biểu thức E1, E2, En từ trái sang phải trả kết giá trị biểu thức E1 Hàm người lập trình định nghĩa Cú pháp định nghĩa hàm là: (defun ) Ví dụ 1: Ðịnh nghĩa hàm lấy bình phương số a (defun binh_phuong (a) (* a a) ) Sau nạp hàm cho LISP, ta sử dụng hàm định nghĩa trước >(binh_phuong 5) = 25 >(binh_phuong (+ 2)) = 49 Ví dụ 2: Ðịnh nghĩa hàm DIV chia số a cho số b, lấy phần nguyên 89 bu to k d o m o o c u -tr a c k w lic w w w d o Chương VIII: Lập trình hàm m C lic k to bu Ngơn ngữ lập trình w w w C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e y N c Trước hết ta có: a DIV b = (a – a MOD b)/b (defun DIV (a b) (/ (- a (MOD a b)) b) ) 8.3.4 Ðệ quy Một hàm đệ quy hàm có lời gọi biểu thức định nghĩa hàm Mơ tả đệ quy bao gồm: • Có trường hợp “dừng” để kết thúc việc gọi đệ quy • Lời gọi đệ quy phải bao hàm yếu tố dẫn đến trường hợp “dừng” Ví dụ 1: Viết hàm tính n giai thừa ⎧1 neu n = Cơng thức đệ quy tính n giai thừa n! = ⎨ ⎩ n * (n − 1)! Hàm (giai_thua N) viết ngôn ngữ LISP: (defun giai_thua (n) (if (= n 0) ; trường hợp “dừng” (* n (giai_thua (1- n))); n-1 yếu tố dẫn đến trường hợp dừng ) ; If ) Ví dụ 2: Viết hàm DIV chia a cho b lấy phần nguyên, viết đệ quy ⎧ neu a < b Công thức đệ quy: a DIV b = ⎨ ⎩1 + (a − b) DIV b Hàm (DIV a b) viết LISP: (defun DIV (a b) (if (< a b) ; Trường hợp “dừng” (1+ (DIV (- a b) b)); a-b yếu tố dẫn đến trường hợp dừng ) ; If ) Ví dụ 3: Viết hàm (phan_tu i L), nhận vào số nguyên dương i danh sách L Hàm trả phần tử thứ i danh sách L thông báo “không tồn tại” Công thức đệ quy: " Khong ton tai" neu DS L rong ⎧ ⎪ Phan tu thu i DS L = ⎨ Phan tu dau tien cua L neu i = ⎪Phan tu thu (i − 1) DS " duoi" cua L ⎩ Hàm (phan_tu i L) viết LISP: (defun phan_tu(i L) (cond ((Null L) “Khong ton tai”) ((= i 1) (car L)); trường hợp dừng thứ hai (T (phan_tu (1- i) (cdr L))) 90 bu to k d o m o o c u -tr a c k w lic w w w d o Chương VIII: Lập trình hàm m C lic k to bu Ngơn ngữ lập trình w w w C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e c u -tr a c k w y N c ) ; cond ) Trong chương trình trên, (null L) trường hợp “dừng” thứ nhất; (= i 1) trường hợp “dừng” thứ hai; (cdr L) yếu tố dẫn đến trường hợp “dừng” thứ (1- i) yếu tố dẫn đến trường hợp “dừng” thứ hai 8.3.5 Các hàm nhập xuất • (LOAD ) Nạp tập tin vào cho LISP trả T việc nạp thành công, ngược lại trả NIL Tên tập tin chuỗi kí tự bao gồm đường dẫn đến nơi lưu trữ tập tin Tên tập tin theo quy tắc DOS, nghĩa có tối đa ký tự phần tên ký tự phần mở rộng không chứa ký tự đặc biệt Ta sử dụng LOAD để nạp tập tin chương trình LISP trước gọi thực hàm định nghĩa tập tin Ví dụ: >(Load “D:\btlisp\bai1.lsp”) • (READ) Ðọc liệu từ bàn phím gõ phím Enter, trả kết liệu nhập từ bàn phím • (PRINT E) In hình giá trị biểu thức E, xuống dòng trả giá trị E • (PRINC E) In hình giá trị biểu thức E (khơng xuống dịng) trả giá trị E • (TERPRI) Ðưa trỏ xuống dòng trả NIL 8.3.6 Biến toàn cục biến cục Biến toàn cục Biến toàn cục (global variables) biến mà phạm vi tất hàm Biến tồn cục tự động giải phóng chương trình dịch LISP kết thúc • Hàm (SETQ ) Gán trị cho trả kết giá trị Ví dụ: >(setq x (* 3)) =6 > x ; biến x cịn tồn có giá trị 91 bu to k lic d o m o m w o d o Chương VIII: Lập trình hàm w w w w w C lic k to bu Ngôn ngữ lập trình C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c w y N O W ! PD k to bu Chương VIII: Lập trình hàm c =6 Biến cục Biến cục (local variables) biến mà phạm vi nằm hàm mà tạo Biến cục tự động giải phóng hàm tạo kết thúc • (LET ( (var1 E1) (var2 E2) (vark Ek)) Ek+1 En) Ta thấy hàm có phần: phần gán trị cho biến phần định trị biểu thức Gán trị biểu thức Ei cho biến cục vari tương ứng thực (PROGN Ek+1 En) Ví dụ: >(Let ((a 3) (b 5)) (* a b) (+ a b)) =8 > a ; biến a lúc giải phóng nên LISP thông báo lỗi error: unbound variable - A Biến cục che biến tồn cục Trong lập trình hàm, người ta hạn chế sử dụng biến, thật cần thiết nên sử dụng biến cục Tuy nhiên việc khai báo biến cục hàm LET gây khó khăn cho việc viết chương trình sử dụng biến tồn cục Để khắc phục tình trạng này, ta kết hợp hai hàm LET SETQ để sử dụng biến cục che biến toàn cục Cách làm sau: - Trong phần gán trị cho biến LET ta tạo biến gán cho giá trị bất kỳ, chẳng hạn số - Trong phần định trị biểu thức, ta sử dụng SETQ để gán trị cho biến tạo trên, biến biến cục khơng cịn tồn cục - Cụ thể viết: (LET ( (var E1)… ) …… (SETQ var E2) …… ) Với cách làm biến var hàm SETQ trở thành biến cục Ví dụ: Giả sử ta định nghĩa hàm (ptb2 a b c), giải phương trình bậc hai ax2+bx+c = Bây ta viết hàm (giai_ptb2) cho phép nhập hệ số a, b, c từ bàn phím gọi hàm (ptb2 a b c) để thực việc giải phương trình Có hai phương pháp để viết hàm Phương pháp 1: dùng biến toàn cục a, b, c (defun giai_ptb2 () (progn (print “Chương trình giải phương trình bậc hai“) 92 d o m o m w o c u -tr a c k h a n g e Vi e lic O W N y bu to k lic C Ngơn ngữ lập trình w w d o XC er w w w F- w C h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e y N c (princ “Nhập hệ số a: “) (setq a (read)) (princ “Nhập hệ số b: “) (setq b (read)) (princ “Nhập hệ số c: “) (setq c (read)) (ptb2 a b c) ) ) Sau thực chương trình này, biến tồn cục a, b c cịn Phương pháp 2: dùng biến cục d, e, f (defun giai_ptb2 () (let ((d 0) (e 0) (f 0)) (print “Chương trình giải phương trình bậc hai“) (princ “Nhập hệ số a: “) (setq d (read)) (princ “Nhập hệ số b: “) (setq e (read)) (princ “Nhập hệ số c: “) (setq f (read)) (ptb2 d e f) ) ) Sau thực chương trình này, biến cục d, e f giải phóng 8.3.7 Hướng dẫn sử dụng LISP Sử dụng XLISP XLISP trình thơng dịch, chạy hệ điều hành Windows Chỉ cần chép tập tin thực thi XLISP.EXE có dung lượng 288Kb vào máy tính bạn thực Để thực hàm, cần gõ trực tiếp hàm vào sau dấu chờ lệnh (>) XLISP Trong trường hợp khơng có dấu chờ lệnh, dùng menu Run/Top level Ctrl-C để làm xuất dấu chờ lệnh Việc định nghĩa hàm gõ trực tiếp vào sau dấu chờ lệnh Tuy nhiên cách làm khó sửa chữa hàm ta thường định nghĩa hàm tập tin chương trình, sau nạp vào cho XLISP để sử dụng Ta lưu trữ lại tình trạng làm việc hành vào tập tin WKS cách dùng menu File/Save workspace sau khơi phục lại cách dùng menu File/Restore workspace Soạn thảo tập tin chương trình Do XLISP khơng có cơng cụ để soạn thảo chương trình nên ta sử dụng Notepad để soạn thảo tập tin chương trình Trong tập tin chương trình ta định nghĩa nhiều hàm Lưu tập tin chương trình có tên theo quy định DOS (8.3) với phần mở rộng LSP để cặp dấu nháy kép 93 bu to k d o m o o c u -tr a c k w lic w w w d o Chương VIII: Lập trình hàm m C lic k to bu Ngôn ngữ lập trình w w w C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c ... chương trình Do XLISP khơng có cơng cụ để soạn thảo chương trình nên ta sử dụng Notepad để soạn thảo tập tin chương trình Trong tập tin chương trình ta định nghĩa nhiều hàm Lưu tập tin chương trình. .. trình hàm, người ta hạn chế sử dụng biến, thật cần thiết nên sử dụng biến cục Tuy nhiên việc khai báo biến cục hàm LET gây khó khăn cho việc viết chương trình sử dụng biến tồn cục Để khắc phục... “) (setq f (read)) (ptb2 d e f) ) ) Sau thực chương trình này, biến cục d, e f giải phóng 8.3.7 Hướng dẫn sử dụng LISP Sử dụng XLISP XLISP trình thơng dịch, chạy hệ điều hành Windows Chỉ cần

Ngày đăng: 08/05/2021, 17:53

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN