Trang:1/ 2
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 3 (2009 - 2012)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề số: LTMT - LT03
Hình thức thi: Tự lun
Thời gian: 150 phút (không kể thi gian chép/giao đề thi)
ĐỀ BÀI
Câu 1: (1,5 điểm)
1. Trìnhy 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.
2. Hãy đưa ra một y khoá gồm 10 phần tử bất k, sau đó đưa ra kết quthực
hin 3 bước đầu tiên đsắp xếp dãy khđó theo thứ ttăng dần bằng gii thuật
sắp xếp kiu tm dần.
Câu 2: (3,5 điểm)
Xây dựng lớp đa thức bao gồm thành phn các hệ scủa đa thức và bậc của
đa thức để cài đặt các toán tử toán học cho lớp đa thức này. Viết chương trình
thực hin:
a. Xây dựng toán tử nhập dữ liệu ca một đa thức.
b. Xây dựng toán tử toán tử cộng, toán tử nhân hai đa thức.
c. Xây dựng toán tử xuất dữ liệu của mt đa thức.
d. Xây dựng toán tử tính giá trị ca đa thức tại x.
e. Viết hàm main thực hin:
- Nhập vào hai đa thức.
- Hiển thị ra màn hình tổng, tích ca hai đa thức đó.
- Tính giá tr của đa thức tại giá trị x được nhập vào.
Câu 3: (2,0 điểm)
Cho lược đồ cơ sở dữ liu sau:
Giaovien(MAGV, HOTEN, TDGV, MAKHOA)
Khoa(MAKHOA, TENKHOA, DTKHOA)
Lop(MALOP, TENLOP, SISO, MAKHOA)
Monhoc(MAMH, TENMH)
Phonghoc(SOPHONG, CHUCNANG)
Trang:2/ 2
Lichbaogiang(MALICH, NGAYDAY, MAGV)
Dongbaogiang(MALICH, TUTIET, DENTIET, BAIDAY, GHICHU,
LYTHUYET, MAMH, MALOP, SOPHONG)
Hãy thực hiện các câu hi sau bằng SQL
a) Xem lịch báo giảng tuần từ ngày 16/09/2002 đến ngày 23/09/2002 ca giáo
viên MAGV (mã giáo viên) là TH3A040. Thông tin kết xuất: MAGV,
HOTEN, TENLOP, TENMH, SOPHONG, NGAYDAY, TUTIET, DENTIET,
BAIDAY, GHICHU.
b) Xem lịch báo ging ngày 23/09/2002 của các giáo viên khoa là CNTT.
Thông tin kết xuất: MAGV, HOTEN, TENLOP, TENMH, SOPHONG,
NGAYDAY, TUTIET, DENTIET, BAIDAY, GHICHU)
c) Cho biết số lượng giáo viên (SOLUONGGV) ca mi khoa, kết qucần sắp
xếp ng dần theo cột n khoa. Thông tin kết xuất: TENKHOA, SOLUONGGV
( SOLUONGGV là thuộc tính tự đặt)
..............,ngày.............tháng..............năm...............
DUYỆT HỘI ĐỒNG THI TỐT NGHIỆP TIỂU BAN RA ĐỀ THI
Trang:1/ 6
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Á 3 (2009 - 2012)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề số: DA LTMT - LT03
u 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 gii 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
2 Hãy đưa ra một y khoá gồm 10 phn tbất kỳ, sau đó đưa
ra kết quthực hin 3 bước đầu tiên đsắp xếp y khđó
theo thứ tự tăng dần bằng giải thuật sắp xếp kiểu thêm dần.
0,75 điểm
Cho Một dãy khoá gm 10 phần tử
Chẳng hn: 40 23 17 55 22 45 15 60 30 20.
Bước 1: 23 40 17 55 22 45 15 60 30 20
0,25 điểm
Trang:2/ 6
Bước 2: 17 23 40 55 22 45 15 60 30 20 0,25 điểm
c 3: 17 23 40 55 22 45 15 60 30 20 0,25 đim
u 2 Xây dng lp đa thc bao gm thành phn các h s ca đa
thc và bc ca đa thc đ cài đt các toán t toán hc cho
lp đa thc này. Viết chương trình thc hin
3,5 đim
a Xây dng toán tử nhập dliu ca một đa thức. 0,5 đim
#include <conio.h>
#include <iostream.h>
#include <math.h>
class Dathuc
{
double a[20];// Mang chua cac he so da thuc a0, a1,...
int n ;// Bac da thuc
public:
friend ostream& operator<< (ostream& os, Dathuc d);
friend istream& operator>> (istream& is, Dathuc &d);
friend Dathuc operator+(Dathuc d1, Dathuc d2);
friend Dathuc operator*(Dathuc d1, Dathuc d2);
friend double operator^(Dathuc d, double x);
};
istream& operator>> (istream& is, Dathuc &d)
{
cout << "Bac da thuc:";
cin >> d.n;
cout <<"Nhap cac he so da thuc:" ;
for (int i=0 ;i<=d.n ;++i)
{
cout << "\n He so bac " << i <<"=";
is >> d.a[i] ;
}
return is;
}
b Xây dng toán tử toán tcộng, toán tnhân hai đa thức. 1 đim
Dathuc operator+(Dathuc d1, Dathuc d2)
{
Dathuc d;
int k,i;
k = d1.n > d2.n ? d1.n : d2.n ;
for (i=0;i<=k ;++i)
if (i<=d1.n && i<=d2.n) d.a[i] = d1.a[i] + d2.a[i];
else
if (i<=d1.n) d.a[i] = d1.a[i];
0,5 đim
Trang:3/ 6
else d.a[i] = d2.a[i];
i = k;
while (i>0 && d.a[i]==0.0) --i;
d.n=i;
return d ;
}
Dathuc operator*(Dathuc d1 , Dathuc d2)
{
Dathuc d;
int k, i, j;
k = d.n = d1.n + d2.n ;
for (i=0;i<=k;++i) d.a[i] = 0;
for (i=0 ;i<= d1 .n ;++i)
for (j=0 ;j<= d2.n ;++j)
d.a[i+j] += d1 .a[i]*d2.a[j];
return d;
}
0,5 điểm
c Xây dựng toán tử xuất dữ liu của một đa thức. 0,5 điểm
ostream& operator<< (ostream& os, Dathuc d)
{
os<<"Cac he so (tu ao):";
for (int i=d.n ;i>= 1 ;--i)
{
if(d.a[i-1]<0)
os << d.a[i] <<" * x^" <<i;
else
os << d.a[i] <<" * x^" <<i<<"+";}
os<<d.a[0];
return os;
}
d Xây dựng toán tử tính giá trị của đa thức tại x. 0,5 điểm
double operator^(Dathuc d, double x)
{
double s=0.0 , t=1.0;
for (int i=0 ;i<= d.n ;++i)
{
s += d.a[i]*t;
t *= x;
}
return s;
}
e Viết hàm main thực hin:
- Nhập vào hai đa thức
1 điểm