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Ố 2 (2008 - 2011)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MƠN THI: LÝ THUYẾT CHUN MƠN NGHỀ
Mã đề số: DA LTMT - LT14
Câu
Nội dung
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:
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.
Trang: 1/5
Điểm
0,5
0,75
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;
}
}
- 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
{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
”<
0,75
nut
thu
}
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ệ.
Trang: 2/5
- 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 }
b. Tính: r1 r2 ; r2 r1 ; r1 – r2 , r2 -r1
r1 r2 = ( 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
r2 r1 = ( A
B
C
D)
1
0
0
0
r1 – r2 = (
A
B
C
D)
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
r2 -r1 = (
A
B
C
D)
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
Trang: 3/5
0,5
0,5
0,5
0,5
0,5
0,5
0,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<
for (int i=1 ;i<= n ;++i)
cout<<"+"<< a[i] <<"X^"<
}
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"<
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
0,25
0,25
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;
}
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) = "<
getch();
}
0,25
II. Phần tự chọn
………,
Trang: 5/5
ngày ………. tháng ……. năm ………