CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ĐÁP ÁN ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 2 (2008 - 2011) NGHỀ: LẬP TRÌNH MÁY TÍNH MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ Mã đề số: DA LTMT - LT12

Nội dung

Điểm

Câu I. Phần bắt buộc

1

a. Trình bày được giải thuật Insertion Sort. - Trước hết: ta xem phần tử a[0] là một dãy đã có thứ tự. - Bước 1: xen phần tử a[1] vào danh sách đã có thứ tự a[0] sao cho a[0], a[1] là một danh sách có thứ tự. - Bước 2: xen phần tử a[2] vào danh sách đã có thứ tự a[0], a[1] sao cho a[0], a[1], a[2] là một danh sách có thứ tự. - Tổng quát ở bước i: xen phần tử a[i] vào danh sách đã có thứ tự a[0], a[1], … a[i-1] sao cho a[0], a[1],.. a[i] là một danh sách có thứ tự. - Sau n-1 bước thì kết thúc.

0,25 0.25 0,25 0,25

K[0] K[1] K[2] K[3] K[4] K[5] K[6] K[7] K[8]

3 0 9 25 99 10 35 88 18

35 3 35 35 99 35 35 25 25 25 25 25 25 25 99 88 35 35 0 0 10 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9 99 99 99 99 35 25 25 18 18 9 9 3 3 3 3 3 3 3 88 88 88 88 88 88 99 88 88 18 18 18 18 18 18 18 99 99

0,75 0,25

2

0,25 0,25 0,25 0,25

b. Áp dụng giải thuật Insertion Sort với bộ dữ liệu K = {9, 3, 10, 0, 99, 35, 25, 88, 18} Khóa Bước Ban đầu Bước 1 3 Bước 2 3 Bước 3 0 Bước 4 0 Bước 5 0 Bước 6 0 Bước 7 0 Bước 8 0 0 Kết quả a. Nêu 4 tính chất của phụ thuộc hàm - Phản xạ: Nếu Y  X thì X → Y - Bắt cầu: Nếu X → Y và Y → Z thì X → Z - Phân rã: Nếu X → YZ thì X → Y và X → Z - Bắt cầu: Nếu X → Y và X → Z thì X → YZ

Trang: 1/4

b. Áp dụng: Tìm chuỗi suy diễn AB → EG

1,0 1,0

1) AB  AB (tính phản xã) 2) AB  B (phân rã) 3) B  D (F2) 4) AB  D (tính bắc cầu 2 &3) 5) AB  C (F1) 6) AB  DC (kết hợp 4&5) 7) CD  E (F3) 8) AB  E (bắc cầu 6&7) 9) AB  CE (kết hợp 5&8) 10)CE  HG (F4) 11)CE  G (phan rã) 12)AB  G (bắc cầu 9&11) 13)AB  EG (kết hợp 8&12)

0,25

3

#include #include #include int uscln(int a,int b) { while (!(a%b==0) ) { int r=b; b=a%b;a=r; } return b; } class PS { private: int t,m; public: void nhap(); void hienthi(); void rutgon(); int operator>(const PS &p2); void operator=(const PS &p2); };

Trang: 2/4

0,1 0,1 0,25 0,1 0,25

0,25 0,5

void PS:: nhap() { cout<<"\n Nhap tu so:"; cin>>t; cout<<"Nhap mau so:"; cin>>m; } void PS:: hienthi() { cout <(const PS &p2) { if (t*p2.m>p2.t*m) return 1; else return 0; void nhapmangPS(PS *a,int n) { for (int i=1;i<=n;i++) a[i].nhap(); } PS maxmangPS(PS * a, int n) { PS tg; tg=a[1]; for(int i=2;i<=n;i++) if (a[i]>tg) tg=a[i]; return tg; }

Trang: 3/4

0,2

lon

so

nhat

void main() { int n; PS a[10],p1,p2; cout<<"\nNhap so phan so:"; cin>>n; nhapmangPS(a,n); p2=maxmangPS(a,n); cout<<"\nPhan la:";p2.hienthi(); getch(); }

II. Phần tự chọn

………, ngày ………. tháng ……. năm ………

Trang: 4/4