TAILIEUCHUNG - Giáo trình thuật toán và kỹ thuật lập trình Pascal part 10

Tham khảo tài liệu 'giáo trình thuật toán và kỹ thuật lập trình pascal part 10', khoa học tự nhiên, toán học phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Hàm Compare x s là hàm so sánh xấp xỉ tên gần đúng quyển sách là X có trong tên chính xác quyển sách s hay không. Trước hết phải xoá hết các dấu cách hai và các dấu cách vô nghĩa trong X. while x 1 32 do delete while x length x 32 do delete x length x .l repeat k pos 32 32 x if k 0 then delete l Until k 0 Tiếp theo nếu X là một từ thì X phải ỉà một từ nào đó trong tên chính xác của cuốn sách s. Hàm Pos_word x s dưới đây cho biết từ X có trùng với một từ nào đó trong s hay không. Ta tạm thời chưa xét hàm Pos_word x s để quan tâm tiếp việc biện luận đang diễn ra ở hàm Compare x s . If pos 32 x 0 then begin Compare pos_word x s exit end Trong trường hợp X gồm nhiều từ thì tập tất cả các từ của ten sách gần đúng X lừng từ một phải trùng vối một từ nào đó của tên sách chính xác s got true Repeat k pos 32 x if k 0 then begin w copy x 1 k-1 got got and pos_word w s delete x 1 k if poS word w s then Writein Co w trong s end Until k 0 Compare got an đ Pos word X s 234 Như vậy hàm Compare x s đã được xem xét đầy đủ. Xét tiếp hàm Pos_word x s Nếu s chỉ gồm một từ thì việc so sánh diễn ra ở 2 từ và thực hiện bởi phép so sánh bàng nhau thông thường If pos 32 s - 0 then Begin Pos_Word x s Exit End Nếu s gồm nhiều từ thì Pos_word được thoả bằng true khi một từ nào đó của s bằng từ x. Exist False Repeat i pos 32 s if i 0 then begin ws copy s 1 i-1 Exist Exist Or x ws delete s 1 i end Until 1 0 Pos Word Exist Or x s Chương trình Program QLSACH Uses Crt const f name - Type Str3ũ 30 SACH Record tens Str30 235 tacgia str30 namxb integer nhaxb str30 End Var f FILE OF SACK chon byte ------------------------------ Procedure Input Var S SACK Begin With s do Begin Write Ten sach Readln tens if then exit Write Tac. gia Readln tacgia Write Nam xuat ban Readin namxb Write Nha xuat ban Readln nhaxb End End --------------------------------- Procedure Output s SACH Begin With s do Begin Writein Ten each .tens Writein Tac gia tacgia Writein Nam xuat ban .namxb