CHƯƠNG 3 các kỹ THUẬT xây DỰNG CHƯƠNG TRÌNH PHẦN mềm 5 các kỹ THUẬT xây DỰNG hàm THỦ tục

49 233 0
CHƯƠNG 3 các kỹ THUẬT xây DỰNG CHƯƠNG TRÌNH PHẦN mềm 5  các kỹ THUẬT xây DỰNG hàm THỦ tụ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

• Với toán, làm để: – Thiết kế giải thuật nhằm giải toán – Cài đặt giải thuật chương trình máy tính - Hãy làm cho chương trình chạy trước tăng tính hiệu chương trình - Hãy tăng tính hiệu chương trình đồng thời thể tốt phong cách lập trình cá nhân CHƯƠNG III CÁC KỸ THUẬT XÂY DỰNG CHƯƠNG TRÌNH PHẦN MỀM I II III IV V Mở đầu Làm việc với biến Viết mã chương trình hiệu Thiết kế chương trình Xây dựng hàm/thủ tục V CÁC KỸ THUẬT XÂY DỰNG HÀM/THỦ TỤC Một số khái niệm thường gặp Nguyên tắc chung Các quy tắc tăng tốc độ Kỹ thuật chồng/ đa hóa hàm/toán tử Một số khái niệm thường gặp • Biểu thức (expression): tính toán giá trị đích dựa giá trị nguồn • Lệnh gán (assigment): lưu trữ giá trị biểu thức biến nguồn vào biến đích a Hàm định nghĩa sẵn • • • • Được định nghĩa thư viện Cần khai báo thư viện đầu chương trình để dùng hàm Ví dụ: thư viện cmath, hàm sqrt tính bậc hai số the_root = sqrt(9.0); – – – 9.0 : tham số, biến biểu thức the_root : biến lưu kết trả (3.0) sqrt(9.0) : lời gọi hàm (kích hoạt việc thực hàm sqrt), sử dụng biểu thức bonus = sqrt(sales) / 10; cout [...]... của chương trình: – Tái sử dụng từng phần chương trình – Hiệu năng của từng phần chương trình • Các vòng lặp: – Số lượng thao tác – Dữ liệu liên quan • Giao diện: – Cách truy nhập vào các hàm/ thủ tục – Số lượng hàm/ thủ tục định nghĩa trong giao diện • Các vấn đề gặp phải khi chương trình hoạt động Các biện pháp tăng tốc độ • • Có thể tăng tốc độ bằng cách sử dụng thêm bộ nhớ ( mảng ) Dùng thêm các. .. • Người dùng chương trình không cần biết chương trình được viết như thế nào, nhưng cần biết chương trình đó dùng để làm gì • Xây dựng hàm/ thủ tục như là các hộp đen: – LTV – người sử dụng hàm – cần biết hàm đó làm gì, không cần biết làm thế nào – LTV cần biết nếu đưa đúng các tham số vào hộp đen thì hộp đen sẽ trả ra kết quả gì c Che giấu thông tin • Thiết kế các hàm/ thủ tục dưới dạng các hộp đen chính... thông tin – Hàm được sử dụng mà không cần biết nó được viết như thế nào – Thân hàm được giấu đi • Điều này cho phép LTV – Thay đổi hoặc nâng cao hiệu quả của hàm bằng cách viết lại phần định nghĩa hàm – Đọc phần khai báo hàm và các chú thích tương ứng để biết cách sử dụng hàm Các yếu tố ảnh hưởng đến tốc độ chương trình • Giải thuật và thiết kế: – Đặc tính của từng giải thuật – Lợi ích của cách thiết... trúc: – Thời gian cho các phép toán thông dụng có thể giảm bằng cách sử dụng thêm các cấu trúc dữ liệu với các dữ liệu bổ xung hoặc bằng cách thay đổi các dữ liệu trong cấu trúc sao cho dễ tiếp cận hơn • Lưu các kết quả được tính trước: – Thời gian tính toán lại các hàm có thể giảm bớt bằng cách tính toán hàm chỉ 1 lần và lưu kết quả, những yêu cầu sau này sẽ được xử lý bằng cách tìm kiếm từ mảng hay... (a>b?a:b) • Các hàm inline cũng giống như macros vì cả 2 được khai triển khi dịch (compile time) – macros được khai triển bởi preprocessor, còn inline functions được truyền bởi compiler • Tuy nhiên có nhiều điểm khác biệt: – inline functions tuân thủ các thủ tục như 1 hàm binh thường – inline functions có cùng cú pháp như các hàm khác, chỉ có điều là có thêm từ khóa inline khi khai báo hàm – Các biểu... {0, 0, 2, 3* 3 -3, , 9*9-9}; } int f(int i) { if (i < 10 && i >= 0) { return values[i]; } return 0; } 3. 2 Loại bỏ những biểu thức thông thường • Đừng tính cùng một biểu thức nhiều lần! • Một số compilers có thể nhận biết và xử lý for (i = 1; i b) x = (a+1)*(a+2); 3. 4 Sử dụng các vòng lặp hợp lý • • Những điểm nóng - Hot spots trong phần lớn các chương trình đến từ các vòng lặp Đưa code ra khỏi các vòng lặp: – Thay vì thực hiện việc tính toán trong mỗi lần lặp, tốt nhất thực hiện nó chỉ một lần bên ngoài vòng lặp- nếu được • Kết hợp các vòng lặp – Loop fusion: – Nếu 2 vòng lặp... tách phần giao diện và phần cài đặt Bao gói dữ liệu Quản lý tài nguyên trước sau như một Thiết lập các hợp đồng và thông báo lỗi đến cho người dùng 2 Nguyên tắc chung • Tuân thủ các quy tắc đặt ra – Chỉ nên vi phạm 1 quy tắc nếu được đền bù bằng thứ đáng để mạo hiểm • Phong cách lập trình cần phải nhất quán – Nếu bạn chấp nhận một quy tắc như cách thức đặt tên hàm hay biến, hằng thì hãy tuân thủ nó... Mỗi số hạng lại dùng các phép toán với số dấu phẩy động • Nói chung các mô phỏng neural network gọi hàm này trăm triệu lần trong mỗi lần thực hiện • Chính vì vậy, tính sigmoid(x) chiếm phần lớn thời gian mô phỏng (khoảng 70-80%) Tính Sigmoid – Giải pháp • Thay vì tính hàm mọi lúc – Tính hàm tại N điểm và xây dựng 1 mảng – Chọn số các điểm (N = 1000, 10000, v.v.) tùy theo độ chính xác mong muốn • Tốn... hiện nhiều lần sau này a Đặt tên • Tên hàm / thủ tục: – Phải ngắn gọn và có tính chất gợi nhớ – Phải là động từ hoặc cụm động từ – Bắt đầu bằng chữ in hoa/in thường một cách thống nhất • Tên tham số: bất kỳ tên hợp lệ nào – Không nên trùng với tên của các biến trong CT b Trừu tượng hóa quy trình nghiệp vụ • “Black Box”: hộp đen tham chiếu tới thứ mà ta biết cách sử dụng, nhưng ta không biết phương ...CHƯƠNG III CÁC KỸ THUẬT XÂY DỰNG CHƯƠNG TRÌNH PHẦN MỀM I II III IV V Mở đầu Làm việc với biến Viết mã chương trình hiệu Thiết kế chương trình Xây dựng hàm/thủ tục V CÁC KỸ THUẬT XÂY DỰNG... biết cách sử dụng hàm Các yếu tố ảnh hưởng đến tốc độ chương trình • Giải thuật thiết kế: – Đặc tính giải thuật – Lợi ích cách thiết kế • Cấu trúc phân cấp chương trình: – Tái sử dụng phần chương. .. chương trình – Hiệu phần chương trình • Các vòng lặp: – Số lượng thao tác – Dữ liệu liên quan • Giao diện: – Cách truy nhập vào hàm/thủ tục – Số lượng hàm/thủ tục định nghĩa giao diện • Các vấn

Ngày đăng: 11/11/2015, 16:47

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