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ã đ
Trang 1CỘ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 - LT09
1 Trình bày giải thuật sắp xếp kiểu thêm dần để sắp xếp một
dãy khóa theo chiều giảm dần
0,75 điểm
function TKTT(a,n,X);
1 i:=1; a[n+1]:=X;
0,25 điểm
3 if i=n+1 then return 0
else return 1;
0,25 điểm
2 Trình bày giải thuật sắp xếp kiểu thêm dần để sắp xếp một
dãy khóa theo thứ tự tăng dần
0,75 điểm
procedure sxthemdan(a,n)
1 a[0] := -∞;
2 for i:=2 to n do
begin
0,25 điểm
X:=a[i]; j:=i-1;
while(X<a[j]) begin
a[j+1]=a[j]; j:=j-1;
end;
0,25 điểm
a[j+1] = X;
end;
3 return;
0,25 điểm
a Xây dựng khuôn hàm hoán đổi cho phép đổi giá trị của hai
biến số truyền vào
0,5 điểm
Trang 2#include<conio.h>
#include<stdlib.h>
template <class T>
void Hoandoi(T& a,T& b)
{
T tmp;
tmp=a;
a=b;
b=tmp;
}
b Xây dựng khuôn hình hàm sắp xếp có sử dụng khuôn hình
hàm hoán đổi để sắp xếp giá trị của một mảng theo chiều
tăng dần
0,5 điểm
template <class T>
void Sapxep(T *ma,int n)
{
for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) if(ma[i]>ma[j])
Hoandoi(ma[i],ma[j]);
}
c Xây dựng khuôn hình hàm tìm số lớn nhất trong một một
mảng
0,5 điểm
template <class T>
void Timmax(T *ma,int n)
max=ma[1];
for(int i=2;i<=n;i++) if(max<ma[i])
max=ma[i];
cout<<"phan tu lon nhat trong mang la:"<<max;
}
d Xây dựng khuôn hình hàm để in giá trị của một mảng ra
màn hình
0,5 điểm
template <class T>
void Hienthi(T *ma,int n)
{
cout<<"["<<ma[1];
for(int i=2; i<=n; i++)
cout<<","<<ma[i];
Trang 3}
e Viết hàm main sử dụng các khuôn hình hàm đã xây dựng :
- Sắp xếp giá trị của hai mảng, một mảng các phần tử có
kiểu nguyên và một mảng các phần tử có kiểu thực
- Hiển thị số lớn nhất trong mảng các phần tử có kiểu
thực
1,5 điểm
void main()
{
clrscr();
int A[100];
double B[100];
int i,n,m;
cout<<"Nhap vao so phan tu cua mang so nguyen"<<endl;
cin>>n;
for(i=1; i<=n; i++) {
cout<<"A["<<i<<"]=";
cin>>A[i];
} cout<<"Nhap vao so phan tu cua mang so thuc"<<endl;
cin>>m;
for(i=1; i<=m; i++) {
cout<<"B["<<i<<"]=";
cin>>B[i];
} cout<<"Mang so nguyen ban dau la:"<<endl;
Hienthi(A,n);
cout<<"Mang so nguyen sau khi sap xep la:"<<endl;
Sapxep(A,n);
Hienthi(A,n);
cout<<"Mang so thuc ban dau la:"<<endl;
Hienthi(B,m);
cout<<"Mang so thuc sau khi sap xep la:"<<endl;
Sapxep(B,m);
Hienthi(B,m);
Timmax(B,m);
getch();
0,25 điểm
0,25 điểm
0,25 điểm
0,25 điểm
0,25 điểm
0,25 điểm
Trang 4a Định nghĩa phụ thuộc hàm
Một phụ thuộc hàm, ký hiệu là X→ Y, giữa hai tập thuộc
tính X và Y chỉ ra một ràng buộc trên các bộ có thể có tạo
nên một trạng thái quan hệ r của R Ràng buộc đó là: với
hai bộ bất kỳ t1 và t2 trong r , nếu có t1[X] = t2[X] thì
cũng phải có t1[Y] = t2[Y]
1 điểm
b f1: thỏa mãn vì theo luật phản xạ
f2: thỏa mãn vì với mỗi bộ của R ta đều có A→B
f3: không thỏa vì A(a) → B(x) và A(b) → B(x)
f4: thỏa vì AC ⊃ C
f5: thỏa vì với mỗi bộ của R ta đều có A→D
f6: thỏa vì với mỗi bộ của R ta đều có A→D
1 điểm
1
2
Tổng cộng (I + II)
……… , Ngày…………Tháng……… Năm…………