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Ề KHỐ 3 (2009 - 2012)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MƠN THI: LÝ THUYẾT CHUN MƠN NGHỀ
Mã đề số: DA LTMT - LT20
Câu
I. Phần bắt buộc
1
a. Công thức đệ quy
Nội dung
S(n) = 1 nếu n = 0
S(n) = ½*(n + 1) nếu n>0
Điểm
1,0
b. Hàm đệ quy
float S(n)
{
if (n= =0)
return 1;
else
return(1/(2*n+1)+S(n-1));
}
2
a. Định nghĩa khóa của lược đồ quan hệ
Cho lược đồ quan hệ R với các tập thuộc tính U={A1,A2, ...,
An} và các phụ thuộc hàm F, X U. Ta nói X là một khóa của
R nếu:
- X U F+ . Nghĩa là X xác định hàm tất cả các thuộc tính
(các phụ thuộc hàm này thuộc F hoặc được suy diễn logic từ
F).
- Không có Y X mà Y U F+ .
b. Thuật toán tìm một khóa của lược đồ quan hệ
Vào: lược đồ quan hệ R với tập thuộc tính U và tập phụ thuộc
hàm F
Ra: Tập K là khóa của R
Thuật toán:
- Đặt K=U
- Lặp lại quá trình loại bỏ khỏi K thuộc tính A mà
{K-A}+ =U.
c. Áp dụng
Trang: 1/5
1,0
0,25
0,25
0,25
0,25
Bước 1: Gán K = R = {A,B,C,D,E,G,H,I}
0,25
Bước 2: Lần lượt loại bớt các thuộc tính của K
0,50
+
- Loại phần tử A: ta có {B,C,D,E,G,H,I} = R
vì pth CG → AE khiến A thuộc về {B,C,D,E,G,H,I}+
nên K = {B,C,D,E,G,H,I}.
- Loại phần tử B, ta có {C,D,E,G,H,I}+ = R
vì pth CG → AE khiến A thuộc về {C,D,E,G,H,I}+ và
pth AC → B nên K ={C,D,E,G,H,I}.
- Loại phần tử C, ta có {D,E,G,H,I} + ≠ R nên K vẫn là {C,
D,E,G,H,I}
- Loại phần tử D, ta có: {C, E,G,H,I}+ = R vì pth
CG → AE khiến A thuộc về {C, E,G,H,I}+ và
pth AC → B nên K ={C,E,G,H,I}.
- Loại phần tử E, ta có: {C, G,H,I}+ = R vì
pth CG → AE , AC → B , ABC→ D nên K ={C,G,H,I}.
- Loại phần tử G, ta có: {C, H,I}+ ≠ R
nên K vẫn là {C, G,H,I}.
- Loại phần tử H, ta có: {C, G,I}+ ≠ R
nên K vẫn là {C, G,H,I}.
- Loại phần tử I, ta có: {C,G,H}+ = R
vì CG → AE , AC → B, ABC→ D nên K={C,G,H}.
=> Vậy K={ C,G,H} là một khóa của r ( R )
0,25
Trang: 2/5
3
#include"conio.h"
#include"iostream.h"
#include"string.h"
#include"stdio.h"
class diem
{
private:
char *mahs;
char *hoten;
float t,l,h;
public:
diem()
{
mahs=new char[10];hoten=new char[40];
t=0;l=0;h=0;
}
~diem()
{
delete mahs;
delete hoten;
}
void nhap()
{
cout<<"\nMa hoc sinh:";gets(mahs);
cout<<"\nHo va ten:"; gets(hoten);
fflush(stdin);
cout<<"diem toan:";cin>>t;
cout<<"diem ly:";cin>>l;
cout<<"diem hoa:";cin>>h;
}
void hienthi()
{
cout<<"\n"<
"<
"<
"<
"<
"<
}
int xet_ll()
{
if(t+l+h>=15 &&t>0 &&l>0&&h>0)
return 1;
else
return 0;
}
};
Trang: 3/5
0,2
0,1
0,2
0,1
0,2
class BD
{
private:
diem ds[50];
int n;
public:
void nhapBD();
void hienthiBD();
void DSDo();
};
void BD::nhapBD()
{
cout<<"\nNhap so hoc sinh (<50)";cin>>n;
for(int i=0;i
{
cout<<"\nNhap thong tin cua hoc sinh thu
"<
ds[i].nhap();
}
}
void BD::hienthiBD()
{
cout<<"\nMahs
Ho va ten
Toan
Ly
Hoa
Tongdiem";
for(int i=0;i
ds[i].hienthi();
}
void BD::DSDo()
{
cout<<"\nDanh sach thi sinh do";
cout<<"\nMahs
Ho va ten
Toan
Ly
Hoa
Tongdiem";
for(int i=0;i
if(ds[i].xet_ll())
ds[i].hienthi();
}
0,25
0,25
0,25
0,25
0,2
void main()
{
BD ds;
ds.nhapBD();
ds.hienthiBD();
ds.DSDo();
getch();
}
Trang: 4/5
Công (I)
II. Phần tự chọn
1
2
…
Công (II)
Tổng cộng (I + II)
………,
Trang: 5/5
ngày ………. tháng ……. năm ………