Tải bản đầy đủ (.pptx) (18 trang)

BÀI THUYẾT TRÌNH CHƯƠNG 4 CẤU TRÚC DANH SÁCH TRONG NGÔN NGỮ LẬP TRÌNH PROLOG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.58 MB, 18 trang )

TRƯỜNG ĐẠI HỌC GTVT TP HỒ CHÍ MINH

BÀI THUYẾT TRÌNH
CHƯƠNG 4: LÝ THUYẾT LIÊN QUAN ĐẾN CÁC
BÀI TẬP CHƯƠNG 4
Sinh viên thực hiện: Nguyễn Duy Quốc Thái
Nguyễn Thanh Lưu
Giáo viên hướng dẫn: TS. Phan Văn Đức

TP. Hồ Chí Minh, Ngày 16 tháng 03 năm 2023


NỘI DUNG THUYẾT TRÌNH
1

2

LÝ THUYẾT CHƯƠNG 4
BÀI TẬP 1

3

BÀI TẬP 2

4

BÀI TẬP 3


1. LÝ THUYẾT CHƯƠNG 4
1.1. BIỂU DIỄN CẤU TRÚC DANH SÁCH


 Danh sách là kiểu cấu trúc dữ liệu được sử dụng rộng rãi trong các ngơn ngữ lập trình phi số.


Một danh sách là 1 dãy bất kỳ các đối tượng, khác với kiểu dữ liệu tập hợp, các dữ liệu của danh sách
có thể trùng nhau



(xuất hiện nhiều lần) và mỗi vị trí của đối tượng đều có ý nghĩa.



Danh sách là kiểu diễn đạt ngắn gọn của hàm trong Prolog. Hàm tử của danh sách là dấu “.”



Prolog quy ước đặt dãy các phần tử của danh sách giữa các cặp móc vng.
VD: .(a,.(b,[])). Là danh sách [a,b].


1. LÝ THUYẾT CHƯƠNG 4
1.1. BIỂU DIỄN CẤU TRÚC DANH SÁCH
Nếu danh sách rỗng, nó được viết dưới dạng một nguyên tử []
Nếu danh sách khác rỗng, có thể xem nó được cấu trúc từ 2 thành phần là phần đầu (head) và phần đuôi
(tail)

Trong VD này: đầu là anne, đuôi là danh sách [ tennis, tom, skier ]
Tail là 1 danh sách nên tail có thể rỗng hoặc có thể cấu tạo từ 1 đầu head và 1 đuôi tail khác.



1. LÝ THUYẾT CHƯƠNG 4
1.1. BIỂU DIỄN CẤU TRÚC DANH SÁCH

Để biểu diễn1 danh sách được tạo bằng đầu head và đuôi tail, prolog sử dụng split “|” để phân
tách phần đầu và phần đuôi như sau:


1. LÝ THUYẾT CHƯƠNG 4
1.1. BIỂU DIỄN CẤU TRÚC DANH SÁCH
Một số cách viết danh sách


1. LÝ THUYẾT CHƯƠNG 4
1.1. MỘT SỐ VỊ TỪ XỬ LÝ TRONG PROLOG


1. LÝ THUYẾT CHƯƠNG 4
1.3. Các thao tác cơ bản trên danh sách
a) Kiểm tra 1 số phần tử có mặt trong danh sách

Vậy:


1. LÝ THUYẾT CHƯƠNG 4
1.3. Các thao tác cơ bản trên danh sách
b) Ghép hai danh sách


1. LÝ THUYẾT CHƯƠNG 4
1.3. Các thao tác cơ bản trên danh sách

C) Bổ sung phần tử vào danh sách


1. LÝ THUYẾT CHƯƠNG 4
1.3. Các thao tác cơ bản trên danh sách
d) Loại bỏ 1 phần tử khỏi danh sách


1. LÝ THUYẾT CHƯƠNG 4
1.3. Các thao tác cơ bản trên danh sách
e) Danh sách con


1. LÝ THUYẾT CHƯƠNG 4
1.3. Các thao tác cơ bản trên danh sách
f) Hoán vị


1. BÀI TẬP 1
1.1. ĐỀ BÀI

1.2. LÝ THUYẾT VÀ LỜI GIẢI
Cho danh sách L:
? - L=[ a, b, c, d, e, f ],
append (L1, [ d, e, f ], L)
L1 = [ a, b, c ]


1. BÀI TẬP 1
1.1. ĐỀ BÀI


1.2. LÝ THUYẾT VÀ LỜI GIẢI
Cho danh sách L:
? - L=[ a, b, c, d, e, f ], append (L1, [ d, e, f ], L)
L1 = [ a, b, c ]


2. BÀI TẬP 2
2.1. ĐỀ BÀI

2.2. LÝ THUYẾT VÀ LỜI GIẢI
L = [1, 2, 3, 4, 5, 6, a, b, c]
L2 =[4, 5, 6]
? - L = [1, 2, 3, 4, 5, 6, a, b, c],
append ( L3, [ a, b, c], L ).
L3 = [ 1, 2, 3, 4, 5, 6]
append ( L2, [ 1, 2, 3], L3 ).
L2 = [ 4, 5, 6]


3. BÀI TẬP 3
3.1. ĐỀ BÀI

3.2. LÝ THUYẾT VÀ LỜI GIẢI
Last_element ( Object, List)
Mệnh đề 1: Last _element (Object, [ Head | List ] ) : - member (Object, List).
Mệnh đề 2: Last_element ( Object, List) : - append ( _, [Object] _, List).
Ví dụ:
?- reverse( [ a, b, c , d, e, f ] , L).
L = [f, e, d, c, b, a]

Yes


THANKS FOR WATCHING



×