Bài giảng Lập trình cơ bản: Bài 5 - TS. Ngô Quốc Việt
lượt xem 6
download
Bài giảng Lập trình cơ bản - Bài 5 cung cấp những kiên thức về thủ tục và hàm. Các nội dung chính trong bài này gồm: Khái niệm thủ tục và hàm, cách khai báo và sử dụng hàm, khái niệm prototype, cách truyền tham số - tham biến, biến cục bộ - toàn cục. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình cơ bản: Bài 5 - TS. Ngô Quốc Việt
- THỦ TỤC VÀ HÀM NGÔ QUỐC VIỆT TP.HCM-2011
- NỘI DUNG 1. Khái niệm thủ tục và hàm. 2. Cách khai báo và sử dụng hàm 3. Khái niệm prototype 4. Cách truyền tham số, tham biến. 5. Biến cục bộ, toàn cục Ngô Quốc Việt-Lập trình cơ bản 2
- SỰ CẦN THIẾT CỦA TÁCH NHỎ Thực tế: luôn tách vấn đề lớn thành các vấn để nhỏ hơn. Vấn đề “nhỏ hơn” lại có thể tách thành các “nhỏ hơn nữa”. Mỗi “nhỏ không chia nữa” đảm nhiệm một nhiệm vụ/chức năng thuật ngữ task/function Các task/function ghép lại để có được bộ phận lớn hơn. Nnlt gọi là hàm-function. Khái niệm hàm trong nnlt đóng vai trò tương tự. Mỗi “hàm” đảm nhiệm một vai trò. Kết nối các hàm để thành một chương trình. Ngô Quốc Việt-Lập trình cơ bản 3
- SỰ CẦN THIẾT CỦA TÁCH NHỎ Nhắc lại hàm main trong ngôn ngữ C. Chứa điểm bắt đầu và lệnh kết thúc của chương trình (lệnh return cuối hàm main). Mọi ngôn ngữ đều có quy ước tương tự như hàm main() nhưng tên có thể khác. Tất cả lệnh đặt trong “main” ? Ưu điểm: ??? Nhựợc điểm: quá dài; không dễ đọc; khó bảo trì ? Không thể hiệu quả nếu tất cả đặt trong main. Cần tách “main” thành những phần nhỏ hàm. Đơn giản nhất: mỗi hàm thực hiện một phần code của main(). Ngô Quốc Việt-Lập trình cơ bản 4
- THỦ TỤC VÀ HÀM Thủ tục – procedure. Hàm – function. Phần lớn nnlt sử dụng thuật ngữ ‘hàm’. Hàm là một “đoạn mã” được “đóng gói” thực hiện một khối công việc nhất định của chương trình. “Đóng gói” : mỗi hàm có tên và viết theo quy cách nhất định tuỳ theo nnlt. Ví dụ: hàm main() trong C/C++ là một hàm. Là hàm chính trong kiểu chương trình Console. Ngô Quốc Việt-Lập trình cơ bản 5
- CÁCH KHAI BÁO MỘT HÀM (arg1, arg2, ...) Tên hàm: đặt theo quy cách đặt tên của nnlt. Theo cách đặt tên biến/hằng. Kiểu trả về: các kiểu dữ liệu cơ bản của nnlt hoặc các kiểu dữ liệu có cấu trúc (thảo luận sau). Mỗi hàm chỉ trả về một giá trị mỗi lần thực hiện. Một hàm chỉ có một OUTPUT. (arg1, arg2, ...): danh sách các tham số dùng làm INPUT cho hàm. Không có ba dấu chấm. Không có dấu chấm phẩy sau tên hàm, phải có cặp dấu ngoặc ( ) sau tên hàm nếu hàm không có tham số truyền vào. Ngô Quốc Việt-Lập trình cơ bản 6
- CÁCH KHAI BÁO MỘT HÀM Chú thích đầu hàm Name: tên hàm Description: hàm làm gì – what Tham số: xác định từng tham số của hàm Giá trị trả về: mô tả output của hàm Tên hàm cùng các tham số Thân hàm: phần nằm giữa cặp dấu { }. Lệnh cuối cùng của hàm là return. Ngô Quốc Việt-Lập trình cơ bản 7
- CÁCH KHAI BÁO MỘT HÀM Ngô Quốc Việt-Lập trình cơ bản 8
- Hàm không có tham số () Ví dụ khai báo hàm không tham số int get_value() ; hoặc int get_value(void); //chỉ dùng trong nnlt C Hàm không có OUTPUT được gọi là thủ tục. Ví dụ void print_answer(int answer) ; Usage print_answer(45); //gọi hàm print_answer Ngô Quốc Việt-Lập trình cơ bản 9
- KHAI BÁO VÀ SỬ DỤNG HÀM Hàm có thể không cần trả về kết quả. Mục tiêu cần thực hiện một tác vụ nhưng hàm gọi không cần lấy kết quả. Sử dụng kiểu trả về void. void myGioPhut(int phut) Không có lệnh { return trước int gio; dấu } ??? gio = phut/60; phut = phut % 60; printf(“Bay gio la %d:%d”, gio, phut); } Cuối hàm kiểu trả về void có thể có hay không lệnh return. Ngô Quốc Việt-Lập trình cơ bản 10
- KHAI BÁO VÀ SỬ DỤNG HÀM int myFunction(int arg1) //Hàm myFunction đặt trên main. Có cách //nào để đặt ở bất kỳ chỗ nào? { arg1++ ; return arg1; Hàm main gọi hàm myFunction. Lúc này, } hàm main được gọi là hàm gọi. int main(int argc, char* argv[ ]) { int x, y ; y = 0; x = myFunction(y); //Giá trị y trả về là y++ (=1). return 0; Hàm myFunction chạy } xong, chạy tiếp lệnh kế trong main. Lúc này, myFunction là hàm bị gọi Ngô Quốc Việt-Lập trình cơ bản 11
- KHAI BÁO VÀ SỬ DỤNG HÀM #include #include int power(int ix, int in) { int i, ip = 1; for(i = 1; i
- KHAI BÁO VÀ SỬ DỤNG HÀM void main(void) Truyền tham số { printf("2 mu 2 = %d.\n", power(2, 2)); int power(int ix, int in) Gọi hàm power printf("2 mu 3 = %d.\n", power(2, 3)); { int i, ip = 1; getch(); Kết thúc lần chạy. } for(i = 1; i
- PROTOTYPE HÀM Prototype: phần khai báo hàm không chứa phần mã nguồn bên trong Thường được đặt trên đầu tập tin mã nguồn. Có dấu ; int myFunction(int arg1); int main(int argc, char* argv[ ]) Hàm main gọi hàm { myFunction nên int y = myFunction(x); được đặt sau return 0; } int myFunction(int arg1) Hàm myFunction đặt { sau hàm main. } Đối với nnlt C, các khai báo hàm được viết trong tập tin .H có cùng tên. Ngô Quốc Việt-Lập trình cơ bản 14
- PROTOTYPE CỦA HÀM Các nnlt hướng đối tượng không sử dụng khái niệm “prototype”. Mọi hàm đều bao gồm thân hàm. Thảo luận trong học phần “Lập trình hướng đối tượng”. Ngô Quốc Việt-Lập trình cơ bản 15
- TẬP TIN .H TRONG NNLT C/C++ Chứa khai báo các prototype (không có mã nguồn bên trong). Được #include từ các tập tin CPP. ptbac2.h ptbac2. cpp #include “ptbac2.h” double tinhDelta(int a, b, c); double tinhDelta(int a, int b, int c) { main.cpp return b*b-4*a*c; } #include “ptbac2.h” int main() Không viết hàm { tinhDelta ở đây int a, b, c; scanf(“% %d $d”, &a, &b, &c); double delta = tinhDelta(a, b, c); } Ngô Quốc Việt-Lập trình cơ bản 16
- SỬ DỤNG THƢ VIỆN BUILT-IN Sử dụng #include trong C/C++ cho các tập mã nguồn .CPP để sử dụng các hàm có sẵn. Ví dụ #include “conio.h” //dùng các hàm nhập xuất #include “stdio.h” //một số hàm chuẩn #include “math“ //các hàm toán học: sqrt, pow... Sinh viên đọc thêm các tài liệu về các hàm setw, printf, scanf, sqrt, pow, và một số hàm toán học khác. Sử dụng import trong ngôn ngữ JAVA. Sử dụng using trong C#. Sinh viên đọc thêm tài liệu. Ngô Quốc Việt-Lập trình cơ bản 17
- THAM SỐ Tham số - Parameters. Dùng để truyền và nhận giữa hàm gọi và hàm bị gọi. Tham số! Nhưng không phải chỉ truyền/nhận số. Truyền: OK. Vì hàm bị gọi cần có INPUT để xử lý. Nhận: ???. Mỗi hàm chỉ trả về một OUTPUT. Nếu cần nhiều hơn? Thảo luận sau. Số lượng tham số của hàm: không nên nhiều quá. Ngô Quốc Việt-Lập trình cơ bản 18
- THAM TRỊ Các giá trị đầu vào cho một hàm. Giá trị có thể là Một hằng tường minh. Một biến đã được gán giá trị. Giá trị của biến (nếu được sử dụng) sẽ không bị thay đổi bởi bất cứ lệnh nào trong hàm bị gọi. Cách khai báo (style1 arg1, style2 arg2) Ngô Quốc Việt-Lập trình cơ bản 19
- THAM TRỊ int myFunction(int x) { x +=10 ; return x; } int main(int argc, char* argv[ ]) { int x = 0, y ; int y = myFunction(x); //Giá trị y trả về là 10. printf(“Gia tri cua x va y la” %d %d”, x, y); //x vẫn là zero y = myFunction(5); //Giá trị y trả về là 15. printf(“Gia tri cua x va y la” %d %d”, x, y); //x vẫn là zero return 0; } Ngô Quốc Việt-Lập trình cơ bản 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình cơ bản: Ngôn ngữ lập trình C
80 p | 70 | 17
-
Bài giảng Lập trình căn bản: Chương 1 - ThS. Nguyễn Cao Trí
20 p | 149 | 12
-
Bài giảng Lập trình cơ bản: Bài 2 - TS. Ngô Quốc Việt
49 p | 75 | 6
-
Bài giảng Lập trình cơ bản: Giới thiệu - TS. Ngô Quốc Việt
15 p | 98 | 5
-
Bài giảng Lập trình cơ bản: Bài 6 - Chu Thị Hường
38 p | 10 | 5
-
Bài giảng Lập trình cơ bản: Chương 4 - Giải thuật xử lý thông tin và ngôn ngữ lập trình
36 p | 103 | 5
-
Bài giảng Lập trình cơ bản: Bài 4 - Chu Thị Hường
46 p | 11 | 5
-
Bài giảng Lập trình cơ bản: Bài 6 - TS. Ngô Quốc Việt
43 p | 80 | 5
-
Bài giảng Lập trình cơ bản: Bài 4 - TS. Ngô Quốc Việt
38 p | 72 | 5
-
Bài giảng Lập trình cơ bản: Bài 3 - TS. Ngô Quốc Việt
37 p | 68 | 5
-
Bài giảng Lập trình cơ bản: Bài 5 - Chu Thị Hường
27 p | 13 | 4
-
Bài giảng Lập trình cơ bản: Bài 8 - Chu Thị Hường
28 p | 11 | 4
-
Bài giảng Lập trình cơ bản: Bài 3 - Chu Thị Hường
34 p | 12 | 4
-
Tập bài giảng Lập trình cơ bản
208 p | 30 | 4
-
Bài giảng Lập trình cơ bản: Bài 7 - TS. Ngô Quốc Việt
16 p | 75 | 4
-
Bài giảng Lập trình cơ bản: Bài 1 - Chu Thị Hường
32 p | 7 | 3
-
Bài giảng Lập trình cơ bản: Bài 7 - Chu Thị Hường
25 p | 5 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn