Cấu trúc dữ liệu và ngôn ngữ lập trình Pascal
Trang 1Lời nói đầu
Với tốc phát triển hiện nay thì môn tin học trở thành một môn học khôngthể thiếu trong các trường phổ thông và các trường đại học Cuốn sách Cấu TrúcDữ Liệu và Giải Thuật của PGS Đỗ Xuân Lôi đã trở thành tài liệu học tập vàtham khảo của sinh viên ngành công nghệ thông tin ở nhiều cơ sở đào tạo CaoĐẳng, Đại Học và sau Đại Học
Để việc học môn này trở nên dễ dàng hơn em đã viết lại một số thuật toán trongsách dưới dạng các Unit
Trang 3Phần 1:Yêu cầu của đề:
Viết unit các thuật toán trong sách cấu trúc dữ liệu và giải thuật bằngngôn ngữ Pascal
Phần 2: Giới thiệu chi tiết đề tài
Chương 1: Tổng Quan:
I Công việc đã làm
1 Tiến trình công việc:
Trong thời gian 2 tuần đầu của thực tập em đã nghiên cứu mộtsố vấn đề quan trọng và căn bản có ý nghĩa trong việc thực hiệnyêu cầu đã đặt ra của đề tài
Các unit và menu chương trình được viết trong tuần thứ 3 vàhoàn thành trong tuần 4
Tuần 5 viết báo cáo và chỉnh sửa giao diện chương trình
2 Công việc cụ thể:
Dưới sự hướng dẫn tận tình của thầy Phạm Đức Khánh, sau 5tuần : từ ngày 12-4-2005 đến ngày 16-5-2005 em đã làm đượccác công việc như sau:
1 Đệ quy: Viết Unit dequy gồm các thủ tục
N!
Fibonacci
Bài Toán Tháp Hà Nội
Bài Toán Xếp 8 Hậu
2 Sắp xếp: Viết Unint sapxep gồm các phương pháp
Trang 4 Vun đống
Hoà nhập
3 Tìm kiếm Unit timkiem gồm các thủ tục
Tìm kiếm tuần tự
Tìm kiếm nhị phân
4 Ngăn xếp Unit nganxep có úng dung
Đổi cơ số từ một số hệ 10 sang hệ bất kỳ <10
II Công việc chưa làm
Do thời gian có hạn nên còn nhiều thuật toán hay trong sách emchưa có điều kiên hoàn thành Menu chương trình chính chưa đượcđẹp vì chương trình em viết hoàn toàn bằng ngôn ngữ Pascal – mộtngôn ngữ có nhiều hạn chế về giao diện
Chương 2 Tóm tắt các menu chính:
Chương trình chính có tên menu.pas gồm các modul sau:
1. KeO: kẻ khung chương trình
2. HienThi: hiển thị các lựa chọn của chương trình
3. Call_n: Gọi thủ tục giaithua trong Unit dequy.tpu để tính n!
4. Call_Fibonacci: Gọi thủ tục Fibonacci trong Unit dequy.tpu để tính dãy
Fibonacci của một số nhập vào từ bàn phím
5. Call_ThapHN: Gọi thủ tục ThapHaNoi trong Unit dequy.tpu để thực
hiện bài toán chuyển n đĩa từ cọc 1 sang cọc 2 <n nhập từ bàn phím >
6. Call_XepHau: Gọi thủ tục XepHau trong Unit Dequy.tpu để đưa ra các
phương án xếp 8 con hậu không ăn nhau trên bàn cờ vua
Trang 58. Call_Insert: Gọi thủ tục Insert_Sort trong Unit SX_va_TK.tpu để Sắp
xếp theo phương pháp thêm dần
9. Call_Bubble: Gọi thủ tục Bubble_Sort trong Unit SX_va_TK.tpu để Sắp
xếp theo phương pháp nổi bọt
10.Call_Quick: Gọi thủ tục Quick_Sort trong Unit SX_va_TK.tpu để Sắp
xếp theo phương pháp sắp xếp nhanh
11.Call_Heap: Gọi thủ tục Head_Sort trong Unit SX_va_TK.tpu để Sắp xếp
theo phương pháp vun đống
12.Call_Mergring: Gọi thủ tục Mergring_Sort trong Unit SX_va_TK.tpu để
Sắp xếp theo phương pháp hoà nhập
13.Call_TimTuanTu: Gọi thủ tục Sequen_Search trong Unit
SX_va_TK.tpu để tìm vị trí của một số trong dãy đã cho theo phương
pháp tìm kiếm tuần tự
14.Call_TimNhiPhan: Gọi thủ tục Binary_Search trong Unit
SX_va_TK.tpu để tìm vị trí của một số trong dãy đã cho theo phương
phán tìm vị trí của một số trong dãy đã cho theo phương phán tìm kiếmNhị Phân
15.Call_DoiCoSo: Gọi thủ tục DoiCoSo trong Unint Stack.tpu để đổi một số
từ số hệ 10 sang hệ bất kỳ < 10
Trang 6Chương 3 Chi tiết các modul :
1 n!:
Begin
Nhập N K= 1
I = 2
K: = k*i I: =i+1
I > N
GiaiThua: = k
END True
False
Trang 72 Fibonacci:
ta có : if n< = 2 then F(n) = 1 F(n) = F(n-2) + F(n-1)
Trang 8False N<>0
N
Trang 9M <> i Đổi Chỗ a[j] ,
Trang 10I < = N
Truea[j+1] = a[j]
j = j - 1
Trang 116 Bubble_Sort:
Trang 138 Sequen_Search:
Begin
ENDFalse
N<>0
K
I = 1a[n+1] = k
a[i] <> k I = I+1
Sequen = i
True
Trang 149 Sequen_Search:
\
Begin
ENDFalse
N<>0
K
I = 1a[n+1] = k
a[i] <> k I = I+1
Sequen = i
True
Trang 15False Binary = m
10 Binary_Search:
Trang 16R
True
False
Trang 17Chương 4: Hướng dẫn sử dụng qua giao diện chương trình
Chương trình có thể chạy trên môi trường Windows 9x, 2000, xp hoặc Dos.Dung lượng chương trình nhỏ, gọn, không phài cài đặt
Menu chương trình chính:
Tính n!:
Trang 18ThapHaNoi:
Trang 19Select_Sort:
Trang 20bubble_Sort:
Trang 21Heap_Sort:
Trang 22Sequen_Search:
Trang 23DoiCoSo:
Trang 24Tài liệu tham khảo:
Giáo trình: Ngôn ngũ lập trình Pascal – Quách Tuấn Ngọc
Giáo trình: Bài tập ngôn ngũ lập trình Pascal – Quách Tuấn Ngọc
Giáo trình: Ngôn Ngữ lập trình Pascal nâng cao - Quách Tuấn Ngọc
Giáo trình: Bài tập ngôn Ngữ lập trình Pascal nâng cao - Quách Tuấn Ngọc Sách :Turbo Pascal, cẩm nang tra cứu - Quách Tuấn Ngọc
Giao trình: Cấu trúc dữ liệu và giải thuật – Đỗ Xuân Lôi