Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 5 - Hàm và cấu trúc chương trình được biên soạn bao gồm các nội dung chính sau: Khái niệm hàm; Định nghĩa hàm; Khai báo hàm; Tổ chức chương trình; Các loại biến đặc biệt. Mời các bạn cùng tham khảo bài giảng!
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KỸ THUẬT LẬP TRÌNH HỆ CƠ ĐIỆN TỬ Programming Engineering in Mechatronics Giảng viên: TS. TS. Đặng Thái Việt Đơn vị: Bộ mơn Cơ điện tử, Viện Cơ khí Hà Nội, 09/2017 KỸ THUẬT LẬP TRÌNH HỆ CƠ ĐIỆN TỬ Tổng quan về ngơn ngữ lập trình Cấu trúc Giới thiệu sơ bộ ngơn ngữ C Vào/ra trong C Kiểu, tốn tử và biểu thức Cơ sở của C++ Dịng điều khiển 10 Lớp Hàm và cấu trúc chương trình 11 Kế thừa và đa hình Con trỏ và mảng 12 Luồng vào/ra trong C++ CHƯƠNG 5. Hàm và cấu trúc chương trình 5.1 Khái niệm hàm 5.2 Định nghĩa hàm 5.3 Khai báo hàm 5.4 Tổ chức chương trình 5.5 Các loại biến đặc biệt Khái niệm hàm 1. Khái niệm hàm • • • • Một vấn đề phức tạp thường chia nhỏ thành phần đơn giản để giải (lập trình top-down) Những phần gọi hàm hay chương trình con: Là nhóm lệnh để thực việc cụ thể, dùng lại nhiều lần Hàm main() gọi hàm để giải vấn đề phức tạp ban đầu Hai nhóm hàm: Hàm định nghĩa trước: printf, scanf, cout, cin Hàm người dùng định nghĩa Khái niệm hàm • • Mơ hình hướng chức Khái niệm Cấu trúc chương trình - Là đơn vị chức chương trình Mỗi chức chương trình cài đặt nhiều hàm - Nên hàm gọi “chương trình con” Khái niệm hàm • Phân loại - Hàm main: hàm chương trình - Hàm con: hàm cịn lại • Cấu trúc: Gồm phần - Phần đầu (header): lại gồm tên hàm, kiểu giá trị trả (void kiểu liệu), danh sách tham số (có thể rỗng) - Phần thân (body): khối lệnh chứa lệnh cài đặt cho chức hàm Khái niệm hàm Ví dụ: chương trình • Các thao tác với hàm - Định nghĩa hàm (definition) - Khai báo hàm (declaration) - Gọi hàm (call) Định nghĩa hàm 1.1 Định nghĩa hàm • Là phần cài đặt chi tiết cho hàm • Mỗi hàm cần có định nghĩa • • • Định nghĩa đặt trước sau hàm main Không cho phép đặt định nghĩa hàm lồng định nghĩa hàm khác, kể hàm main Khi định nghĩa hàm cần phải xác định đầy đủ, chi tiết tất thành phần hàm đó, gồm phần đầu phần thân Định nghĩa hàm • Phần đầu hàm: - Tên hàm - Kiểu liệu trả cho hàm (kiểu hàm) - Tên, kiểu liệu cho tham số, kiểu tham số đầu vào, đầu ra, hai) Định nghĩa hàm Cấu trúc chức hàm - Lưu ý tham số đầu ra: Trong C++, tham số đóng vai trị đầu (hoặc vừa đầu vào vừa đầu ra, đầu ra) phải kiểu trỏ 10 Khai báo hàm • Ví dụ : Chương trình USCLN 21 Khai báo hàm #include #include //int uscln(int a, int b); //Khai báo hàm void uscln(int a, int b, int* u); //Khai báo hàm void main() { unsigned int x,y,u; printf("nhap so nguyen duong x, y : "); scanf("%u%u", &x,&y); //u = uscln(x,y); //Gọi hàm uscln(x,y,&u); //Gọi hàm printf("USCLN (%d,%d) = %u",x,y,u); getch(); }//end main int uscln(int a, int b){ //Định nghĩa hàm while(a!=b) if(a>b) a -= b; else b -= a; return a; } 22 Khai báo hàm 23 Tổ chức chương trình 2. Tổ chức chương trình - Tất phần chương trình nằm tệp - Chia phần chương trình nhiều tệp khác Khi có nhiều tệp chương trình, chúng thường tổ chức project 24 Tổ chức chương trình 2.1 Mục đích của tổ chức chương trình nhiều tệp - Hỗ trợ việc phân chia chương trình thành modul nhỏ hơn, modul cài đặt tệp - Hỗ trợ việc phát triển chương trình theo nhóm gồm nhiều người lập trình, cần phải chia chương trình làm nhiều modul, người cần viết modul đó; sau đến cuối cần phải lắp ghép tất modul lại với để thành chương trình hồn chỉnh - Hỗ trợ việc tái sử dụng thành phần chương trình cách thuận tiện, qua việc xây dựng tệp thư viện 25 Tổ chức chương trình 2.2 Tệp chủ yếu trong C - Tệp chương trình nguồn (source file): thường có phần mở rộng “.c”: tệp chủ yếu chứa định nghĩa thành phần liệu hàm • - Tệp phần đầu (header file): thường có phần mở rộng “.h”, tệp thường chứa khai báo liệu hay hàm Ví dụ : Chương trình tính tổng dãy số, tìm USCLN tổng Chương trình tổ chức tệp 26 Tổ chức chương trình - main.c: chứa hàm main(), chứa lời gọi đến hàm tính tổng dãy số tính USCLN - myLib.c: chứa định nghĩa hàm tính tổng dãy số tính USCLN - myLib.h: chứa khai báo cho hàm tính tổng dãy số tính USCLN 27 Tổ chức chương trình #include #include #include "myLib.h“ int main(int argc, char *argv[]) { //float sum(float [], int); float x[N] = {1,3,5,7,9,11}; float y[N] = {2,4,6,8,10,12}; float s1 = sum (x,N); float s2 = sum (y,N); printf("Tong cua day so =%.0f\n",s1); printf("Tong cua day so =%.0f\n",s2); printf("USCLN cua tong day = %d\n", uscln((int)s1,(int)s2)); system("PAUSE"); } 28 Tổ chức chương trình #define N int uscln(int a, int b); float sum(float [], int ); 29 Các loại biến đặc biệt 3. Các loại biến đặc biệt - Biến kiểu static: loại biến có phạm vi sử dụng giống biến non-static thơng thường (có thể cục tồn cục), lại có vịng đời suốt vịng đời chương trình 30 Các loại biến đặc biệt - Biến kiểu extern: biến (external), tức có biến tồn cục mà phạm vi sử dụng vượt ngồi tệp chứa nó, tệp khác muốn sử dụng biến phải khai báo biến với từ khóa • Ví dụ : Biến Static #include #include int main(){ int i; for (i=0;ib) a -= b; else b -= a; return a; } 22 Khai báo hàm 23 Tổ chức? ?chương? ?trình 2. Tổ chức? ?chương? ?trình - Tất phần chương trình nằm tệp - Chia phần chương trình nhiều tệp khác Khi có nhiều tệp chương. .. Hàm và cấu trúc? ?chương? ?trình 11 Kế thừa và đa hình Con trỏ và mảng 12 Luồng vào/ra trong C++ CHƯƠNG? ?5. Hàm và cấu trúc chương? ?trình 5. 1 Khái niệm hàm 5. 2 Định nghĩa hàm 5. 3 Khai báo hàm 5. 4 Tổ chức? ?chương? ?trình