Tổng hợp : Đề thi và đề cương tuyển sinh Cao học và nghiên cứu sinh môn Ngôn ngữ lập trình từ năm 1993-2007
Trang 1Đề 19 1/2
Đề thì tuyển Nghiên cứu sinh và Cao học 1996 (Đề 3)
Môn: Phương pháp lập trình
Thời gian: 120 phút – Được sử dụng tài liệu
Câu 1 Người ta thực hiện thuật toán tìm kiếm nhị phân trên một bảng được sắp
xếp theo thứ tự tăng như sau:
Type ptu=record
Khoa:integer;
Info:string[20];
end;
Mang=array[1 100]of ptu;
Function tim(c:integer;var a:mang):integer;
Var trai, phai, giua:integer;
Begin
trai:=1;phai:=100;
Repeat
Giua:=(trai+phai)div 2;
if a[giua].khoa<c then trai:=giua;
Else phai:=giua;
Until (a[giua].khoa=c)or(trai>=phai);
if a[giua].khoa=c then tim:=giua
else tim:=0;
end;
1 Chương trình là đúng đắn nếu trong mọi trường hợp nó sẽ dừng và gán một
giá trị cho hàm tim như sau:
- 1≤tim≤100 nếu mảng a có phần tử a[tim].khoa=c
- tim = 0 nếu trong mảng a không chứa phần tử có giá trị khóa bằng c Hãy tìm ví dụ cụ thể chứng tỏ hàm tim không đúng đắn
2 Hãy chữa lại chương trình sao cho đúng đắn Sau đó viết thành thủ tục đệ qui
Câu 2 Người ta tạo lập một chỉ dẫn về các từ khóa trong một tệp văn bản (một
cuốn sách, tài liệu tham khảo, bài báo) như sau:
Computer: 9
Zemple: 9
Trước khi in ra, chỉ dẫn này cần được xây dựng và lưu trữ tạm thời trong bộ nhớ trong, dưới dạng mảng các con trỏ, chỉ tới các danh sách tuyến tính bao gồm các từ có cùng chữ cái đầu tiên (không phân biệt chữ thường, chữ hòa)
Các cấu trúc dữ liệu được khai báo như sau:
Type index=array[‘a’ ‘z’]of tro;
Tro=^nut;
Str25=string[25];
Nut=record
Ten:str25;
Trang:integer;
Tiep:tro;
end;
Trình bày: Trần Hoài Nhân
Trang 2Đề 19 2/2
Var chidan:index;
Keyword:array[1 50]of str25;
Hãy lập các thủ tục thao tác trên danh sách như trong hình:
a
b
c
…
z
Zemple 9 ×
AIDS 30 ×
Thực hiện các công việc kiểm tra xem từ n có thuộc mảng từ khóa keyword
đã cho trước hay không Nếu n không thuộc, không làm gì cả Nếu n thuộc, thì thêm từ n cùng với chỉ số trang tr vào cuối dánh sách tương ứng, được xác định bởi chữ cái đầu tiên của n Chú ý: không phần biệt chữ thường, chữ
hoa
Nhằm sắp xếp lại các từ khóa trong từng danh sách của chỉ dẫn theo thứ tự
từ vựng của cặp (tên, trang):
- Đầu tiên sắp xếp theo thứ tự alphabet của tên
- Sau đó, trong nhóm các từ khóa cùng tên (không phân biệt chữ hoa, chữ thường), sắp xếp theo thứ tự tăng của chỉ số trang
Nếu từ u xuất hiện trong danh sách từ khóa keyword thì thay mọi xuất hiện của u bởi v trong chỉ dẫn
Nhằm in các từ khóa cùng chỉ số trong tương ứng theo qui cách:
AIDS: 30 Anglais: 5,10 Antivirus: 100 Block: 10
Brian: 3 CAD: 10 Connect: 109 Computer: 5 Zemple: 9
Trình bày: Trần Hoài Nhân