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 ...
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 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Kỹ thuật xây dựng chương trình phần mềm Xây dựng chương trình phần mềm Chương trình phần mềmTài liệu có liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 311 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 251 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 223 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 189 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 160 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 127 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 121 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 115 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 113 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 112 0 0