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
Đề 18 1/2 Đề thì tuyển Nghiên cứu sinh và Cao học 1996 (Đề 2) Môn: Phương pháp lập trình Thời gian: 120 phút – Được sử dụng tài liệu Bài 1. Dãy Morse vô hạn m được xây dựng như sau m = x0, x1, x2, … - Ban đầu, viết phần tử x0 = 0. - Ở mỗi bước n tiếp theo, nếu đã có dãy con wn-1 ở bước n-1, thì ta ghép thêm vào cuối dãy wn-1 dãy 1−nw để nhận được dãy mới wn = wn-1,1−nw; ở đây dãy con 1−nw được xây dựng từ dãy con wn-1 bằng cách thay 0 thành 1, thay 1 thành 0. Chẳng hạn, ban đầu có dãy w0 = 0 Bước 1 có dãy w1 = 0,1 Bước 2 có dãy w2 = 0,1,1,0 Bước 3 có dãy w3 = 0,1,1,0,1,0,0,1 1. Viết hàm đệ qui Function xacdinh(k:integer):integer; Xác định giá trị của phần tử thứ k trong dãy Morse. Chẳng hạn: k = 0 giá trị của phần tử thứ 0 là 0 k = 7 giá trị của phần tử thứ 7 là 1. 2. Đưa ra một phương án không dùng đệ qui. Bài 2. Người ta cần tạo lập một chỉ dẫn về các từ khóa xuất hiện trong các trang của một tệp văn bản (cuốn sách, bài báo, tài liệu tham khảo,…) như sau: Tin học: 1, 4, 162 Lập trình: 10, 16, 40, 58 Trước khi in ra, chỉ dẫn này được xây dựng đề lưu trữ tạm thời trong bộ nhớ, dưới dạng mảng con trỏ, chỉ tới các danh sách tuyến tính các từ có cùng chữ cài đầu (không phân biệt chữ thường, chữ hoa): ACM 10 Antivirus 30 AIDS 118 ×Antivirus 13 Buffer 6 Buffer 101 Block 142 ×a b Các cấu trúc dữ liệu được khai báo như sau: Type Str25=string[25]; Tro=^nut; Nut=record Ten:str25; Trang:integer; Trình bày: Trần Hoài Nhân Đề 18 2/2 Tiep:tro; end; index=array[‘a’ ’z’]of tro; Var chidan:index; Keyword:array[1 50]of str25; Hãy lập các thủ tục: 1. Procedure them(n:str25; tr:integer); Thực hiện các công việc sau: 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 thì không là già cả, nếu n thuộc thì thêm từ n cùng với chỉ số trang tr vào cuối danh sách tương ứng, được xác định bởi chữ cái đầu tiên các từ n. Chú ý: không phân biệt chữ thường, chữ hoa. 2. Procedure trichyeu; Nhằm tìm ra 10 từ khóa quan trọng nhất, nghĩa là 10 từ xuất hiện với tần xuất cao nhất. In các từ này với 5 từ trên một dòng theo thứ tự giảm dần của số lần xuất hiện cùng với tần xuất xuất hiện tương ứng. 3. Procedure tach(tr:integer; var chidan1,chidan2:Index); Nhằm tách chỉ dẫn chidan đã cho thành 2 chỉ dẫn con: - chidan1 bao gồm các xuất hiện của các thừ khóa tại các trong có chỉ số ≤tr đã cho. - chidan2 bao gồm các xuất hiện của các từ khóa tại các trang có chỉ số >tr đã cho. 4. Procedure Inchidan; Cho phép in ra theo qui cách từ khóa cùng với các chỉ số trang tương ứng: ACM: 10 AIDS: 118 Antivirus: 13, 30 Block: 142 Buffer: 0, 101 Trình bày: Trần Hoài Nhân . Đề 18 1/2 Đề thì tuyển Nghiên cứu sinh và Cao học 1996 (Đề 2) Môn: Phương pháp lập trình Thời gian: 120 phút – Được sử. tạo lập một chỉ dẫn về các từ khóa xuất hiện trong các trang của một tệp văn bản (cuốn sách, bài báo, tài liệu tham khảo,…) như sau: Tin học: 1, 4, 162 Lập