Danh mục tài liệu

Bài giảng Kỹ thuật lập trình: Chương 3 - TS. Vũ Hương Giang (Phần 3)

Số trang: 49      Loại file: pdf      Dung lượng: 1.00 MB      Lượt xem: 10      Lượt tải: 0    
Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Phần 3 bài giảng Kỹ thuật lập trình - Chương 3: Các kỹ thuật xây dựng chương trình phần mềm" trình bày các kiến thức về Kỹ thuật xây dựng hàm/thủ tục bao gồm: 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 năng hóa các hàm/toán tử.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 3 - TS. Vũ Hương Giang (Phần 3)• Với mỗi bài toán, làm thế nào để: – Thiết kế giải thuật nhằm giải quyết bài toán đó – Cài đặt giải thuật bằng một chương trình máy tính - Hãy làm cho chương trình chạy đúng trước khi tăng tính hiệu quả của chương trình - Hãy tăng tính hiệu quả của chương trình và đồng thời thể hiện tốt phong cách lập trình của cá nhân CuuDuongThanCong.com https://fb.com/tailieudientucnttCHƯƠNG III.CÁC KỸ THUẬT XÂY DỰNGCHƯƠNG TRÌNH PHẦN MỀMI. Mở đầuII. Làm việc với biếnIII. Viết mã chương trình hiệu quảIV. Thiết kế chương trìnhV. Xây dựng hàm/thủ tục CuuDuongThanCong.com https://fb.com/tailieudientucnttV. CÁC KỸ THUẬT XÂYDỰNG HÀM/THỦ TỤC1. Một số khái niệm thường gặp2. Nguyên tắc chung3. Các quy tắc tăng tốc độ4. Kỹ thuật chồng/ đa năng hóa các hàm/toán tử CuuDuongThanCong.com https://fb.com/tailieudientucntt 1. 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 trên giá trị nguồn • Lệnh gán (assigment): lưu trữ giá trị của biểu thức hoặc của biến nguồn vào trong 1 biến đíchCuuDuongThanCong.com https://fb.com/tailieudientucntta. Hàm định nghĩa sẵn• Được định nghĩa trong các thư viện• Cần khai báo thư viện ở đầu chương trình để có thể dùng các hàm này• Ví dụ: trong thư viện cmath, hàm sqrt tính căn bậc hai của một số• the_root = sqrt(9.0); – 9.0 : tham số, cũng có thể là một biến hoặc là một biểu thức – the_root : biến lưu kết quả trả về (3.0) – sqrt(9.0) : lời gọi hàm (kích hoạt việc thực hiện hàm sqrt), cũng có thể được sử dụng như một biểu thứcbonus = sqrt(sales) / 10;cout b. Hàm do LTV định nghĩa• Khai báo hàm: – Chỉ ra cách thức gọi hàm – Phải khai báo trước khi gọi hàm – Cú pháp Kiểu_trả_về Tên_hàm (Kiểu_1 tên_tham_số_1,.., Kiểu_n tên_tham_số_n); Kiểu_trả_về Tên_hàm (Kiểu_1,.., Kiểu_n); //Chú thích: hàm dùng để làm gì• Ví dụ: khai báo hàm cho phép tính tổng chi phí theo công thức: tổng chi phí = số lượng hàng * giá mỗi mặt hàng + 5% thuế giá trị gia tăng double total_cost(int number_par, double price_par); double total_cost(int, double); CuuDuongThanCong.com https://fb.com/tailieudientucnttb. Hàm do LTV định nghĩa• Định nghĩa hàm: – Chỉ ra cách thức thực hiện nhiệm vụ của hàm – Định nghĩa trước hoặc sau khi gọi hàm đều được – Cú pháp: Kiểu_trả_về Tên_hàm (Danh_sách_tham_số) { //code return kết_quả; }• Ví dụ: double total_cost(int number_par, double price_par) { const double TAX_RATE = 0.05; //5% tax double subtotal; subtotal = price_par * number_par; return (subtotal + subtotal * TAX_RATE); } CuuDuongThanCong.com https://fb.com/tailieudientucnttc. Gọi hàm• Tên_hàm(tham_số_1, …, tham_số_n)• Giá trị được truyền vào các tham số của hàm sẽ được sử dụng trong phần thân hàm. – Pass by value: giá trị truyền vào là bản sao của giá trị lưu trữ trong biến đóng vai trò tham số đầu vào • Giá trị tham số không thay đổi khi được sử dụng trong thân hàm • Gọi hàm tham trị loại bỏ các thay đổi ngoài ý muốn lên các tham số – Pass by reference: giá trị truyền vào là địa chỉ của tham số đầu vào • Giá trị tham số có thể thay đổi khi được sử dụng trong thân hàm, do truyền biến gốc chứ không phải bản sao • Thay đổi giá trị của đối số trong hàm sẽ ảnh hưởng hoặc thay đổi trực tiếp lên biến gốc CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụvoid square_num (int *); Khai báo hàmint main(){ int p = 5; printf (P is now %d , p); square_num (&p); Truyền địa chỉ của p vào hàm square_num printf (P is now %d , p); Hàm thay đổi giá trị của p thành 25 return 0;}void square_num (int *num) Định nghĩa hàm, tham số vào là{ con trỏ num trỏ điến giá trị kiểu int (*num)= (*num) * (*num);} * biểu diễn giá trị mà con trỏ num trỏ đến CuuDuongThanCong.com https://fb.com/tailieudientucntt Viết hàm để hoán đổi giá trị hai biến? void trao_doi(int so1, int so2) { int temp; temp = so1; so1 = so2; so2 = temp; } void sap_xep_mang(int *a, int n) { int i, j, temp; for (i=0; iViết hàm để hoán đổi giá trị hai biến?void trao_doi(int *so1, int *so2) { int temp; temp = *so1; *so1 = *so2; *so2 = temp ...