Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
458 KB
Nội dung
Đại Học Bách Khoa Hà Nội Viện Điện Tử - Tin Học Ngôn ngữ lập trình C/C++ Chương 1: Ôn tập C Hàm cấu trúc chương trình Các nội dung • • • • Cấu trúc chương trình Hàm Cách tổ chức chương trình Một số loại biến đặc biệt chương trình Cấu trúc chương trình • Mô hình hướng chức main F1 F1.1 F1.2 F2 F1.3 F2.1 F2.2 F3 F2.3 F3.1 F3.2 Cấu trúc chương trình • VD: chức chương trình giải PT bậc main Nhập hệ số Tính delta Tính nghiệm Hàm • • • • Khái niệm Phân loại Cấu trúc hàm Các thao tác hàm Hàm • Khái niệm: – 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” • Phân loại: C phân làm loại hàm: – Hàm main: hàm chương trình – Hàm con: hàm lại Hàm • Cấu trúc hàm: gồm phần – Phần đầu (header): lại gồm tên hàm, kiểu giá trị trả (void kiểu DL), 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 float tinhDelta(float a, float b, float c) { float d; d = b*b – 4*a*c; return d; } Header Body Hàm • 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 • 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 • Cú pháp: T tên_hàm (T1 v1, T2 v2, …) { Lệnh 1; Lệnh 2; … } Header Body 10 Ví dụ • Kết chạy chương trình: 25 Ví dụ 2: chương trình tính USCLN số #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; } 26 Ví dụ • Kết chạy chương trình: 27 Tổ chức chương trình • Trong C ta tổ chức chương trình theo cách: – 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 28 Tổ chức chương trình nhiều tệp • Mục đích việc 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 hoà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 29 Tổ chức chương trình nhiều tệp • Có loại tệp chủ yếu 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 30 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: – 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 31 Tệp main.c #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"); } 32 Tệp myLib.c //#include "myLib.h“ int uscln(int a, int b){ while(a!=b) if(a>b) a -= b; else b -= a; return a; } float sum(float a[], int n){ int i; float sf=0; for (i=0;i[...]... quả chạy chương trình: 27 Tổ ch c chương trình • Trong C ta c thể tổ ch c một chương trình theo 2 c ch: – Tất c c c phần c a chương trình nằm trên 1 tệp – Chia c c phần c a chương trình trên nhiều tệp kh c nhau Khi c nhiều tệp chương trình, thì chúng thường đư c tổ ch c trong một project 28 Tổ ch c chương trình trên nhiều tệp • M c đích c a vi c tổ ch c chương trình trên nhiều tệp: – Hỗ trợ vi c phân... chứa c c lệnh xử lý cho phần đầu hàm – C thể khai báo thêm c c kiểu dữ liệu (biến/hằng) c phạm vi sử dụng c c bộ trong khối lệnh thân hàm – C c tham số trong phần đầu hàm đư c sử dụng như c c dữ liệu c c bộ, nhưng c n chú ý thêm đến vai trò vào/ra c a chúng – Phần này c thể chứa c c lệnh return (c ho c không c tham số) để th c hiện kết th c khối lệnh (và c trả về giá trị cho hàm này nếu c tham... ở file kh c thì c n phải c phần khai báo này – Khi khai báo thì tên c a c c tham số không quan trọng, và c thể bỏ đi, nhưng kiểu dữ liệu c a chúng thì nhất định phải đầy đủ – C c tham số c a hàm dùng khi định nghĩa/khai báo đư c gọi là tham số hình th c Còn sau này khi gọi hàm, c c tham số th c sẽ đư c sử dụng để thế chỗ cho c c tham số hình th c này 19 Một số ví dụ khai báo hàm • int uscln(int a,... hay c c hàm con 30 Ví dụ • Chương trình tính tổng c a 2 dãy số, rồi tìm USCLN c a 2 tổng đó Chương trình này đư c tổ ch c trên 3 tệp: – main .c: chứa hàm main(), trong đó chứa lời gọi đến c c hàm tính tổng 1 dãy số và tính USCLN – myLib .c: chứa định nghĩa c c hàm tính tổng 1 dãy số và tính USCLN – myLib.h: chứa khai báo cho c c hàm tính tổng 1 dãy số và tính USCLN 31 Tệp main .c #include #include... tái sử dụng c c thành phần c a chương trình một c ch thuận tiện, qua vi c xây dựng c c tệp thư viện 29 Tổ ch c chương trình trên nhiều tệp • C 2 loại 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 là “ .c : là tệp chủ yếu chứa định nghĩa c a c c thành phần dữ liệu và hàm – Tệp phần đầu (header file): thường c phần mở rộng là “.h”, là tệp thường chứa c c khai báo... 6 int uscln(int a, int b); float sum(float [], int ); 34 C c loại biến đ c biệt • Biến kiểu static: là loại biến c phạm vi sử dụng giống như biến non-static thông thường (c thể c c bộ ho c toàn c c) , nhưng lại c vòng đời trong suốt vòng đời c a c chương trình • Biến kiểu extern: là biến ngoài (external), t c là khi c một biến toàn c c mà phạm vi sử dụng c a nó vượt ra ngoài tệp chính chứa nó,... 23 Tham số th c và tham số hình th c Tham số hình th c float sum(float [], int); //Khai báo hàm float sum(float a[], int n){ //Định nghĩa hàm int i; float sf=0; for (i=0;i