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
Đề 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 Đề 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 Anglais 10 Anglais 5 Antivirus 100 ×AIDS 30 Brain 3 Block 10 ×Computer 9 Connect 109 Zemple 9 × AIDS 30 ×1. Procedure Them(n:str25;tr:integer); 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. 2. Procedure Sapxep; 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. 3. Procedure Thaythe(u,v:str25); 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. 4. Procedure Inchidan; 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 . Đề 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ử. Tiep:tro; end; Trình bày: Trần Hoài Nhân Đề 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