1. Trang chủ
  2. » Ngữ Văn

Giáo trình Kỹ thuật lập trình 2

8 8 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 423,49 KB

Nội dung

Tên của định danh phải thể hiện được ý nghĩa: thông thường các biến nguyên như i, j, k dùng làm biến lặp; x, y dùng làm biến lưu tọa độ…Còn những biến lưu trữ dữ liệu khác thì nên đặt[r]

(1)

Giáo trình K

(2)

1

MC LC

Mục lục

Lời nói đầu

Chương Một số kỹ thuật – phong cách lập trình tốt

1.1 Cách đặt tên cho biến hàm

1.2 Phong cách viết mã nguồn

1.3 Tối ưu thực thi mã nguồn

Chương Kỹ thuật đệ quy 16

2.1 Kỹ thuật đệ quy 16

2.2 Xây dựng chương trình đệ quy 20

2.3 Các ví dụ đệ quy 21

2.4 Khử đệ quy 27

2.4.1 Tìm hiểu chế thực hàm đệ quy 27

2.4.2 Các trường hợp khử đệ quy đơn giản 29

2.4.3 Khử đệ quy dùng stack 31

Chương Bài toán liên quan tổ hợp 37

3.1 Phương pháp sinh (kế tiếp) 37

3.1.1 Bài toán sinh dãy nhị phân độ dài n 37

3.1.2 Bài toán liệt kê tập k phần tử 39

3.1.3 Bài toán liệt kê hoán vị 42

3.2 Thuật toán quay lui (Back Tracking) 45

3.2.1 Thuật toán quay lui liệt kê dãy nhị phân n 47

3.2.2 Thuật toán quay lui liệt kê tập k phần tử 48

3.2.3 Thuật toán quay lui liệt kê hoán vị n phần tử 50

3.2.4 Bài toán xếp quân Hậu 51

3.2.5 Bài toán mã tuần 57

Chương Tìm kiếm Sắp xếp 63

4.1 Tìm kiếm 63

4.1.1 Mơ tả tốn tìm kiếm tin học 63

4.1.2 Tìm kiếm tuyến tính 64

4.1.3 Tìm kiếm nhị phân 65

4.1.4 Kết luận 67

4.2 Bài toán xếp 67

4.3 Một số phương pháp xếp 67

4.3.1 Phương pháp chọn 67

4.3.2 Phương pháp xếp bọt 68

4.3.3 Phương pháp xếp chèn 68

4.3.4 Phương pháp đổi chỗ trực tiếp 69

4.3.5 Phương pháp ShellSort 73

4.3.6 Phương pháp phân đoạn QuickSort 76

4.3.7 Phương pháp số RadixSort 80

Chương Stack - Queue 84

5.1 Giới thiệu Stack – ngăn xếp 84

5.1.1 Cài đặt Stack dùng CTDL mảng 85

(3)

2

5.2 Giới thiệu Queue – hàng đợi 103

5.2.1 Cài đặt Queue dùng CTDL mảng 105

5.2.2 Các ứng dụng Queue 106

BÀI TẬP 114

(4)

3

Li nói đầu

Học phần kỹ thuật lập trình thiết kế dành cho sinh viên khoa công nghệ thông tin ĐH Kỹ Thuật Công Nghệ, phần tiếp nối với môn kỹ thuật lập trình Mục đích mơn học bổ sung kỹ thuật lập trình đệ quy, khửđệ

quy, toán tập hợp, phương pháp sinh, kỹ thuật quay lui, tìm kiếm xếp mảng, ngăn xếp hàng đợi…Song song với phần lý thuyết ví dụ minh họa cụ thể, cho phép sinh viên hiểu rõ vấn đề

Ngoài kỹ thuật lập trình, giáo trình cịn đề cập tới phương diện phong cách lập trình chương Việc sớm làm quen với phong cách lập trình hỗ trợ sinh viên hoàn thiện kỹ viết chương trình

Bài giảng viết lần nên khơng tránh khỏi sai sót Kính mong sựđóng góp giảng viên sinh viên nhằm hoàn thiện phần giảng lần tái sau

Tất ý kiến đóng góp điều trân trọng Xin chân thành cảm ơn!

(5)

4

Chương

Mt s k thut – phong cách lp trình tt

\”[

Một chương trình nguồn xem tốt không đánh giá thông qua thuật giải cấu trúc liệu thích hợp Mà phụ thuộc vào phong cách kỹ thuật mã hố (coding) người viết chương trình

Nếu người lập trình viết chương trình thực yêu cầu đặt mã nguồn lộn xộn phong cách lập trình cẩu thả, mã nguồn gây khó khăn cho người lập trình!

Đơi người lập trình khơng quan tâm đến vấn đề ban đầu làm việc với chương trình nhỏ Tuy nhiên, vấn đề phát sinh họ phải làm việc với dự án lớn chương trình lúc khơng cịn đơn giản vài chục dịng lệnh Nếu khơng rèn luyện phong cách trang bị số kỹ thuật lập trình tốt người lập trình đối mặt với nhiều khó khăn…

Trong chương xin giới thiệu số kỹ thuật phong cách lập trình bản, nhiều giúp cho người học viết chương trình tốt

1.1 Cách đặt tên cho biến hàm

Thông thường tùy theo ngôn ngữ mơi trường lập trình, người viết chương trình thường chọn cho phong cách quán việc đặt tên định danh Một số quy tắc cần quan tâm đặt tên sau:

1 Tên định danh phải thể ý nghĩa: thông thường biến nguyên i, j, k dùng làm biến lặp; x, y dùng làm biến lưu tọa độ…Còn biến lưu trữ liệu khác nên đặt gợi nhớ: biến đếm số lần dùng “count” hay So_Luong, biến lưu trọng lượng “weight”, chiều cao “height”…Nếu đặt ngắn gọn c cho biến đếm, hay w cho khối lượng sau nhìn vào chương trình khó hiểu!

(6)

119 27 Nhập danh sách tên gồm n người, xuất cách xếp n người vào

bàn tròn

28 Nhập vào danh sách n bạn nam n bạn nữ, xuất danh sách cách xếp 2n bạn vào bàn trịn có xen lẫn nam nữ

29 Viết chương trình liệt kê tất hốn vị từ “HUTECH”

30 Viết chương trình liệt kê tất hoán vị chữ từ "MISSISSIPPI"

31 Viết chương trình mơ bước thực thuật toán xếp sau: a Phương pháp chọn

b Phương pháp bọt c Phương pháp chèn

d Phương pháp đổi chỗ trực tiếp e Phương pháp ShellSort

f Phương pháp phân đoạn g Phương pháp số

32 Cho mảng nguyên n >100 phần tử, phần tử phát sinh ngẫu nhiên Viết hàm tìm kiếm phần tử mảng

33 Tương tự tập bên trên, hàm tìm kiếm theo dạng nhị phân Sinh viên dùng phương pháp xếp để xếp lại mảng trước thực tìm kiếm nhị phân

34 Viết chương trình đo thời gian thực thuật toán xếp bên Chương trình phát sinh ngẫu nhiên liệu test (mảng số ngun, có kích thước n >= 1000) , cho thuật toán chạy ghi nhận lại thời gian thực 35 Viết chương trình khơng đệ quy cho thuật giải Quicksort, (áp dụng stack để khử

đệ quy)

36 Nhập vào biểu thức trung tố, chuyển đổi thành biểu thực hậu tố tính giá trị biểu thức Lưu ý: tốn hạng nhiều số hay số thực Sinh viên mở rộng với toán tử khác

Ví dụ: (20+5)*3+(10/5) => 20 + * 10 / + Kết quả: 77

(7)

120 39 Viết chương trình xếp theo số (RadixSort), sử dụng cấu trúc

liệu queue để lưu tạm trình xếp Hướng dẫn sử dụng 10 hàng đợi để lưu tạm số Gồm hàng đợi đến 9, hàng đợi lưu số có số bước phân hàng đơn vị, hàng chục, hàng trăm tương ứng

(8)

121

TÀI LIU THAM KHO

1 Brian W Kernighan, Rob Pike, The Practice of Programming, Addison Wesley, 1999

2 Ellis Horowitz, Sartaj Sahni, Fundamentals of Data Structures, ebook, 1981 R Neapolitan, K Naimipour , Foundations of Algorithms Using C++

Pseudocode, Jones and Bartlett Publishers , 2004

4 Lê Hoài Bắc, Nguyễn Thanh Nghị, Kỹ lập trình, NXB KHKT, 2005 Trần Hồng Thọ, Giáo trình Kỹ thuật Lập trình Nâng cao, ĐH Đà Lạt, 2002 Dương Anh Đức, Trần Hạnh Nhi, Nhập môn Cấu trúc liệu thuật toán,

ĐH KHTN, 2000

7 Lê Hữu Lập, Nguyễn Duy Phương, Giáo trình kỹ thuật lập trình, NXB Bưu

Điện, 2002

8 Lê Minh Hồng, Giải thuật lập trình, NXB ĐH Sư Phạm HN, 1999- 2002

Ngày đăng: 09/03/2021, 03:58

w