CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐÁP ÁN
ĐỀ THITỐTNGHIỆP CAO ĐẲNG NGHỀ KHOÁ3 (2009- 2012)
NGHỀ: LẬPTRÌNHMÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề số: DA LTMT- LT14
Câu Nội dung Điểm
I. Phần bắt buộc
1 a. Trình bày phương pháp biểu diễn danh sách liên kết đơn.
- Danh sách liên kết đơn là một cấu trúc dữ liệu bao gồm 1 tập
hợp các phần tử, trong đó mỗi phần tử là một nút, trong mỗi
nút có chứa một liên kết tới nút kế tiếp.
- Cấu trúc 1 nút của danh sách liên kết đơn
INFO LINK
Trong đó:
+ INFO: là trường chứa thông tin (dữ liệu) của nút
+ LINK: là con trỏ chứa địa chỉ của nút kế tiếp trong
danh sách.
- Nút cuối trong danh sách, trường link có giá trị là NULL có
nghĩa là không chứa địa chỉ nút nào.
- Danh sách liên kết đơn luôn được quản lý bởi một con trỏ trỏ
vào nút đầu tiên trong danh sách.
- Một danh sách liên kết đơn được biểu diễn tổng quát như
sau:
0,5
Trang: 1/5
L
b. Áp dụng:
- Thêm một nút có thông tin là X vào sau nút M đang trỏ, nếu
không tồn tại nút M thì chèn vào đầu danh sách.
void chen_sauM(L, M, X)
{
// Tạo nút mới
new <= avail; // Cấp phát bộ nhớ
new->info=X;
// Tìm vị trí chèn và chèn
P=L;
while(p!=M && p!=NULL)
{p=p->link;}
if(p!=NULL) // tìm thấy
{
new->link=M->link;
M->link=new;
}
else // Không tìm thấy
{
new->link=L; L=new;
}
}
0,75
- Xóa nút thứ k trong danh sách.
Void Xoa_nut_thu_k(L,k)
{
// tìm đến nút thứ k
p=L; dem=1;
while(p!=null && dem<k)
{dem++; q=p; p=p->link;}
if(p!=NULL) // tồn tại nút thứ k
{
if(p= =L)
L=L->link;
else
q->link=p->link;
free(p);
}
else
Count<<”Khong ton tại nut thu
”<<k<< “trong danh sach”;
}
0,75
Trang: 2/5
2
a. Trình bày định nghĩa phép hợp, phép giao, phép trừ của hai
lược đồ quan hệ.
- Phép hợp:
Hợp của hai quan hệ R và S khả hợp là một quan hệ, ký hiệu
là R
∪
S và là tập hợp tất cả các bộ t sao cho t
∈
R hoặc t
∈
S
Biểu diễn hình thức phép hợp có dạng:
R
∪
S ={t| t
∈
R hoặc t
∈
S }
- Phép giao:
Giao của hai quan hệ R và S khả hợp là một quan hệ, ký hiệu
là R
∩
S và là tập hợp tất cả các bộ t sao cho t
∈
R và t
∈
S
Biểu diễn hình thức phép hợp có dạng:
R
∩
S ={t| t
∈
R và t
∈
S }
- Phép trừ:
Hiệu của hai quan hệ R và S khả hợp là một quan hệ, ký hiệu
là R- S và là tập hợp tất cả các bộ t sao cho t
∈
R nhưng t
∉
S
Biểu diễn hình thức phép hợp có dạng:
R- S ={t| t
∈
R và t
∉
S }
0,5
0,5
0,5
b. Tính: r
1
∪ r
2
; r
2
∩r
1
; r
1
– r
2
, r
2
-r
1
r
1
∪ r
2
= ( A B C D)
1 0 1 1
0 1 1 1
1 0 0 0
1 0 0 1
0 1 0 1
1 1 0 0
1 1 0 1
0 1 1 0
r
2
∩r
1
= ( A B C D)
1 0 0 0
0 1 0 1
r
1
– r
2
= ( A B C D)
1 0 1 1
0 1 1 1
1 0 0 1
0,5
0,5
0,5
Trang: 3/5
3
#include <conio.h>
#include <iostream.h>
#include <math.h>
class DT
{
private:
double a[20];// Mang chua cac he so da thuc
a0, a1,
int n ;// Bac da thuc
public:
void nhap();
void hienthi();
DT operator-(const DT &d2);
double operator^(double x);// Tinh gia tri
da thuc
};
0,25
void DT::hienthi()
{
cout<<a[0]<<"X^0";
for (int i=1 ;i<= n ;++i)
cout<<"+"<< a[i] <<"X^"<<i ;
}
0,25
void DT::nhap()
{
cout << "Bac da thuc:";
cin >> n;
cout << "Nhap cac he so da thuc:" ;
for (int i=0 ;i<=n ;++i)
{
cout << "\n He so bac"<<i<<":" ;
cin >> a[i] ;
}
}
0,25
DT DT::operator-(const DT &d2)
{
DT d;
int k,i;
k = (n > d2.n)?n:d2.n ;
for (i=0;i<=k ;++i)
if (i<=n && i<=d2.n)
d.a[i] = a[i] - d2.a[i];
else
if (i<=n)
d.a[i] =a[i];
else
d.a[i] = -d2.a[i];
i = k;
while (i>0 && d.a[i]==0.0) i;
d.n=i;
return d ;}
0,75
Trang: 4/5
double DT::operator^(double x)
{
double s=0.0 , t=1.0;
for (int i=0 ;i<= n ;++i)
{
s+= a[i]*t;
t *= x;
}
return s;
}
0,25
void main()
{
DT p,q,f;
double x,g;
clrscr();
cout <<"\n Nhap da thuc P :" ;p.nhap();
cout <<"\n Nhap da thuc Q :" ;q.nhap();
cout << "\n Nhap so thuc x :" ;cin >> x;
f = (p-q);
g = f^x;
cout << "\n Da thuc f ";
f.hienthi();
cout<<"\n x =" << x;
cout << "\n f(x) = "<<g;
getch();
}
0,25
II. Phần tự chọn, do trường biên soạn
1
………, ngày ………. tháng ……. năm ………
Trang: 5/5
. NAM
Độc lập – Tự do – Hạnh phúc
ĐÁP ÁN
ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 3 (200 9- 2012)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề. for (int i=1 ;i < = n ;++i)
cout < < "+" < < a[i] < < "X^" < < i ;
}
0,25
void DT::nhap()
{
cout < < "Bac