Tải bản đầy đủ (.doc) (15 trang)

Đề tài thực tập tốt nghiệp chuyên ngành công nghệ thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (108.33 KB, 15 trang )

đề tài thực tập tốt nghiệp
đề 1: Cần tổ chức một chỉ dẫn các danh sách từ riêng
xuất hiện trong mét cuèn s¸ch theo quy c¸ch sau:
An: 1, 20, 40, 215
Nam: 10, 145, 320
...
Tríc khi in ra, chØ dÉn nµy đợc tạo dựng và lu trữ dới
dạng một danh sách tuyến tính và móc nối nh sau:
...
DauDs

Cấu trúc dữ liệu:
Type
Str=String[25];
TroTrg=^Trg;
Trg=Record
CsTrg:Integer;
TrgTiep:TroTrg;
End;
TroDg=^Dg;
Dg=Record
Ten:Str;
Dau, Cuoi:Trotrg;
DgTiep:TroDg;
End;
Var
DauDs:TroDg;
Yêu cầu:
1. Viết thủ tục Procedure TaoDs(Var Dau:TroDg); để tạo
một danh sách chỉ dẫn nh trên.
2. Viết thủ tục Procedure ThemTrg(Dau:TroDg; q:TroDg;


Trg:Integer); nhằm thêm một chỉ số trang (Trg) vào cuối
một danh sách các trang của tên riêng đợc trỏ bëi q
3. ViÕt thđ tơc Procedure ThemDg(Var Dau:TroDg;
n:Str25; Trg:Integer); nh»m thêm một dòng mới tơng
ứng với tên riêng n tại trang Trg vào đầu một danh sách
đợc tro bởi Dau.
1


3. ViÕt thđ tơc procedure Them(Var Dau:TroDg; n:Str25;
Trg:Integer); nh»m thùc hiện các công việc sau:
a. Nếu nh tên n cha có trong danh sách Dau thì ta
tạo ra một dòng mới có tên là n với chỉ số trang Trg vào
đầu danh sách Dau.
b. Nếu tên n đà có trong danh sách thì kiểm tra
xem trang xuất hiện cuối cùng của tên đó có phải là Trg
hay không?. Nếu đúng thì không làm gì, nếu sai thì
thêm vào cuối danh sách.
4. Viết thủ tục Procedure InDg(Dau:TroDg; q:TroDg);
nhằm mục đích in một dòng đợc trỏ bởi q ứng với tên
riêng xuất hiện tại các trang đà có tại danh sách, theo
quy c¸ch:
An:1, 20, 40, 215
5. ViÕt thđ tơc Procedure InCd(Dau:TroDg); nh»m in
toàn bộ chỉ dẫn các tên xuát hiện tại các trang đà có
trong danh sách
6. Vì lí do nào đó tên riêng n đợc chuyển thành tên
riêng n1. HÃy viết mét thđ tơc Procedure DoiTen(n,
n1:Str25; Var Dau:TroDg); thùc hiƯn c«ng việc đó
7. Giả sử chỉ dẫn không theo thứ tự tăng của tên theo

Alphabel. HÃy viết thủ tục Procedure SapXep(Var
Dau:TroDg);sắp xÕp l¹i

2


Đề 2: DÃy các phân số tối giản theo thứ tự tăng Tn =
{ m/k | 0mkn} với n là số nguyên dơng cho trớc, đợc
xác định nh sau;
n=1
T1 = {0/1, 1/1}
n=2
T2 = {0/1, 1/2, 1/1}
n=3
T3 = {0/1, 1/3, 1/2, 2/3, 1/1}
n=4
T4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1}
Qui tắc: ở mỗi bớc tiếp theo ta chèn vào giữa hai
phân số kế tiếp trong dÃy Tn-1 là a/b và c/d phân số mới
là u/v, với điều kiện:
u = a+c; v = b+d; b+dn
ViÕt 2 thđ tơc t¹o d·y Tn theo 2 cách sau:
Cách 1: Sinh dÃy theo quy tắc bằng phơng pháp đệ
quy hoặc không đệ quy
Cách 2: - Sinh ra các phân số dạng {m/k}, trong đó
0mk
mkn
- Loại các phân số trùng
- Sắp xếp lại theo thứ tự tăng


3


Đề 3: Cho một danh sách móc nối lu trữ thông tin về
sách bao gồm: thể loại, số hiệu, tên sách, tác giả, năm
xuất bản nh một th viện nh trong hình vẽ.
...
...
...

Cấu trúc dữ liệu:
Type
Str25=String[25];
TroLoai=^Loai;
Loai=Record
TheLoai:Str25;
Dau, Cuoi:TroSach;
Tiep:TroLoai;
End;
TroSach=^Sach;
Sach=Record
SoHieu:Integer;
Ten:Str25;
TacGia;Str25;
NamXb:Integer;
Next:TroSach;
End;
Var ThuVien:TroLoai;
Yêu cầu:
1. Tạo thđ tơc Procedure TaoTV(Var TV: TroLoai); nh»m

t¹o th viƯn lu trữ nh trên
2. Tạo thủ tục
Them(Var TV:TroLoai; Lvuc, TenS, TenTg:Str25;So,
Nam:Integer);
- Nếu thể loại LVuc cha có trong th viện thì tạo bản
ghi mới về thể loại, đa vào vị trí phù hợp với các con trỏ
trỏ tới bản ghi về sách bao gồm thông tin: So, TenS,
TenTg, Nam
- Nếu đà có thể loại đó trong th viện thì kiểm tra
xem sách đó đà có trong thể loại đó cha. Nếu cã råi
4


thì không làm gì cả, nếu cha có thì thêm vào cuối
danh sách.
3. Tạo hàm Function SomNhat(TV: TroLoai):Integer;
nhằm tìm cuốn sách xuất bản sớm nhất có trong th
viện.
4. Tạo Thủ tôc Procedure Trich(TenTg:Str25; TV:TroLoai;
Var Truyen:TroSach); nh»m trÝch ra tõ th viện các tác
phẩm của cùng tác giả TenTg.

5


®Ị 4: Ngêi ta mn thùc hiƯn phÐp dut c©y nhị
phân giả định các nút đợc khai báo nh sau:
Type
TroNut=Nut;
Nut=Record

Info:Integer;
Trai,Phai:TroNut;
End;
Var Cay:TroNut;
Yêu cầu:
1. Viết thủ tục Procedure TaoCay(Var C: TroNut);
2. Viết các thủ tục duyệt cây theo 3 phơng pháp:
duyệt theo thø tù gi÷a, dut theo thø tù sau, dut
theo thø tự trớc.
3.Tính tổng giá trị của cây
Chẳng hạn:

Kết quả
6 3 10 7 11
KÕt qu¶
11 7 3 1
KÕt qu¶
11
KÕt qu¶

dut theo thø tù gi÷a:
dut theo thø tù sau:

4 8 2 5 91
8 4 9 5 2 6 10

duyÖt theo thø tù tríc: 1 2 4 8 5 9 3 6 7 10
tÝnh tæng:

66


6


®Ị 5: Cho khai b¸o kiĨu danh s¸ch mãc nèi nh sau:
Type
Tro=^pt;
pt=Record
Giatri:Integer;
Tiep:Tro;
End;
Yêu cầu:
1. Viết thủ tục Procedure TimMax(Var ds, q:Tro); cho
phÐp lÊy phÇn tư q cã Giatri lín nhÊt
2. Cho Var ds1, ds2:Tro; trong đó ds1 trỏ tới một danh
sách cha sắp, danh sách ds2 ban đầu bằng NIL.
Viết thủ tục Procedure SapChon(Var ds1, ds2:Tro);
cho phép lấy dần các phần tử ở ds1 chèn vào ds2 ở vị
trí thích hợp sao cho, khi ds1 bằng NIL thì ds2 là một
danh sách đà đợc sắp tăng.

đề 6: Cho tệp văn bản trong đó chứa các từ, các dấu
phân cách từ: dấu c¸ch, dÊu phÈy, dÊu chÊm, dÊu
7


chÊm phÈy, dÊu hai chÊm, dÊu than, dÊu hái. Mäi từ
bắt đầu bằng chữ cái 'A'..'Z' (không phân biệt chữ
hoa và chữ thờng)
Yêu cầu:

1. Viết thủ tục đọc các từ trong tệp văn bản và lu trữ
vào mảng các danh sách móc nối
Var
TuDien:array['A'..'Z'] of ds;
Type
ds=^ptu;
ptu=Record
Tu:String[10];
Tiep:ds;
End;
Mỗi danh sách móc nối trong từ điển xếp theo thứ
tự tăng và các từ khoá là khác nhau.
2. Viết thủ tục hiển thị các từ ra màn hình theo thứ tự
tăng.
3. Viết thủ tục bổ sung từ mới bằng cách đọc từ bàn
phím và tìm nó trong từ điển.
- Nếu thấy, thì hiển thị thông báo 'ĐÃ có '
- Nếu không chèn vào vị trí thÝch hỵp.

8


®Ị 7: Ngêi ta biĨu diƠn biĨu thøc sè häc với các phép
+, - , *, / hai ngôi và +, - một ngôi bằng một cây trong
đó mỗi toán tử đợc chứa ở một nút trong và mỗi biến
đợc chứa ở một lá.
Chẳng hạn: Biểu thức (((1 + 2) * 3) - ((-20)/2/5)
Ta có cây sau:

Yêu cầu:

1. Giả sử biểu thức số học đà đợc viết dới dạng các
ngoặc đơn đầy đủ và đợc lu trữ trong một xâu. HÃy
xây dựng cây xuất phát từ xâu đà cho
2. Dựa vào cây, tính giá trị của biểu thức đó

9


đề 8: Viết chơng trình con thực hiện các công việc
sau:
1. Nhâp xâu S từ bàn phím. Từ S tách ra tất cả các số
nguyên (dÃy liên tiếp các chữ số) cùng các dấu +, - xuất
hiện trong xâu đó và lu trữ chúng vào một mảng A
Chẳng hạn: S = "Day so - 12 12.35 +a42 -b12"
Ta cã m¶ng A nh sau: -12, 12, 35, 42, -12
2. Kh«ng dïng mảng phụ khác ngoài A, hÃy đếm xem có
bao nhiêu số khác nhau xuất hiện trong xâu, đó là
những số nào. Sau đó, cho biết mỗi số xuất hiện bao
nhiêu lần.

đề 9:
10


1.Đọc hai số nguyên m và n vào từ bàn phím. Giả sử m,
n đợc lu trữ dới dạng thập phân là m = a1a2. . .ak, n =
b1b2. . .bl, trong đó mỗi ai (i=1..k), bj (j=1..l) là một
trong 10 chữ số từ 0 đến 9. Xây dựng hai danh sách
móc nối tuyến tính đợc xác định bởi hai con trỏ so1
và so2 tơng ứng với cấu trúc nh sau:

so1
...
so2

...

2. HÃy mô phỏng phép toán cộng thủ công theo cột từ
trái qua phải (có thể nhớ từ cột này sang cột tiếp theo)
với hai số đợc biểu diễn bới hai danh sách đợc trỏ bởi
con trỏ so1 và so2 tơng ứng. Sau khi cộng theo cột ta
đợc dÃy tuyến tính móc nối biểu thị tổng của hai số m
và n.
Chẳng hạn:
so1
so2
tong
3. Xuất phát từ danh sách tuyên stính là kết quả nhận
đợc ở câu 2, hÃy tìm cách xáo trộn các phần tử của nó
sao cho nhận đợc số lớn nhất có thể.
Chẳng hạn: Với danh sách kết quả trên ta đợc danh
sách tơng ứng với số lớn nhất lµ:

11


®Ò 10: XÐt d·y sè a1, a2, . . ., an, với n<=100
HÃy viết các chơng trình con thực hiện các công việc
sau:
1. Đọc các giá trị a1, a2, . . ., an vµo tõ bµn phÝm vµ
kiĨm tra xem dÃy nhận đợc có phải là hoán vị của {1,. .

.,n} hay không?
2. Phân chia dÃy a1, a2, . . ., an thành các dÃy con tăng
dần có độ dài cực đại.
Chẳng hạn:
Với dÃy {8, 2, 4, 3, 6, 7, 5, 9}
Ta cã 4 d·y con sau: {8}; {2, 4}; {3, 6, 7}; {5, 9}

12


đề 11:
- Viết chơng trình minh hoạ thuật toán tìm kiếm
theo chiều rộng (TKR)
- Viết chơng trình giải bài toán Trò chơi 8 số theo
phơng pháp không gian trạng thái và sử dụng thuật toán
TKR

13


đề 12: Viết chơng trình minh hoạ thuật toán tìm
kiếm sâu dần đối với đồ thị dạng cây

đề 13: Viết chơng trình minh hoạ thuật toán tìm
kiếm với giá thành cực tiểu trên cây có trọng số

đề 5: Ngời ta cần tạo lập một chỉ dẫn về các từ khóa
xuất hiện trong các trang văn bản của một văn bản
(chẳng hạn cuốn sách, bài báo. . .)
14



Tin häc: 1, 4, 102
LËp trinh: 10, 16, 40, 58
1. Viết thủ tục Procedure (n:Str25; Tr:Integer); nhằm
thực hiện các công viƯc sau:
a. KiĨm tra xem n cã thc KeyWord hay không ?
Nếu không thì không thì chỉ cần thông báo.
b. Ngợc lại, nếu n là KeyWord thì thêm n cùng với Tr
vào cuối danh sách tơng ứng
Câu 2: Viết thủ tục Trich; nhằm tìm đợc 10 từ khoá
quan tronngj nhất nghĩa là 10 từ xuất hiện nhiều nhất.
In các từ này theo quy cách 5 từ trên một dòng theo thứ
tự giảm dần của số lần xuất hiện
Từ
Số lầ xuất hiÖn

15



×