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Á II (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 - LT06

Câu 1: (1,5 điểm) TT Nội dung Điểm

I. Phần bắt buộc 7 điểm

Câu 1 1,5 điểm

1 Trình bày giải thuật sắp xếp kiểu lựa chọn để sắp xếp một dãy 0,75 điểm

khóa theo thứ tự giảm dần.

procedure sxluachon(a,n)

1. for i:=1 to n-1 do 0,25 điểm

begin

m:=i;

for j:= i+1 to n do 0,5 điểm

begin

if(a[j]

if(m <> i) then

begin X:=a[i];

a[i]:=a[m];

a[m]:=X;

end;

end; end;

2. return;

2

Hãy đưa ra một dãy khoá gồm 10 phần tử bất kỳ, sau đó đưa ra

0,75 điểm

kết quả thực hiện 3 bước đầu tiên để sắp xếp dãy khoá đó theo thứ

tự giảm dần bằng giải thuật sắp xếp kiểu lựa chọn.

Trang:1/ 6

Chẳng hạn với dãy khoá: 36 18 19 52 53 72 39 61 70 90.

Bước 1: 90 18 19 52 53 72 39 61 70 36 0,25 điểm

Bước 2: 90 72 19 52 53 18 39 61 70 36 0,25 điểm

Bước 3: 90 72 70 52 53 18 39 61 19 36 0,25 điểm

Câu 2 3,5 điểm

a 0,5 điểm

0,25 điểm 0,25 điểm

<

void nhap() { cout<<"ho ten:";gets(hoten); cout<<"ngay sinh:"; cin>>ngaysinh.ngay>>ngaysinh.thang>>ngaysinh.nam; } void hienthi() { cout <<" "<

b

0,5 điểm

Xây dựng lớp người bao gồm các thuộc tính họ tên, ngày sinh và định nghĩa hàm thành phần: hàm cho phép nhập thông tin cho một người, hàm hiển thị thông tin của một người. #include #include #include #include typedef struct date {int ngay,thang,nam;}; class NGUOI { char hoten[30]; date ngaysinh; public: }; Xây dựng lớp sinh viên thừa kế từ lớp người có thêm thuộc tính

lớp, điểm trung bình và định nghĩa các hàm thành phần: hàm cho

phép nhập thông tin cho một sinh viên, hàm hiển thị thông tin của

một sinh viên ( với các thông tin họ tên, ngày sinh, lớp, điểm trung

bình), hàm kiểm tra xem sinh viên đó có được khen thưởng không.

0,25 điểm

class SINHVIEN:public NGUOI { char lop[30]; public:

float diemtb; void nhapsv()

Trang:2/ 6

0,25 điểm

{ cout<<"lop:";gets(lop); cout<<"diem trung binh:"; cin>>diemtb; } void hienthisv() { hienthi(); cout<<" "<8) return 1; else return 0; }

c 0,5 điểm

0,25 điểm 0,25 điểm

}; Xây dựng lớp giáo viên thừa kế từ lớp người có thêm các thuộc tính khoa, bộ môn, số bài báo và định nghĩa các hàm thành phần: hàm cho phép nhập thông tin cho một giáo viên, hàm hiển thị thông tin của một giáo viên (với các thông tin họ tên, ngày sinh, khoa, bộ môn, số bài báo), hàm kiểm tra xem giáo viên đó có được khen thưởng không. class GIAOVIEN:public NGUOI { char khoa[30]; int sobaibao; public: char bomon[30]; void nhapgv() { cout<<"khoa:";gets(khoa); cout<<"bo mon:";gets(bomon); cout<<"so bai bao"; cin>>sobaibao; } void hienthigv() { hienthi(); cout<<" "<=1) return 1; else return 0;

Trang:3/ 6

}

}; Viết hàm main thực hiện: d 2 điểm

- Nhập danh sách không quá 100 sinh viên và không quá 30 giáo

viên.

- Sắp xếp danh sách sinh viên giảm dần theo điểm trung bình

bằng phương pháp sắp xếp chèn trực tiếp và hiển thị kết quả

sắp xếp.

- Hiển thị ra màn hình danh sách sinh viên được khen thưởng. - Hiển thị ra màn hình danh sách giáo viên thuộc bộ môn “Mang may tinh” được khen thưởng. Nhập danh sách không quá 100 sinh viên và không quá 30 giáo viên. 0,5 điểm

0,25 điểm 0,25 điểm

0,75 điểm

dssv[j+1]=dssv[j]; j--;

void main() { clrscr(); SINHVIEN dssv[100],tam; GIAOVIEN dsgv[30]; int n,m,i,j; cout<<"\nNhap vao so sinh vien:"; cin>>n; for (i = 1; i <=n; i++) { cout <<"\nNhap thong tin cho sinh vien thu: " <>m; for (i = 1; i <=m; i++) { cout <<"\nNhap thong tin cho giao vien thu: " <=1)) { }

0,5 điểm

Trang:4/ 6

dssv[i].hienthisv(); cout<

dssv[j+1]=tam; } cout <<"\nDanh sach sinh vien sau khi da sap xep la:"<

dssv[i].hienthisv();

{ if(dssv[i].kiemtrakhenthuongsv()==1) }

0,5 điểm

(strcmp(dsgv[i].bomon,"Mang may tinh")==0)) dsgv[i].hienthigv();

{ if((dsgv[i].kiemtrakhenthuonggv()==1)&& }

cout<<"\nDanh sach cac sinh vien duoc khen thuong la:" <

a

0,5 điểm

- AB → E  AB → BE (luật tăng) (2) - BE→I (giả thuyết) (3) - (2) và (3)  AB → I (4) - (1) và (4)  AB → IG (luật hợp) - GI→H (giả thuyết) nên GI → GH (luật tăng) - AB → IG và GI → GH nên AB→GH

b

0,75 điểm

Hãy chứng minh phụ thuộc hàm AB→GH được suy dẫn từ F nhờ các qui tắc suy dẫn của Armstrong - AB → E và E→G (giả thuyết)  AB → G (1) Tìm bao đóng của {AB} {AB}+ = {ABE} vì AB→E

= {ABEG} vì E→G

Trang:5/ 6

= {ABEGI} vì BE→I = {ABEGIH} vì GI→H

Vậy {AB}+ = {ABEGIH}

Xác định 1 khóa của p c 0,75 điểm

Ta thấy B là thuộc tính chỉ xuất hiện ở vế trái. Ta tính B+ = B ≠ U (B không phải là khóa của p) (AB)+ = ABCDE (đã tính ở câu a). Nên AB là một khóa của p

II. Phần tự chọn, do trường biên soạn 3 điểm

1

2 Tổng cộng (I + II)

……….., Ngày…………Tháng………..Năm…………..

Trang:6/ 6