1. Trang chủ
  2. » Giáo Dục - Đào Tạo

cấu trúc dữ liệu chương 1

33 149 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

Nội dung

tài liệu uy tín được biên soạn bởi giảng viên đại học Bách Khoa TPHCM, thuận lợi cho qua trình tự học, nghiên cứu bộ tự động hóa, điện tử, cơ điện tử, cơ khí chế tạo máy, lập trình nhúng, Tài liệu được kiểm duyệt bởi giảng viên, phòng đào tạo trường đại học bách khoa, lưu hành nội bộ

Chương Phương pháp luận lập trình Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Nội dung Các bước phương pháp luận lập trình ™ Các tiêu chí đánh giá chương trình ™ Các cấu trúc điều khiển chương trình ™ Sự đệ quy ™ Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Phương pháp luận lập trình Bước Mơ tả vấn đề ™ Bước Phân tích vấn đề ™ Bước Giải vấn đề ™ Bước Thiết kế giải thuật ™ Bước Lập trình ™ Bước Kiểm tra chương trình ™ Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Mô tả vấn đề ™ Mô tả vấn đề f Đầy đủ f Rõ ràng f Chính xác ™ Nội dung f Xác định liệu nhập (input) f Xác định kết xuất (output) f Ví dụ: Tìm nghiệm x phương trình bậc hai ax2 + bx + c = với a, b, c số thực Dữ liệu nhập: a, b, c Kết tìm: x Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Phân tích vấn đề ™ Nội dung f Xác định tất trường hợp có vấn đề từ liệu nhập y y Trường hợp thường xảy Trường hợp xảy f Phân tích phải có tính tổng qt: gom chung trường hợp riêng lẻ f Ví dụ: a có trường hợp khác b có trường hợp khác c có trường hợp khác Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Giải vấn đề ™ Nội dung f Tìm nhiều cách giải vấn đề f Chọn cách giải ‘hay nhất’ dựa theo tiêu chí đánh giá f Ví dụ: Nếu a = 0: giải phương trình bậc nhất: bx + c = Nếu a ≠ 0: giải phương trình bậc hai đủ: ax2 + bx + c = Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Giải vấn đề f Giải phương trình bậc nhất: bx + c = Nếu b = 0: Nếu c = 0: phương trình có vơ số nghiệm Nếu c ≠ 0: phương trình khơng có nghiệm Nếu b ≠ 0: nghiệm x = − c / b f Giải phương trình bậc hai đủ: ax2 + bx + c = Tính: ∆ = b2 – 4ac Nếu ∆ < 0: phương trình khơng có nghiệm Nếu ∆ = 0: nghiệm x = − b / / a Nếu ∆ > 0: nghiệm x1 = (− b − sqrt(∆)) / / a nghiệm x2 = (− b + sqrt(∆)) / / a Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Thiết kế giải thuật ™ Nội dung f Sử dụng mã giả (pseudo code) để mơ tả giải thuật: tiếng Anh có cấu trúc f Sử dụng kỹ thuật thiết kế đơn thể f Ví dụ: read a, b, c; if a = then Giải phương trình bậc bx + c = else Giải phương trình bậc hai đủ ax2 + bx + c = Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Thiết kế giải thuật Đơn thể Giải phương trình bậc if b = then if c = then write ‘phương trình có vơ số nghiệm’ else write ‘phương trình khơng có nghiệm’ else begin x = − c / b; write x end; Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT Bước Thiết kế giải thuật Đơn thể Giải phương trình bậc hai đủ delta := b × b − × a × c; if delta < then write ‘phương trình khơng có nghiệm’ else if delta = then begin x := − b / / a; write x end else begin x1 = (− b − sqrt(delta)) / / a; x2 = (− b + sqrt(delta)) / / a; write x1, x2 end; Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 10 Các cấu trúc điều khiển chương trình ™ Cấu trúc điều kiện if bt_luậnlý then lệnh; false bt_luậnlý true Lệnh Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 19 Các cấu trúc điều khiển chương trình ™ Cấu trúc điều kiện if bt_luậnlý then lệnh_1 else lệnh_2; bt_luậnlý false true Lệnh_1 Chương Phương pháp luận lập trình 2006 Lệnh_2 Nguyễn Trung Trực - Khoa CNTT 20 Các cấu trúc điều khiển chương trình ™ Cấu trúc điều kiện case biểuthức of giátrị_1: lệnh_1; giátrị_2: lệnh_2; … end; giátrị_1 true Lệnh_1 false giátrị_2 true Lệnh_2 false … Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 21 Các cấu trúc điều khiển chương trình ™ Hai loại cấu trúc lặp f Số lần lặp biết trước: cấu trúc for f Số lần lặp chưa biết trước: y y Lặp lần: cấu trúc while Lặp lần: cấu trúc repeat Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 22 Các cấu trúc điều khiển chương trình ™ Cấu trúc for for biến := gt_nhỏnhất to gt_lớnnhất lệnh; for biến := gt_ lớnnhất downto gt_ nhỏnhất lệnh; Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 23 Các cấu trúc điều khiển chương trình Cấu trúc for to biến := gt_nhỏnhất biến ≤ gt_lớnnhất false true Lệnh biến := gt_kếtiếp Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 24 Các cấu trúc điều khiển chương trình ™ Cấu trúc while while bt_luậnlý lệnh; false bt_luậnlý true Lệnh Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 25 Các cấu trúc điều khiển chương trình ™ Cấu trúc repeat repeat lệnh; until bt_luậnlý; Lệnh false bt_luậnlý true Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 26 Sự đệ quy ™ Định nghĩa f Một khái niệm định nghĩa đệ quy định nghĩa có sử dụng khái niệm ™ Định nghĩa đệ quy có hai thành phần: f Thành phần kết thúc: không chứa khái niệm định nghĩa f Thành phần đệ quy: có chứa khái niệm định nghĩa ™ Định nghĩa đệ quy đắn: f Thành phần đệ quy phải chấm dứt thành phần kết thúc Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 27 Sự đệ quy ™ Ví dụ f Định nghĩa phép tốn giai thừa định nghĩa đệ quy Thành phần kết thúc: 0! = Thành phần đệ quy: n! = n × (n – 1)! Tính đắn: n ≥ ™ Các trường hợp sử dụng đệ quy: f Cách giải vấn đề có tính đệ quy f Cấu trúc có tính đệ quy Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 28 Sự đệ quy Cách giải có tính đệ quy Cách tính n! sau: Nếu n = 0: 0! = Nếu n > 0: n! = n × (n – 1)! function giaithua (n: integer): integer; begin if n = then {thanh phan ket thuc} giaithua := else {thanh phan de quy} giaithua := n * giaithua (n - 1) end; Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 29 Sự đệ quy Cấu trúc có tính đệ quy Cấu trúc tháp Hà Nội có tính đệ quy Gọi n số tầng tháp, di chuyển tháp từ A đến C qua trung gian B Tháp n tầng gồm tháp (n - 1) tầng đặt tháp tầng Nếu n = 1: Di chuyển tháp từ A đến C Nếu n > 1: Di chuyển tháp n - tầng từ A đến B Di chuyển tầng từ A đến C Di chuyển tháp n - tầng từ B đến C Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 30 Sự đệ quy (n - 1) (1) (A) (1) (A) (C) (B) (n - 1) (B) (n - 1) (A) (C) (1) (B) (n - 1) (1) (A) Chương Phương pháp luận lập trình (B) 2006 Nguyễn Trung Trực - Khoa CNTT 31 Sự đệ quy procedure dichuyen (n, a, b, c: integer); begin if n = then {thanh phan ket thuc} writeln (a, ‘→’, c) else begin {thanh phan de quy} dichuyen (n-1, a, c, b); dichuyen (1, a, b, c); dichuyen (n-1, b, a, c) end end; Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 32 Sự đệ quy ™ Ưu điểm nhược điểm đệ quy f Ưu điểm: dễ dàng sử dụng trình đệ quy để giải vấn đề số trường hợp f Nhược điểm: tốn vùng nhớ tốn thời gian thực Chương Phương pháp luận lập trình 2006 Nguyễn Trung Trực - Khoa CNTT 33

Ngày đăng: 03/02/2018, 08:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN