1. Trang chủ
  2. » Công Nghệ Thông Tin

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

14 1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 527 KB

Nội dung

Viết thủ tục Procedure ThemTrgDau: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 The

Trang 1

đề 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à lưu 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

Trang 2

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 chưa 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: Dãy các phân số tối giản theo thứ tự tăng Tn = { m/k | 0mkn} 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}

Trang 3

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 đó

0mk mkn

- Loại các phân số trùng

- Sắp xếp lại theo thứ tự tăng

Đề 3: Cho một danh sách móc nối lưu 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ẽ

Trang 4

.

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 lưu 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 chưa 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 đó chưa Nếu có rồi thì không làm gì cả, nếu chưa

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

Trang 5

đề 4: Người ta muốn thực hiện phép duyệt 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;

Trang 6

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, duyệt theo thứ tự sau, duyệt theo thứ tự trước

3.Tính tổng giá trị của cây

Chẳng hạn:

Kết quả duyệt theo thứ tự giữa: 4 8 2 5 9 1 6 3 10 7 11 Kết quả duyệt theo thứ tự sau: 8 4 9 5 2 6 10 11 7 3 1 Kết quả duyệt theo thứ tự trước: 1 2 4 8 5 9 3 6 7 10 11

đề 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 chưa sắp, danh sách ds2 ban đầu bằng NIL

Trang 7

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 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à lưu 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

Trang 8

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

đề 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 lưu trữ trong một xâu Hãy xây dựng cây xuất phát từ xâu

đã cho

Trang 9

2 Dựa vào cây, tính giá trị của biểu thức đó

đề 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à lưu 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

Trang 10

đề 9:

1.Đọc hai số nguyên m và n vào từ bàn phím Giả sử m, n được lưu 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:

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

Trang 11

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à:

đề 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}

Trang 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

Trang 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ố

Trang 14

đề 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 .)

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ó thuộc 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

Ngày đăng: 28/07/2014, 06:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w