Bài giảng ngôn ngữ lập trình c chương 4 hàm

17 261 1
Bài giảng ngôn ngữ lập trình c   chương 4  hàm

Đ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

CHƯƠNG 4: HÀM • Nội dung Khái niệm hàm Khai báo hàm Lời gọi hàm Nguyên tắc hoạt động hàm Truyền theo giá trị Phạm vi biến Hàm kiểu void Truyền theo địa Khi sử dụng đối trỏ Dùng hàm có giá trị trả hay hàm kiểu void Nguyên mẫu hàm • • • • • • • • Khái niệm hàm Hàm đoạn chương trình thực trọn vẹn công việc định Nó chia cắt công việc lớn thành công việc nhỏ Điều quan trọng hàm giúp để làm lại làm trước thay phải đầu chức dùng nhiếu lần đoạn chương trình Khai báo hàm Cách viết khai báo hàm sau: () { return } • Trong đó:  Kiểu hàm kiểu liệu (char, int, float, double, …) kiểu void  Tên hàm bắt buộc phải có hàm  Danh sách đối số (còn gọi tham số hình thức) có không tùy thuộc ta định dùng hàm làm  Phần bao dấu ngoặc {} gọi thân hàm, dấu {} bắt buộc hàm  Khi cần thêm số biến ta cần khai báo thêm Các biến gọi biến cục riêng hàm sử dụng  Phần câu lệnh thực nhiệm vụ hàm  Câu lệnh return có không, kiểu hàm void bắt buộc phải có Câu lệnh có nhiệm vụ trả giá trị cho nơi gọi hàm • • Lời gọi hàm Hàm sử dụng thông qua lời gọi tới Cách viết lời gọi hàm sau: ()  Số tham số thực phải số đối số  Kiểu tham số thực phải phù hợp với kiểu đối tương ứng Nguyên tắc hoạt động hàm  Cấp phát nhớ cho đối số biến cục  Gán giá trị tham số thực cho đối tương ứng  Thực câu lệnh thân hàm  Khi gặp câu lệnh return dấu “}” cuối thân hàm máy giải phóng đối, biến cục thóa khỏi hàm • • • • • • • • • • • • • • • Ví dụ 1: Hàm Max() sau trả giá trị lớn hai số thực float Max(float x, float y) { float res; //Khai báo thêm biến cục if(x > y) res = x; else res = y; return res; } void main() { float a = 3.6, b = 7.2; float max; max = Max(a, b); /* Lời gọi hàm Max() với hai tham số thực a b*/ } Truyền theo giá trị Trong cách truyền này, thay đổi vế mặt giá trị đối số hàm không làm thay đổi giá trị tham số thực tương ứng lời gọi hàm • • • • • • • • • • • • • void HoanVi(float a, float b) { float tam; tam = a; a = b; b = tam; } void main() { float x = 3.5, y = 7.6; HoanVi(x, y); /*Lời gọi hàm HoanVi() với hai tham số thực x y*/ ; //x y không bị thay đổi } Phạm vi biến  Trong ví dụ ta thấy hàm main() có biến i hàm LuyThua() có biến i, ảnh hưởng phạm vi chúng khác Biến i khai báo main() gọi biến cục main(), có tác dụng main() tác động bên main() Tương tự hàm LuyThua() Điều quan trọng cần nhớ biến khai báo hàm (biến cục bộ) tồn hàm gọi tới mà thôi, biến hàm gọi thực xong  Bên cạnh biến cục có biến nằm hàm gọi biến toàn cục, biến sử dụng nơi chương trình tồn suốt thời gian chương trình thực • • • • • • • • • • • • Hàm kiểu void Khi hàm không trả giá trị nào, hàm gọi hàm kiểu void Ví dụ: void In(int x, int y) { printf(“%d, %d\n”, x, y); } void main() { int i; for(i = 1; i [...]... hàm c giá trị trả về đối với c c hàm c tính chất giống hàm toán h c và trả về một giá trị duy nhất ho c đối với c c hàm mà lời gọi nó c n xuất hiện trong một biểu th c Dùng hàm kiểu void đối với c c hàm c tính chất th c hiện một hành động nào đó ho c đối với c c hàm c tính chất tính toán nhưng trả về c ng l c nhiều giá trị    Nguyên mẫu hàm Về nguyên t c khi gọi một hàm thì hàm đó phải đư c. .. thì hàm đó phải đư c định nghĩa trư c, nếu không chương trình sẽ bị lỗi Tuy nhiên c ng c thể gọi một hàm chưa đư c định nghĩa trư c bằng c ch khai báo trư c nguyên mẫu hàm Nguyên mẫu hàm th c chất là dòng đầu c a hàm và thêm vào dấu chấm phẩy Trong nguyên mẫu hàm c thể bỏ tên c c đối • • • • • • • • • • • • • • • • Ví dụ 4: Hoán vị hai số th c //khai báo nguyên mẫu hàm void HoanVi(float *a, float *b);... /*Lời gọi hàm HoanVi() với hai tham số th c là &x và &y */ ; //x và y đã bị thay đổi } Khi nào sử dụng đối là con trỏ Trong đối số c a hàm ta c thể chia làm hai loại: loại thứ nhất gồm c c đối chứa giá trị đã biết ta gọi chúng là c c đối vào, loại thứ hai gốm c c đối chúa kết quả nhận đư c ta gọïi chúng là c c đối ra C c đối ra phải là con trỏ   Dùng hàm c giá trị trả về hay hàm kiểu... Con trỏ là biến dùng để chứa địa chỉ c a biến kh c Có nhiều loại biến con trỏ chẳng hạn như con trỏ kiểu int dùng để chứa địa chỉ biến kiểu int, con trỏ kiểu float dùng để chứa địa chỉ biến kiểu float, … • C pháp khai báo con trỏ như sau: • *; • • • • Ví dụ 2: int *p1; //p1 là biến con trỏ kiểu int float *p2 // p2 là biến con trỏ kiểu float char *p3; //p3 là biến con... Truyền theo địa chỉ  Trong c ch truyền này, mọi thay đổi về mặt giá trị c a c c đối số trong hàm đều làm thay đổi giá trị c a c c tham số th c tương ứng trong lời gọi hàm  Khi sử dụng c ch truyền theo địa chỉ thì trong định nghĩa c a hàm ta c n khai báo đối số là một biến con trỏ • • • • • • • • • • • • • • Ví dụ 4: Hoán vị hai số th c void HoanVi(float *a, float *b) { float tam; tam = *a; *a = *b; *b... con trỏ kiểu char • • • • • • • • • • • • Giả sử c một biến x và c một con trỏ p chứa địa chỉ biến x, thì c ch viết x và *p là tương đương nhau trong mọi ngữ c nh Ví dụ 3: void main() { int x = 10, y = 20; int *p1, *p2; // khai báo hai con trỏ kiểu int p1 = &x; //p1 chứa địa chỉ c a x (trỏ tới x) p2 = &y; *p1 += 5; // x += 5 *p2 += 6; } Truyền theo địa chỉ  Trong c ch truyền này,... c c đối • • • • • • • • • • • • • • • • Ví dụ 4: Hoán vị hai số th c //khai báo nguyên mẫu hàm void HoanVi(float *a, float *b); void main() { float x = 3.5, y = 7.6; HoanVi(&x, &y); // truyền theo địa chỉ ; } void HoanVi(float *a, float *b) { float tam; tam = *a; *a = *b; *b = tam; } ... niệm hàm Hàm đoạn chương trình th c trọn vẹn c ng vi c định Nó chia c t c ng vi c lớn thành c ng vi c nhỏ Điều quan trọng hàm giúp để làm lại làm trư c thay phải đầu ch c dùng nhiếu lần đoạn chương. .. th c Dùng hàm kiểu void hàm c tính chất th c hành động hàm c tính chất tính toán trả l c nhiều giá trị    Nguyên mẫu hàm Về nguyên t c gọi hàm hàm phải định nghĩa trư c, không chương trình. .. biến c c có biến nằm hàm gọi biến toàn c c, biến sử dụng nơi chương trình tồn suốt thời gian chương trình th c • • • • • • • • • • • • Hàm kiểu void Khi hàm không trả giá trị nào, hàm gọi hàm

Ngày đăng: 03/12/2015, 19:37

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan