Tài liệu lập trình cấu trúc

21 771 4
Tài liệu lập trình cấu trúc

Đ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

Tài liệu lập trình cấu trúc

MỤC LỤC: Tóm tắt trang Giới thiệu trang Lập trình cấu trúc trang Lập trình cấu trúc ngữ cảnh cơng nghệ phần mềm trang Lập trình cấu trúc theo quan điểm TRIZ trang Khắc phục phức tạp để đạt độ tin cậy ổn định Cấu trúc lệnh(cấu trúc điều khiển) trang trang Đơn giản hóa hệ thống trang Lược bỏ bớt câu lệnh goto trang Ứng dụng TRIZ phương pháp Top – Down trang 11 Ứng dụng TRIZ phương pháp Bottom – Up trang 17 Lập trình cấu trúc xem xu hướng trang 21 Kết luận trang 22 Page | TĨM TẮT Bài luận trình bày vấn đề áp dụng số nguyên tắc TRIZ lập trình cấu trúc Tiếp cận lập trình cấu trúc tập trung vào mục – nguyên tắc sau TRIZ: a Nguyên tắc (Nguyên tắc phân nhỏ): Chia đối tượng thành phần độc lập, làm đối tượng trở nên tháo lặp được, tăng mức độ phân nhỏ đối tượng b Nguyên tắc (Nguyên tắc tách khỏi): tách phần gây phiền phức hay ngược lại tách phần cần thiết khỏi đối tượng c Nguyên tắc (Nguyên tắc kết hợp): Kết hợp đối tượng động nhất, đối tượng kế cận mặt thời gian, không gian d Nguyên tắc (Nguyên tắc vạn năng): Đối tượng thực số chức khác nhau, khơng cần có tham gia đối tượng khác e Nguyên tắc (Nguyên tắc chứa trong): Một đối tượng chứa bên đối tượng khác đối tượng khác lại chứa đối tượng thứ ba, đối tượng chuyển động xuyên suốt bên đối tượng khác f Nguyên tắc 16 (Nguyên tắc giải tác động thiếu thừa): Nếu khó nhận 100% hiệu ứng, kết cần thiết nên nhận nhiều chút Lúc tốn trở nên đơn giản dễ giải cách đáng kể I.GIỚI THIỆU: I.1 LẬP TRÌNH CẤU TRÚC LÀ GÌ: Lập trình cấu trúc tập lập trình thủ tục Trong chương trình máy tính, khối chức thực khơng theo trình tự mà cịn theo tình lặp lại nhiều lần Phương pháp lập trình cấu trúc dựa mơ hình tốn học Bohm Guiseppe, theo đó, chương trình máy tính viết dựa ba cấu trúc: trình tự, định vịng lặp.Trình tự nghĩa câu lệnh thực theo trình tự định: xuống.Quyết định qui định thực chương trình phụ thuộc vào thoả mãn điều kiện định Vòng lặp thể thực có tính lặp số đoạn lệnh chương trình điều kiện thỏa mãn.Thơng qua cấu trúc trên, mã chương trình trở nên sáng sủa dễ đọc Phương pháp lập trình thủ tục hay lập trình cấu trúc thường đơi với phương pháp phân tích xuống (top-down) Theo phương pháp này, người thiết kế hệ thống chia chức (hàm) hệ thống thành chức nhỏ hơn, đến lượt mình, chức nhỏ lại Page | chia tiếp thành chức nhỏ khối (hàm) chương trình đủ nhỏ Việc phân tích thể trực quan theo sơ đồ khối I.2 LẬP TRÌNH CẤU TRÚC TRONG NGỮ CẢNH CƠNG NGHỆ PHẦN MỀM Gần cuối năm 1960 phạm vi phát triển phần mềm ngày mở rộng, lúc môn khoa học công nghệ phần mềm đời Các ngơn ngữ lập rình COBOL FORTRAN sử dụng cho ứng dụng kinh tế khoa học Để làm cho chương trình đạt hiệu thời gian không gian nhớ, thường sử dụng câu lệnh Goto để xây dựng nên quy trình phức tạp cho dù bị bị cho chương trình phức tạp, rắc rối E.Dijkstra cho thấy nguy hại câu lệnh Goto sử dụng chương trình dễ dàng để hiểu ủng hộ cho lập trình cấu trúc loại bỏ lệnh Goto thay vào sử dụng khái niệm điều khiển bao gồm (Sequencing, Selection Loop) Với hàm lập trình – người lập trình khuyến khích để thiết kế/viết code cho mơ hình chương trình bước bước theo phong cách từ xuống Nhiều người lập trình thời điểm phản đối ý kiến Dijkstra, cho rằng: “việc viết chương trình mà cần có construct điều khiển không dễ chút cho lệnh goto cần thiết nhiều trường hợp” Dijkstra đưa chứng cho thấy chương trình viết với construct kiểm sốt (ơng đưa dẫn chứng lệnh goto viết với Selection nhảy ngược trở lại với vịng lặp (Loops) Trong lúc thí nghiệm, vài construct điển khiển khác đề xuất thêm, bao gồm lựa chọn nhiều tuyến đường đi, lặp có điều kiện, ngắt vịng lặp, xử lý ngoại lệ Vì đề xuất lập trình cấu trúc đồng ý Nó hiểu lập trình cấu trúc quy trình mà có đầu vào đầu nên tinh chế bước cách sử dụng construct điều khiển construct điều khiển khác biểu diễn hình Page | Hình 1: construct điều khiển Hình 2: construct điều khiển phụ Hình ví dụ minh họa đoạn chương trình viết cách khác cách khác Page | Hình 3: đoạn chương trình viết theo cách khác Hình 4: đoạn chương trình viết theo cách khác Để phân biệt đối số, trường hợp đơn giản minh họa hình cách so sánh biểu đồ luồng vẽ theo cách khác nhau: Goto (hình a), lập trình cấu trúc viết theo phương pháp copy (hình b1) phương pháp biến điều khiển (hình b2), construct phụ (hình c) II LẬP TRÌNH CẤU TRÚC THEO QUAN ĐIỂM CỦA TRIZ Page | Bây giờ, xem lập trình cấu trúc theo cách nhìn TRIZ II.1 Cần khắc phục phức tạp để đạt tin cậy, ổn định: Từ quan điểm TRIZ phát triển hệ thống kỹ thuật, rõ ràng thấy cần thiết công nghệ phần mềm lập trình cấu trúc Giống bât hệ thống kỹ thuật khác, hệ thống phần mềm phát triển cách nhanh chóng, ngày rộng lớn mạnh mẽ chức chúng – đồng nghĩa với độ phức tạp cao Để phát triển hệ thống phần mềm xa – cần phát triển vài phương thức để cho hệ thống trở nên đơn giản dễ dàng kiểm sốt, điều khiển Bởi quan tâm khách hàng, người dùng là: hiệu suất -> độ tin cậy -> tiện lợi -> giá thành II.2 Cấu trúc lệnh (cấu trúc điều khiển): Một chương trình máy tính chất mã hóa thuật tóan Thuật tóan coi dãy hữu hạn thao tác sơ cấp tập đối tượng vào (Input) nhằm thu kết (Output) Các thao tác ngơn ngữ lập trình cụ thể điều khiển lệnh hay cấu trúc điều khiển, cịn đối tượng chịu thao tác mô tả biểu diễn thông qua cấu trúc liệu Trong ngơn ngữ lập trình cấu trúc, cấu trúc lệnh sau sửdụng để xây dựng chương trình Dĩ nhiên, khơng bàn tới cấu trúc nhảy không điều kiện goto ngôn ngữ lập trình cấu trúc trang bị cấu trúc lệnh goto Page | Page | II.3 Đơn giản hóa hệ thống cách sử dụng cấu trúc phân cấp, có thứ bậc: Một hệ thống phần mềm hay mơ hình phần mềm xem hệ thống nghĩa chung TRIZ Một hệ thống tồn thành phần làm việc để thi hành chức đó, tạo giá trị xuất nhờ sử dụng giá trị nhập vào (output – input) Khái niệm cấu trúc phân cấp hệ thống kiến thức TRIZ Nó phát biểu nguyên tắc (Nguyên tắc chứa trong): - Đặt đối tượng hay hệ thống đối tượng hay hệ thống khác - Đặt vài đối tượng hay vài hệ thống bên đối tượng hay hệ thống khác Nguyên tắc đóng vai trị quan trọng giới phần mềm, việc xây dựng cấu trúc hệ thống phần mềm phổ biến dễ dàng Khuyến khích phát triển hệ thống phần mềm theo cấu trúc phân cấp từ cao xuống thấp Bên cạnh TRIZ cịn đưa ngun tắc để đơn giản hóa hệ thống trở nên phức tạp Chẳng hạn nguyên tắc (vạn năng), nguyên tắc (chia nhỏ) nguyên tắc (tách khỏi) Nguyên tắc phát biểu rằng: - Một đối tượng hay hệ thống thực nhiều chức khác nhau, khơng cần tham gia đối tượng hay hệ thống khác Ý tưởng nguyên tắc vạn để đơn giản hóa hệ thống phức tạp nhiên có đơi chút khác biệt khơng đáng kể: “đưa chức – chuẩn hóa sử dụng chúng nơi diện rộng ứng dụng” Page | Nguyên tắc (Chia nhỏ) phát biểu rằng: - Chia đối tượng thành phần độc lập - Làm cho đối tượng trở nên tháo lắp - Tăng mức độ phân nhỏ đối tượng Nguyên tắc thường áp dụng ứng dụng, hệ thống phần mềm khó làm trọn gói, nguyên khối, lần Hay nói cách khác giúp phân nhỏ đối tượng, vấn đề thành phần nhỏ cho dễ quản lý, dễ thực II.4 Lược bỏ bớt câu lệnh goto: Kỹ thuật lược bỏ TRIZ áp dụng để đơn giản ứng dụng, hệ thống phức tạp Trong lập trình cấu trúc xem xét đến việc bỏ bớt số lệnh Goto Khi thành phần hệ thống bị hư hay khơng cịn cần thiết loại bỏ Chúng ta dựa vào việc trả lời câu hỏi sau để định có nên loại bỏ thành phần hay khơng ứng dụng: Thành phần bị loại bỏ có chức có ích ứng dụng (hệ thống) hay khơng? Nếu có, tính hữu dụng thi hành phạm vi đối tượng toàn ứng dụng ? Trước đề xuất thay lệnh goto construct kiểm sốt lập trình cấu trúc, thấy câu lệnh goto có chức có ích việc tạo quy trình kiểm sốt việc nhảy đến vị trí mà muốn chương trình Lập trình cấu trúc lúc đầu đề nghị thay câu lệnh goto construct điều khiển Nhưng nhiều người lại phản đối construct điều khiển khơng đủ tiện lợi mạnh mẽ để thay cho câu lệnh goto Và vấn đề tranh luận việc nên loại bỏ lệnh goto chấp thuận sau construct điều khiển thêm vào (được minh họa hình 2) Vì vậy, theo nguyên tắc (tách khỏi) TRIZ rõ ràng lệnh goto nên loại bỏ Bởi lệnh goto thường làm cho quy trình trở nên phức tạp, làm cho việc viết ứng dụng trở nên khó hiểu, khơng rõ ràng Những câu lệnh goto nên loại bỏ, cách thay chúng construct điều khiển điều đảm bảo việc lồng khối lệnh thực cách Ở hình 3a trường hợp điển hình sử dụng lệnh goto phải bị cấm sử dụng lập trình cấu trúc Trong trường hợp này, khối luồng, nhánh câu lệnh Selection, chồng lên vi phạm cấu trúc phân cấp Xem hình đây: Page | Hình 5: ví dụ skewed nesting khối quy trình bị cấm lập trình cấu trúc Để ý cấu trúc phân cấp khối lệnh nhận cách dễ dàng cấu trúc chồng lên hay kiểu cấu trúc mạng phân cấp Các ngơn ngữ lập trình đại thiết kế sau khơng có lệnh Goto có giới hạn mặt cú pháp construct điều khiển để ngăn cấp skewed structures Vì mà người lập trình ngày sử dụng quy tắc lập trình cấu trúc mà khơng cần phải để ý tới Theo cách này, lập trình cấu trúc khuyến khích hay đảm bảo cấu trúc phân cấp khối quy trình mơ hình chương trình Việc gọi quy trình thủ tục hàm phương thức cho phép chồng luồng thủ tục Vì mà nói phân chia thành module phần mềm chiến lược để tạo đơn giản bên module dùng để hốn đổi module cách linh hoạt II.5 Ứng dụng TRIZ phương pháp Top – Down: Quá trình phân tích tóan thực từ xuống Từ vấn đề chung đến vấn đề cụ thể Từ mức trừu tượng mang tính chất tổng quan tới mức đơn giản đơn vị chương trình Một nguyên lý quan trọng lập trình cấu trúc phương pháp phân tích từ xuống (Top – Down) với quan điểm phải đứng cao để quan sát tổng thể ví trí thấp để quan sát hết xung quanh Page | 10 Quá trình phân rã tóan thực theo mức khác Mức thấp gọi mức tổng quan (level 0), mức tổng quan cho phép ta nhìn tổng thể hệ thống thơng qua chức nó, nói cách khác mức trả lời thay cho câu hỏi “Hệ thống thực gì?” Mức mức chức Ở mức này, chức cụ thể mô tả Một hệ thống đựơc phân tích thành nhiều mức khác nhau, mức thấp phép sử dụng dịch vụ mức cao Q trình phân tích tiếp tục phân rã hệ thống theo chức phụ nhận mức đơn thể, tiến hành cài đặt hệ thống Chúng ta làm rõ mức trình Top-Down thơng qua tóan sau: Cho hai số nguyên có biểu diễn nhị phân a = (a1, a2, , an), b = (b1, b2, , bn); a1, b1 = 0, 1, i = 1,2, n Hãy xây dựng tập thao tác hai số nguyên Mức tổng quan (level 0): Hình dung tịan thao tác số nguyên a = (a1, a2, , an), b = (b1, b2, ,bn) với đầy đủ chức Giả sử thao tác bao gồm: F1- Chuyển đổi a,b thành số nhị phân F2-Tính tổng số nguyên: a + b; F3-Tính hịêu số nguyên: a – b; F4-Tính tích số nguyên: a * b; F5-Thương số nguyên: a/b; F6-Phần dư số nguyên: a%b; F7-Ước số chung lớn số nguyên Mức 1: Mức chức chính: chức cần mơ tả đầy đủ thông tin vào (Input), thông tin (Output), định dạng (Format) hành động (Actions) Chức F1: Chuyển đổi a, b thành số hệ nhị phân Input: a: integer Output: a = (a1,a2, ,an); (*khai triển số b bất kỳ*) Format: Binary(a) Page | 11 Actions {Q = n; k = 0; While(Q!=0){ Ak = q mod b; q = q div b; k = k + 1; } ; } Chức F2: Tính tổng số nguyên a,b Input: a = (a1, a2, , an), b = (b1, b2, bn); Output: c = a + b; Format: Addition(a,b); Actions{ c = 0; for(j = 0; j < n; j++){ d = (aj + bj + c) div 2; sj = aj + bj + c – 2d; c = d; } sn = c; Page | 12 } Chức F3: Hiệu số nguyên a,b Input: a = (a1, a2, ,an), b = (b1, b2, bn); Output: c = a – b; Format: Subtraction(a,b); Actions{ b = -b; c = Addition(a,b); return(c); } Chức F4: Tích số nguyên a,b Input: a = (a1,a2, an), b = (b1b 2, bn); Output: c = a * b; Format: Multual(a,b); Actions{ For(j = 0; j < n; j++){ If(bj = 1) cj = a=b) a = Subtraction(a,b); return(a); } Chức F7: Ước số chung lớn số nguyên a,b Input: a=(a1, a2, an), b = (b1,b2, bn); Output: c=USCLN(a,b); Format: USCLN(a,b); Actions{ while(a!=b){ if(a>b) a = Subtraction(a,b); else b = Subtraction(b,a); }return(a); Page | 15 } Như phương pháp Top-Down vận dụng nguyên tắc (hay gọi nguyên tắc phân nhỏ) TRIZ, chia nhỏ tóan lớn, vấn đề lớn thành vấn đề nhỏ hơn, đơn giản Để ý đây, sau phân rã tóan mức 1, cần xây dựng hai phép tóan cộng phép tính nhân số nhị phân a b Vì hiệu hai số a b tổng số (a,b) Tương tự vậy, tích hai số a b biểu diễn tổng vài lần phép nhân bit nhị phân a với b Phép tìm USCLN tương tự Đối với hệ thống lớn q trình cịn mơ tả tiếp tục nhận mức đơn vị chương trình Trong ví dụ đơn giản này, mức đơn vị chương trình xuất mức nên không cần phân rã tiếp mà dừng lại để cài đặt hệ thống II.6 Ứng dụng TRIZ phương pháp Bottom – Up: Theo phương pháp này, từ chung, từ đối tượng thành phần mức cao tới đối tượng thành phần mức thấp, từ mức đơn vị chương trình tới mức tổng thể, từ đơn vị biết lắp đặt thành đơn vị Nếu phương pháp Top – Down phương pháp phân rã vấn đề cách có hệ thống từ xuống, ứng dụng chủ yếu trình phân tích, thiết kế hệ thống phương pháp Bottom – Up thường sử dụng cho trình cài đặt hệ thống Trong ví dụ phần 2.5 khơng thể xây dựng chương trình cách hòan chỉnh ta chưa xây dựng hàm Binary(a), Addition(a,b), Subtraction(a,b), Multial(a,b), Division(a,b), Modulation(a,b), USCLN(a,b) Chương trình sau thể trình cài đặt theo nguyên lý Bottom – Up: #include #include #include #include #include #include void Init(int *a, int *b){ printf(“\n Nhap a=”); scanf((“%d”, a); printf(“\n Nhap b=”); scanf((“%d”, b); Page | 16 } void Binary(int a){ int i, k = 1; for(i = 15; i >= 0; i ){ if(a & (k

Ngày đăng: 18/09/2012, 14:04

Hình ảnh liên quan

Hình 1: 3 construct điều khiển cơ bản - Tài liệu lập trình cấu trúc

Hình 1.

3 construct điều khiển cơ bản Xem tại trang 4 của tài liệu.
Hình 3: đoạn chương trình được viết theo 3 cách khác nhau. - Tài liệu lập trình cấu trúc

Hình 3.

đoạn chương trình được viết theo 3 cách khác nhau Xem tại trang 5 của tài liệu.
Hình 4: đoạn chương trình được viết theo 4 cách khác nhau. - Tài liệu lập trình cấu trúc

Hình 4.

đoạn chương trình được viết theo 4 cách khác nhau Xem tại trang 5 của tài liệu.
Một hệ thống phần mềm hay một mô hình phần mềm có thể được xem như là một hệ thống trong nghĩa chung của nó trong TRIZ - Tài liệu lập trình cấu trúc

t.

hệ thống phần mềm hay một mô hình phần mềm có thể được xem như là một hệ thống trong nghĩa chung của nó trong TRIZ Xem tại trang 8 của tài liệu.
Hình 5: ví dụ skewed nesting các khối quy trình bị cấm trong lập trình cấu trúc - Tài liệu lập trình cấu trúc

Hình 5.

ví dụ skewed nesting các khối quy trình bị cấm trong lập trình cấu trúc Xem tại trang 10 của tài liệu.

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan