NỘI DUNG
• Mở đầu
• Kiểu dữ liệu
• Kiểu dữ liệu sơ cấp
• Kiểu dữ liệu có cấu trúc
• Kiểu do người dùng định nghĩa
• Chương trình con
• Ðiều khiển tuần tự
• Lập trình hàm
• Lập trình logic
              
                                            
                                
            
 
            
                 109 trang
109 trang | 
Chia sẻ: phuongt97 | Lượt xem: 591 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ập tin truy xuất trực tiếp: Có thể nhẩy đến 
truy xuất phần tử bất kỳ.
Nguyễn Văn Linh - Programming Languages - Chapter 7 76
CHƯƠNG 5: 
ĐIỀU KHIỂN TUẦN TỰ
Khái niệm về điều khiển tuần tự (ĐKTT).
ĐKTT trong biểu thức.
ĐKTT tự giữa các lệnh.
Ngoại lệ và xử lý ngoại lệ.
Nguyễn Văn Linh - Programming Languages - Chapter 7 77
KHÁI NIỆM 
ĐIỀU KHIỂN TUẦN TỰ
Tập hợp các quy tắc xác định thứ tự thực 
hiện trong chương trình.
ĐKTT trong biểu thức.
ĐKTT giữa các lệnh.
ĐKTT chương trình con.
ĐKTT ẩn.
ĐKTT tường minh.
Nguyễn Văn Linh - Programming Languages - Chapter 7 78
ĐIỀU KHIỂN 
TRONG BIỂU THỨC
Đặt vấn đề.
Biểu diễn biểu thức theo cấu trúc cây.
Cú pháp của biểu thức: Tiền tố, hậu tố và 
trung tố.
Trong biểu thức trung tố: Phải sử dụng tiền 
tố, nguyên tắc kết hợp, độ ưu tiên.
Dịch biểu thức thành biểu diễn cây.
Biểu diễn trong thời gian thực hiện.
Nguyễn Văn Linh - Programming Languages - Chapter 7 79
ĐIỀU KHIỂN TUẦN TỰ 
GIỮA CÁC LỆNH
Các lệnh cơ bản.
ĐKTT dùng nhãn lệnh và GOTO:
– GOTO không điều kiện.
– GOTO có điều kiện.
– Sử dụng GOTO để thực hiện các lệnh khác.
Các lệnh cấu trúc.
80
SỬ DỤNG GOTO 
ĐỂ THỰC HIỆN CÁC LỆNH
Hợp thành Lựa chọn Lặp
S0 S0 S0
GOTO L1 IF a=0 GOTO L1 L1: IF a=0 GOTO L2
L2: S2 S1 S1 
GOTO L3 GOTO L2 GOTO L1
L1: S1 L1: S2 L2: S2 
GOTO L2 L2: S3
L3: S3
Chuỗi lệnh thực hiện Chuỗi lệnh thực hiện Chuỗi lệnh thực hiện
S0 S1 S2 S3 S0 S2 S3 Hoặc S0 S2 hoặc
S0 S1 S3 S0 S1 S2 hoặc
S0 S1 S1 S2 hoặc
S0 S1 S1 S2 ....
Nguyễn Văn Linh - Programming Languages - Chapter 7 81
CÁC LỆNH CẤU TRÚC
Lệnh hợp thành.
Lệnh điều kiện: IF, CASE.
Lệnh lặp: WHILE, FOR, LOOP...
Nguyễn Văn Linh - Programming Languages - Chapter 7 82
NGOẠI LỆ VÀ
XỬ LÝ NGOẠI LỆ
Một số khái niệm.
Xử lý ngoại lệ.
Đề xuất một ngoại lệ.
Lan truyền ngoại lệ.
Sau khi một ngoại lệ được xử lý.
Nguyễn Văn Linh - Programming Languages - Chapter 7 83
MỘT SỐ KHÁI NIỆM
Ngoại lệ (exceptions): Sự cố đặc biệt.
Xử lý ngoại lệ: Gọi một chương trình con 
đặc biệt để xử lý các sự cố đó.
Đề xuất một ngoại lệ: Phát hiện sự kiện, 
ngắt sự thực hiện chương trình và chuyển 
điều khiển đến chương trình con xử lý ngoại 
lệ.
Nguyễn Văn Linh - Programming Languages - Chapter 7 84
XỬ LÝ NGOẠI LỆ (1)
Các ngoại lệ được định nghĩa trước bởi 
ngôn ngữ: ZERO_DIVIDE, 
OVERFLOW,...
Ví dụ:
Nguyễn Văn Linh - Programming Languages - Chapter 7 85
XỬ LÝ NGOẠI LỆ (2)
Ví dụ:
Public void Read_a_file () {
.......
try {
RandomAccessFile file = new
RandomAccessFile(pathname. “r”);
while (file.getFilePointer() < file.length())
{ .... }
}
Catch (Exception e)
{system.out.println(“Error...”+e.toString()); }
.....
}
Nguyễn Văn Linh - Programming Languages - Chapter 7 86
ĐỀ XUẤT MỘT NGOẠI LỆ
Đề xuất ẩn.
Đề xuất bởi người lập trình.
Nguyễn Văn Linh - Programming Languages - Chapter 7 87
LAN TRUYỀN NGOẠI LỆ
Một ngoại lệ có thể được đề xuất từ một chỗ và 
được xử lý tại một chỗ khác.
Lan truyền ngoại lệ từ điểm được đề xuất đến 
điểm được xử lý.
Giả sử có một ngoại lệ P được đề xuất trong 
chương trình con C. Nếu trong C không có một xử 
lý cho P thì C kết thúc và truyền ngoại lệ đến B 
(chương trình gọi C). Nếu trong B không có một 
xử lý.... Cuối cùng một xử lý của ngôn ngữ sé 
được gọi tới.
Nguyen Van Linh - Programing Language - Chapter 8 88
CHƯƠNG 6: 
LẬP TRÌNH HÀM
Ngôn ngữ lập trình hàm
• Giới thiệu.
• Hàm toán học.
• Dạng hàm.
• Bản chất của lập trình hàm.
Ngôn ngữ LISP
Nguyen Van Linh - Programing Language - Chapter 8 89
NGÔN NGỮ LISP
Giới thiệu.
Các khái niệm cơ bản.
Các hàm.
Đệ quy.
Biến toàn cục và biến cục bộ.
Các hàm nhập xuất.
Hướng dẫn sử dụng Lisp.
Nguyen Van Linh - Programing Language - Chapter 8 90
LISP: GIỚI THIỆU
Được J. MAC CARTHY viết năm 1958.
Phát triển mạnh vào đầu những năm 
80.
Cú pháp đơn gỉan.
Là một ngôn ngữ mạnh.
Mềm dẻo và dễ phát triển.
Áp dụng trong lĩnh vực trí tuệ nhân tạo.
Nguyen Van Linh - Programing Language - Chapter 8 91
CÁC KHÁI NIỆM CƠ BẢN
Nguyên tử (Atom): Số, kí hiệu.
Danh sách: Dã̃y có thứ tự các nguyên 
tử hoặc danh sách, nằm trong cặp dấu 
ngoặc đơn ().
Biểu thức và nguyên tắc lượng giá:
• Số.
• Ký hiệu.
• Danh sách.
Nguyen Van Linh - Programing Language - Chapter 8 92
HÀM ĐỊNH NGHĨA TRƯỚC
• Các hàm số học: +, -, *, /, 1+, 1-
• Các hàm so sánh: , =, =, eq.
• Các hàm thao tác trên danh sách: CAR, 
CDR, CONS và LIST.
• Các vị từ kiểm tra: (atom a), (numberp n), 
(listp l), (symbol s),...
• Các hàm logic AND, OR, NOT.
• Các hàm điều khiển IF, COND, PROGN, 
PROG1
Nguyen Van Linh - Programing Language - Chapter 8 93
HÀM DO NGƯỜI DÙNG 
ĐỊNH NGHĨA
Cú pháp:
(defun (Các tham số hình thức)
)
Ví dụ:
(defun binh_phuong (n)
(* n n)
)
(defun lap_phuong (n)
(* n (binh_phuong n))
)
Nguyen Van Linh - Programing Language - Chapter 8 94
ĐỆ QUY
Một trường hợp “nguyên tố” để 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 “nguyên tố”.
Ví du: Tính n giai thừa
(defun giai_thua (n)
(if (= n 0) 1 ; Trường hợp “nguyên tố”
(* n (giai_thua (1- n)))
)
)
Nguyen Van Linh - Programing Language - Chapter 8 95
BIẾN TOÀN CỤC &
BIẾN CỤC BỘ
(SETQ ).
(LET ((var1 E1) (var2 E2) ... (vark Ek)) Ek+1
... En)
Hạn chế sử dụng biến toàn cục.
Nguyen Van Linh - Programing Language - Chapter 8 96
CÁC HÀM NHẬP XUẤT
• LOAD( ).
• (READ)
• (PRINT e)
• (PRINC e)
• (TERPRI)
Nguyen Van Linh - Programing Language - Chapter 8 97
HƯỚNG DẪN SỬ DỤNG 
CHƯƠNG TRÌNH
Soạn thảo chương trình:
• Sử dụng bất kỳ editor nào.
• Phầ̀̀n mở rộng .LSP.
• Trong một tập tin, có thể định nghĩa nhiều hàm.
Gọi thực hiện XLISP:
• Trong Windows 3.x.
• Trong Windows 9x.
• Sử dụng menu File-Open/Load để mở tập tin 
chương trình.
Nguyễn Văn Linh - Programing Language - Chapter 2 98
CHƯƠNG 7:
LẬP TRÌNH LOGIC
GIỚI THIỆU.
• Bài toán được mô tả dưới dạng biểu thức 
logic các vị từ.
• Để giải được bài toán, cần có một cơ sở tri 
thức.
• Khi có một yêu cầu, hệ thống sẽ dựa vào 
cơ sở tri thúc để suy diễn.
NGÔN NGỮ PROLOG.
Nguyễn Văn Linh - Programing Language - Chapter 2 99
NGÔN NGỮ PROLOG
Giới thiệu.
• Được Philippe Roussel, Alian Calmerour 
phát triển vào đầu thập niên 70.
Cấu trúc chương trình.
Nguyễn Văn Linh - Programing Language - Chapter 2 100
SỰ CÀI ĐẶT 
Tổ chức dữ liệu trong bộ nhớ: Biểu diễn 
bởi phần cứng.
Cài đặt các phép toán: Sử dụng phép 
toán phần cứng; Tạo các thủ tục hoặc 
hàm; Chuỗi các dòng mã lệnh. 
Nguyễn Văn Linh - Programing Language - Chapter 2 101
KIỂU DỮ LIỆU SỐ
Số nguyên.
Miền con của số nguyên (Subranges).
Số thực dấu chấm động (Floating-point 
real numers).
Nguyễn Văn Linh - Programing Language - Chapter 2 102
SỐ NGUYÊN
Sự đặc tả các thuộc tính: Kiểu dữ liệu 
nguyên.
Ðặc tả các phép toán:
• Các phép toán số học.
• Các phép toán quan hệ.
• Phép gán trị.
Cài đặt: Sử dụng phần cứng.
Nguyễn Văn Linh - Programing Language - Chapter 2 103
MIỀN CON 
CỦA SỐ NGUYÊN 
Sự đặc tả: 
• Một dãy các số nguyên trong một khoảng 
đã định.
• Các phép toán tương tự như kiểu số 
nguyên.
Cài đặt: 
• Tốn ít bộ nhớ hơn.
• Kiểm tra kiểu tốt hơn.
Nguyễn Văn Linh - Programing Language - Chapter 2 104
SỐ THỰC 
DẤU CHẤM ĐỘNG
Đặc tả:
• Một dãy có thứ tự từ một số âm nhỏ nhất 
đến một số dương lớn nhất có thể lưu trữ 
được bởi phần cứng.
• Các phép toán: Tương tự số nguyên + Các 
hàm 
Cài đặt: 
• Sử dụng biểu diễn của phần cứng: Phần 
định trị và phần mũ.
Nguyễn Văn Linh - Programing Language - Chapter 2 105
KIỂU LIỆT KÊ
Đặc tả:
• Liệt kê danh sách các hằng trực kiện có thứ tự.
• Các phép toán: quan hệ, gán, xác định phần tử 
đứng trước/sau một phần tử.
Cài đặt:
• Mỗi trực kiện được biểu diễn bởi một số nguyên 
không âm, chỉ cần một số bit để biểu diễn cho một 
giá trị.
• Cài đặt các phép toán dựa vào các phép toán trên 
số nguyên.
Nguyễn Văn Linh - Programing Language - Chapter 2 106
KIỂU LOGIC
Đặc tả:
• Có thể xem như là một kiểu liệt kê: (FALSE, 
TRUE).
• Các phép toán: NOT, AND, OR.
Cài đặt:
• Sử dụng một đơn vị nhớ (bite/word) để lưu trữ 
một giá trị logic.
• Sử dụng một bit trong đơn vị nhớ để lưu 0 và 1.
• Sử dụng cả đơn vị nhớ để lưu 0 và khác 0. 
Nguyễn Văn Linh - Programing Language - Chapter 2 107
KIỂU KÝ TỰ
Sự cần thiết phải có kiểu ký tự:
• Tất cả dữ liệu từ thiết bị nhập, xuất đều là 
ký tự, chuỗi ký tự.
• Có một sự chuyển đổi tự động từ ký tự 
(chuỗi ký tự) thành số khi nhập hay xuất.
• Ngôn ngữ vẫn cần xử lý ký tự một cách 
trực tiếp (văn bản).
• Dựa vào kiểu ký tự để xây dựng kiểu chuỗi 
ký tự.
Nguyễn Văn Linh - Programing Language - Chapter 2 108
KIỂU KÝ TỰ
Đặc tả:
• Một liệt kê các ký tự được định nghĩa bởi 
ngôn ngữ, tương ứng với các ký tự chuẩn 
của phần cứng và hệ điều hành.
• Các phép toán: Quan hệ, phép gán. 
Cài đặt:
• Sử dụng phần cứng và hệ điều hành.
Nguyễn Văn Linh - Programing Language - Chapter 1 109
            Các file đính kèm theo tài liệu này:
 bai_giang_ngon_ngu_lap_trinh_nguyen_van_linh.pdf bai_giang_ngon_ngu_lap_trinh_nguyen_van_linh.pdf