1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình lập trình mạng đại học Đà Lạt

110 463 2
Tài liệu đã được kiểm tra trùng lặp

Đ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 110
Dung lượng 780,09 KB

Nội dung

Giáo trình lập trình mạng

TRƯỜNG ĐẠI HỌC ĐÀ LẠT GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH NÂNG CAO TRẦN HOÀNG THỌ 2002 Kỹ thuật lập trình nâng cao -1- MỤC LỤC MỤC LỤC - LỜI NÓI ĐẦU - PHẦN I : MỘT SỐ KIẾN THỨC VỀ LOGIC - $1 Logic toaùn hoïc - $2 Logic mệnh đề (proposition logic) - I Phân tích - II CÁC LIÊN TỪ LOGIC .- III Ý NGHĨA CỦA CÁC LIÊN TỪ LOGIC BẢNG CHÂN TRỊ ( TRUE TABLE ) - IV LÝ LUẬN ĐÚNG (valid argument) - V TƯƠNG ĐƯƠNG (Equivalence) .- VI TÍNH THAY THẾ , TÍNH TRUYỀN VÀ TÍNH ĐỐI XỨNG - VII BÀI TOÁN SUY DIỄN LOGIC - VIII CÁC LUẬT SUY DIỄN (rules of inference) - 11 IX CHỨNG MINH HÌNH THỨC VÀ PHI HÌNH THỨC - 13 $3.LOGIC TÂN TỪ - 14 I KHÁI NIỆM - 15 II CÁC LƯNG TỪ LOGIC - 16 III TẬP HP VÀ TÂN TỪ - 18 IV CÁC LƯNG TỪ SỐ HỌC - 18 $ BÀI TẬP - 19 I Baøi tập logic mệnh đề .- 19 II Bài tập logic tân từ .- 21 PHẦN II ĐỆ QUY - 23 $1 KHÁI NIỆM ĐỆ QUY - 23 I Mở đầu - 23 II Mô tả đệ quy cấu trúc liệu - 24 III Chương trình đê quy - 24 $ BÀI TOÁN ĐỆ QUY - 30 I Các bước cần làm để giải toán đệ quy - 30 II Một số toán giải giải thuật đệ quy .- 31 $ CƠ CHẾ THỰC HIỆN GIẢI THUẬT ĐỆ QUY - 38 $4 KHỬû ĐỆ QUY - 41 I Dẫn nhập - 41 II Các trưông hợp khử đệ quy đơn giản cấu trúc lặp - 41 III Khử đệ quy hàm ARSAC - 47 IV Khử đệ quy cho số dạng thủ tục đệ quy thường gặp .- 51 $ BÀI TAÄP - 56 Phần III : KIỂM CHỨNG CHƯƠNG TRÌNH - 61 $1 CÁC GIAI ĐOẠN TRONG CUỘC SỐNG CỦA MỘT PHẦN MỀM .- 61 $2 ĐẶC TẢ - 62 I Đặc tả toán : - 62 II Đặc tả chương trình (ĐTCT) .- 63 - Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao -2- III Đặc tả đoạn chương trình : - 64 $3 NGÔN NGỮ LẬP TRÌNH - 66 $4 CHỨNG MINH TÍNH ĐÚNG CỦA CHƯƠNG TRÌNH .- 66 I Ký hieäu { P } S {Q} .- 66 II Hệ luật Hoare ( Hoares inference rules) .- 67 III Kiểm chứng đoạn chương trình vòng lặp : - 72 IV Kiểm chứng đoạn chương trình có vòng lặp - 75 $5 CÁC PHÉP BIẾN ĐỔI TÂN TỪ .- 82 I WP - 82 II Tính chất WP - 83 III Toán tử gán ( tiên đề gán ) - 84 IV Toán tử - 84 V Toán tử điều kiện - 85 VI Toán tử lặp while - 86 $6 LƯC ĐỒ CHỨNG MINH VÀ CÁC ĐIỀU KIỆN CẦN KIỂM CHỨNG - 89 I Dẫn nhập - 89 II Kiểm chứng tính dựa vào lược đồ chứng minh hợp lý - 90 III Tập tối tiểu điều kiện cần kiểm chứng - 95 TÀI LIỆU THAM KHAÛO - 108 - Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao -3- LỜI NÓI ĐẦU Cuốn sách biên soạn theo chương trình môn học : Kỹ Thuật Lập Trình Nâng Cao với đơn vị học trình ,nhằm làm tài liệu tham khảo cho môn học Giáo trình gồm phần : Phần I : kiến thức chung Logic Bao gồm kiến thức then chốt logic mệnh đề logic tân từ sử dụng trực tiếp phần sau giáo trình Giáo trình cung cấp tài liệu cô đọng chủ đề để sinh viên dựa vào ôn lại tri thức toán cần thiết bắt đầu nghiên cứu nội dung môn học Thầy giáo nên có hương dẫn ôn tập thích hợp cho phần nhằm tạo điều kiện thuận lợi để truyền đạt nội dung giáo trình Phần II : Đệ Quy Trình bày nôi dung chủ đề lập trình theo phương pháp đệ quy : - Khái niệm đệ quy vai trò lập trình - Cách xây dựng giải thuật theo phương pháp đệ quy - Cơ chế thực giải thuật đệ quy - Khử đệ quy Phần III : Kiểm chứng chương trình Trình bày chủ đề kiểm chứng tính chương trình , bao gồm nội dung sau : - Vài trò toán kiểm chứng lập trình - Các phương pháp dùng để kiểm chứng - Hệ luật Hoare áp dụng vào kiểm chứng - Hệ luật Dijkstra áp dụng vào vào kiểm chứng - Dạng tổng qúat toán kiểm chứng phương pháp thực hiên - lược đồ kiểm chứng tập tối thiểu điều kiện cần kiểm chứng Cùng với trình bày lý thuyết tổng quát , người viết cố gắng đưa vào số thỏa đáng ví dụ minh họa nhằm giúp người học tìm hiểu chất khái niệm tập làm quen với cách sử dụng kết qủa Khi tham khảo bạn nên cố gắng đọc hiểu cho ví dụ Vì trình độ nhiều hạn chế chắn giáo trình nhiều khiếm khuyết Rất mong tất người sử dụng chân thành góp ý Tác giả sẻ biết ỏn trân trọng tất ý kiến đóng góp Tác gỉa chân thành cảm ơn bạn đồng nghiệp khoa Toán _ Tin đóng góp nhiều ý kiến cho việc hình thành cấu trúc chi tiết nôi dung môn học , chân thành cảm ơn thạc sỹ Võ Tiến đóng góp nhiều ý kiến qúy báu giúp chỉnh lý nhiều khiếm khuyết thảo Đà Lạt ngày 01 - 01 - 1999 TRẦN HOÀNG THỌ Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao -4- PHẦN I : MỘT SỐ KIẾN THỨC VỀ LOGIC $1 Logic toán học Trong đời sống hàng ngày, người ta cần có lý luận (argument) để từ điều kiện biết hay giả định (các tiền đề - premises) suy kết luận (conclusion) Hãy xét lý luận sau : Lý luận (1) : - Các tiền đề : + Nếu hôm trời đẹp chơi + Nếu chơi hôm trễ - Gỉa thiết : Hôm trời đẹp - kết luận : Hôm trễ Lý luận (2) : - Các tiên đề : + Nếu hôm rạp hát không đóng cửa thi xem phim + Nếu xem phim không soạn kịp - Gỉa thiết : Hôm rạp hát không đóng cửa - kết luận : Hôm không soạn kịp Hai lý luận có dạng lý luận Chúng có dạng lý luận đúng, ý nghóa mà chúng đề cập đến Còn lý luận sau : Lý luận (3) : - Các tiền đề : + Nếu trời đẹp chơi + Nếu chơi trễ - Giả thiết : Hôm trễ - kết luận : Hôm trời đẹp lý luận sai lý luận dạng sai Logic toán học quan tâm đến việc phân tích câu (sentences), mệnh đề (propositions) chứng minh (proof) với ý đến dạng (form) lược bỏ việc cụ thể $2 Logic mệnh đề (proposition logic) I Phân tích Phân tích lý luận (1) ta thấy sử dụng mệnh đề sở sau : Hôm trời đẹp Tôi chơi Tôi trễ Mỗi mệnh đề (proposition) phát biểu (true) hay sai (false) Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao -5- Biểu thị tượng trưng mệnh đề tên A, B, C, ta ghi lại dạng lý luận (1) sau : Nếu A B (4) B C Có A kết luận : C Đây dạng lý luận (2) Thường phát biểu sẻ gồm nhiều phát biểu nhỏ nối kết với liên từ "và" , "hay" , "vì " ,"kết là" Một mệnh đề đơn (simple proposition) mệnh đề không chứa mệnh đề khác Một mệnh đề phức (compound proposition) mệnh đề tạo thành từ hai hay nhiều mệnh đề đơn Việc nối kết thực liên từ logic II CÁC LIÊN TỪ LOGIC ký hiệu ý nghóa and or hay not không ==> Với ký hiệu này, (4) viết sau: ( ( A ==> B ) and ( B ==> C ) and A ) ====> C Nếu A B Nếu B C A Thì suy C Tức mệnh đề phức hợp ( (A ==> B) and (B ==> C) and A ) ==> C Nói chung lý luận chuyển thành mệnh đề phức với dạng : ( (tiên đề 1) and (tiên đề ) and ) ====> kết luận III Ý NGHĨA CỦA CÁC LIÊN TỪ LOGIC BẢNG CHÂN TRỊ ( TRUE TABLE ) Các liên từ nối kết mệnh đề thành phần tạo nên mệnh đề mới, mà tính sai xác định từ tính sai mệnh đề thành phần theo qui luật khái quát bảng giá trị sai sau : Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao P not P T F -6- F T p q p and q p or q p ==> q F F T T F T F T F F F T F T T T T T F T p q T F F T T thay cho (True) , F thay cho sai (False) IV LÝ LUẬN ĐÚNG (valid argument) Một lý luận (argument) Có thể biểu diễn mệnh đề phức tiên đề nối kết với liên từ and tiên đề nối kết với kết luận liên từ ==> Định nghóa : Một lý luận (valid) với giá trị (đúng, sai) mệnh đề thành phần, luôn (true) Ví dụ 1: Lý luận (4) với khả A,B,C mệnh đề : ( (A ==> B) and (B ==> C) and A ) ==> C có gía trị Bảng chân trị sau khẳng định điều A B F F F F T T T T F F T T F F T T C F T F T F T F T ( (A ==> B) and (B ==> C) and A ) ==> C ( ( ( ( ( ( ( ( T T T T F F T T and and and and and and and and T T F T T T F T and and and and and and and and F ) F ) F ) F ) T ) T ) T ) T ) ==> F ==> T ==> F ==> T ==> F ==> T ==> F ==> T (T) (T) (T) (T) (T) (T) (T) (T) Ví dụ 2: Lý luận (3) sai Đặt : A : hôm trời đẹp Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao -7- B : Tôi chơi C : Tôi trễ Dạng lý luận (3) : ( (A ==> B) and (B ==> C) and C ) ==> A laø sai với A, B False , C true mệnh ñeà : ( (A ==> B) and (B ==> C) and C ) ==> A nhận gía trị False A B C ( (A ==> B) and (B ==> C) and C ) ==> A F F T ( Traàn Hoàng Thọ T and T and T ) ==> F Khoa Toán – Tin học Kỹ thuật lập trình nâng cao -8- V TƯƠNG ĐƯƠNG (Equivalence) Cho hai mệnh đề P , Q Định nghóa : P Q gọi tương đương (ký hiệu P ≡ Q), mệnh đề P Q nhận giá trị (True) với khả sai mệnh đề thành phần Ta chứng minh tương đương cách lập bảng chân trị Ví dụ: chứng minh : p and q Bảng chân trị : ≡ not (not p or not q ) p q p and q not ( not p or not q ) F F T T F T F T F F F T not ( T not ( T not ( F not ( F or or or or T ) F ) T ) F ) Một số tương đương hữu ích ( chứng minh chúng cách lập bảng chân trị) a) Các : P or true ≡ true P or false ≡ p p and true ≡ p p and false ≡ false true ==> p ≡ p false ==> p ≡ true ≡ true p ==> true p ==> false ≡ not p b) Luật loại trừ trung gian : p or not p ≡ true c) Luật mâu thuẫn : p and not p ≡ false p d) Luật phủ định : not not p ≡ e) Luật Kết hợp : p or (q or r) ≡ (p or q) or r p and (q and r) ≡ (p and q) and r p (q r) ≡ (p q) r f) Luaät giao hoaùn : p and q ≡ q and p p or q ≡ q or p p q ≡ q p g) luật phân phối : p and (q or r) ≡ (p and q) or (p and r) p or (q and r) ≡ (p or q) and (p or r) h) Luật đồng : p or p ≡ p p and p ≡ p i) Luaät De Morgan : not (p or q) ≡ not p and not q not (p and q) ≡ not p or not q Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao j) Luật hàm ý k) luật -9- p ==> q ≡ not p or q p ==> q ≡ not q ==> p ((p and q) ==> r ) ≡ (p ==> (q ==> r) ) : p q ≡ ( (p ==> q) and (q ==> p) ) p q ≡ ((p ==> q) and (not p ==> not q)) p q ≡ ((p and q) or (not p and not q)) : VI TÍNH THAY THẾ , TÍNH TRUYỀN VÀ TÍNH ĐỐI XỨNG Khi mệnh đề P Q tương đương ta thay mệnh đề mà không làm sai trị mệnh đề Ta chứng minh tính chất (ví dụ tính đúng) mệnh đề cách biến đổi thành mệnh đề tương đương Ví dụ : chứng minh ( p and (p ==> q) ) ==> q lý luận hợp logic cách biến đổi tương đương (p and (p ==> q)) ==> q ≡ (p and (not p or q)) ==> q (hàm ý) ≡ ((p and not p) or (p and q)) ==> q (phân phối) ≡ (false or (p and q)) ==> q (mâu thuẫn) ≡ (p and q) ==> q (hằng) ≡ not (p and q) or q (hàm ý) ≡ (not p or not q) or q (De Morgan) ≡ not p or (not q or q) (kết hợp) ≡ not p or (q or not q) (giao hoaùn) ≡ not p or true ≡ true Quan hệ tương đương ( ≡ ) mệnh đề có tính : + Đối xứng : p ≡ q ta có q ≡ p + Bắc cầu : p ≡ q q ≡ r ta có p ≡ r VII BÀI TOÁN SUY DIỄN LOGIC Xét toán : Trên đảo có hai loại người sinh sống : quân tử tiểu nhân Quân tử nói thật tiểu nhân nói dối Một người hỏi dân cư A đảo : "có phải anh quân tử ?" A đáp :"nếu quân tử thua tiền anh " Hãy chứng minh : A định phải thua tiền Ta mô hình hóa toán sau : Đặt mệnh đề P : A quân tử Q : A phải trả tiền Kết luận phải chứng minh Q Khảo sát giả thiết toán: + Mệnh đề khẳng định : " A tiểu nhân " not P + A phát biểu mệnh đề S giả thiết cho biết : Nếu A quân tử S phải tức : P ==> S Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao - 95 - {y = xn } + Dựa vào luật bỏ khẳn định trung gian {0 y = xn + Phaàn vòng lặp : I(y,z,k) and (k ) ==> I(y*x,z,k-1) Theá I(y,z,k) ≡ ( k >= ) and (y*zk = xn ) tá có ba đckc : (Phần chuẩn bị) : ( (1*xn = xn ) and (0 pre(S,Q) Các chức V'(S, Q), pre(S,Q), V(S,P,Q) trình kiểm chứng tính mô tả mệnh đề sau : (P1) Nếu điều kiện cần kiểm chứng tập hợp V’(S,Q) S có điều kiện dựa đkđ pre(S,Q) đkc Q (P2) Nếu điều kiện cần kiểm chứng tập hợp V(P,S,Q) S có điều kiện dựa đkđ P đkc Q Tính chất (P1) chứng minh quy nạp kích thước S, kích thước S có cách đếm cho lần xuất ký hiệu ':=', ';', 'if', 'while' S Tính chất (P2) hệ trực tiếp (P1) Chú ý pre(S,Q) khác với wp(S,Q) đoạn lệnh S có lệnh while Điều xác nhận trường hợp tổng quát, khả tạo lập công thức đóng (closed formula) cho đkđ yếu lệnh while nhấn mạnh tầm quan trọng việc ghi nhận tính chất bất biến sưu liệu chương trình Ví dụ : a) Với dẫy lệnh S : tg := tg + a[k] ; k := k+1 ; Trần Hoàng Thọ Khoa Toán – Tin học Kỹ thuật lập trình nâng cao đkc đkđ - 97 - Q ≡ I(k,tg) ≡ (tg = S(i :

Ngày đăng: 24/10/2013, 11:38

HÌNH ẢNH LIÊN QUAN

Hình kế tiếp trong mỗi dãy hình trên là gì ?   Tính chất bất biến của mỗi dãy là gì ?       (a) Lặp lại bộ 3 hình vuông, tròn, tam giác - Giáo trình lập trình mạng đại học Đà Lạt
Hình k ế tiếp trong mỗi dãy hình trên là gì ? Tính chất bất biến của mỗi dãy là gì ? (a) Lặp lại bộ 3 hình vuông, tròn, tam giác (Trang 77)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w