Giáo án - Bài giảng: Công nghệ thông tin: Giới thiệu về nguyên lys và phương pháp lập trình (Ôn tập)

22 731 0
Giáo án - Bài giảng: Công nghệ thông tin: Giới thiệu về nguyên lys và phương pháp lập trình (Ôn tậ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

Nguyên Lý Và Phương Pháp Lập Trình MỘT SỐ BÀI TẬP TRONG CÁC CHƯƠNG Bài đó? Cho biết phẩm chất chương trình giải thích phẩm chất Có 10 phẩm chát chương trình: - Tính đắn, tính xác (correctness): chương trình phải thực đáp ứng chức theo yêu cầu lập trình ban đầu - Tính chắn (robustness): phân tích chương trình thành chương trình con, tính độc lập chương trình chương trình cao tốt - Tính thân thiện (user friendliness): chương trình phải dễ nhìn, trực quan dễ sử dụng - Khả thích nghi (adapability): chương trình có khả phát triển, tiến hóa theo yêu cầu - Tính tái sử dụng (reuseabitilty): chương trình dùng làm phần chương trình khác - Tính tương liên (interoperability): khả tương tác với người dùng với phần mềm khác - Tính hiệu (efficiency): chương trình phải thực chức giới hạn tài nguyên cho thấp - Tính khả chuyển (porability): khả chuyển đổi dễ dàng mơi trường - Tính an tồn (security): chương trình phải đảm bảo an tồn thơng tin cho hệ thống máy tính vận hành, khơng phát sinh hay lây lan virus làm tổn hại đến hệ thống - Tính dừng (halt): chương trình khơng chạy vơ hạn mà phải dừng sau khoảng thời gian xác định Bài Giải thích tính dừng chương trình? Chương trình khơng chạy vơ hạn mà phải dừng sau khoảng thời gian xác định Có nghĩa là: - Chương trình phải tồn điều kiện dừng (điều kiện kết thúc) để xuất kết cho người dùng - Nếu không xuất kết mong muốn chương trình phải thơng báo lỗi cho người dùng biết đồng thời kết thúc chương trình giới hạn tài nguyên vượt mức cho phép Bài Giải thích tính đắn chương trình, nguồn gốc sai sót Cho biết cách kiểm tra tính đắn chương trình? Tính đắn, tính xác (correctness): chương trình phải thực đáp ứng chức theo yêu cầu lập trình ban đầu Có nguồn gốc sai sót: - Dữ liệu - Cú pháp - Ngữ nghĩa Các cách kiểm tra tính đắn chương trình: - Sai sót liệu: dùng kiểm tra liệu - Sai sót cú pháp: dùng trình biên dịch - Sai sót ngữ nghĩa: khó phát hiện, ta sử dụng:  Test nội  Test người dùng - Phương pháp kiểm sửa ngẫu nhiên:  Đảm bảo trường hợp kiểm tra  Thường bị lỗi gã rẽ, phải duyệt qua lần  Thêm vào m lỗi giả chương trình N lỗi Bài Cho biết kỹ thuật tối ưu hóa chương trình đưa ví dụ minh họa? Bài Các kỹ thuật tối ưu hóa thời gian? Có cách tối ưu hố chương trình: Tối ưu hố thời gian (tăng khơng gian) Tối ưu hố khơng gian (tăng thời gian) Tối ưu hố thời gian khơng gian (thuật tốn thay đổi) Tối ưu hố thời gian tối ưu hố khơng gian: thuật tốn khơng thay đổi mà thay đổi cấu trúc liệu cấu trúc chương trình Tối ưu hố thời gian khơng gian thuật tốn thay đổi ( vòng lặp, việc rẻ nhánh, cấu trúc điều khiển,…) Tối ưu hoá thời gian: Kỹ thuật tối ưu hố việc rẽ nhánh + Khơng để điều kiện Ai theo thứ tự ngẫu nhiên + Phải Ai theo xác suất sai Ai giảm dần Kỹ thuật tối ưu vòng lặp + Tách lệnh không phụ thuộc vào số lặp khỏi vịng lặp + Giảm số tốn tử phức tạp vòng lặp nhờ biến phụ VD: Đoạn chương trình gốc Đoạn chương trình tối ưu sx=sin(x) … … vòng lặp vòng lặp … … sin(x) + … sx + … … … + Giảm số vòng lặp chương trình Thực nhiều cơng việc vịng lặp Đoạn chương trình gốc Đoạn chương trình tối ưu for(i=1,ir đoạn cần xếp k=n; //ghi nhận vị trí k xảy hốn vị sau // để làm sơ thu hẹp đoạn l->r  Bước 2: Bước 2a: j=r; //đẩy phần tử nhỏ đầu mảng Trong j>l a[j] -> a -> a ->b ->b ->c ->c Bài 22 Viết văn phạm cho ngôn ngữ chứa chuỗi ký tự cho ký tự sau b lập lại số lần ký tự đứng trước Ví du ab, aaaabbbb ngơn ngữ, a, abb, ba, aaabb ngôn ngữ cách viết 1: ::= | ::= | ::= a ::= b cách viết 2: G({S,A,B,G},{a,b},P,S) luật P: S -> AGB | G G -> AB | G A -> a B -> b Bài 23 Chứng minh chương trình sau đúng: {true} if x > then x := x else x := – x {x ≥ 0} Bài 21 (Bài 21B) Chứng minh tính chương trình: {n > 0} while n > n := n – {n = 0} Bài 24 Chứng minh tính phận chương trình sau: {true} i := 1; while a[i] ≠ x i := i + { a[i] = x Bài 25 ( ∃j: j ≥ a[j] = x i j)} Thực kiểm tra văn phạm hồi qui không trái (pairwise disjoint test): a) a A → aB | b | cBB A -> aB | b | CBB first (aB) = a first (b) = b first (cBB) = c b) b B → aB | bA | aBb B -> aB | ba | aBb first (aB) = a first (ba) = b first (aBb) = a c) c C → aaA | b | caB C -> aaA | b | caB first (aaA) = a first (b) = b first (caB) = c Bài 26 Xác định trị từ vựng hình thành token chương trình sau: a Pascal: Function max(I, j : integer) : integer; begin if i>j then max :=i else max := j; end; b C: int i, j; int max(i, j) { return i>j ? i:j; } Bài 27 Xây dựng NFA cho biểu thức qui sau đây: a) (a|b)* b) (a* | b*)* c) (a|b)* abb (a|b)* Bài 28 Xây dựng DFA cho biểu thức qui sau: a (a|b)*a(a|b) b (a|b)*a(a|b)(a|b) c (a|b)*a(a|b)(a|b)(a|b) ... cầu lập trình ban đầu Có nguồn gốc sai sót: - Dữ liệu - Cú pháp - Ngữ nghĩa Các cách kiểm tra tính đắn chương trình: - Sai sót liệu: dùng kiểm tra liệu - Sai sót cú pháp: dùng trình biên dịch -. .. c Luật sinh gồm có -> -> a -> a -> b -> b -> c -> c Bài 22 Viết văn phạm cho ngôn ngữ chứa chuỗi ký tự cho ký tự sau b lập lại số lần ký tự đứng... G({S,A,B,G},{a,b},P,S) luật P: S -> AGB | G G -> AB | G A -> a B -> b Bài 23 Chứng minh chương trình sau đúng: {true} if x > then x := x else x := – x {x ≥ 0} Bài 21 (Bài 21B) Chứng minh tính chương trình: {n > 0}

Ngày đăng: 18/04/2014, 10:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan