Chương 3.1 giúp người học hiểu về Cơ bản về hàm. Nội dung trình bày cụ thể gồm có: Các hàm được định nghĩa sẵn, hàm do người dùng định nghĩa, quy tắc phạm vi,...Mời các bạn cùng tham khảo!
NGƠN NGỮ LẬP TRÌNH BÀI 3.1 CƠ BẢN VỀ HÀM Giảng viên: Nguyễn Xuân Hùng Mobile: 0908 386 366 Email: nguyenxuanhung@wru.vn Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi NỘI DUNG Các hàm định nghĩa sẵn Hàm người dùng định nghĩa Quy tắc phạm vi Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn • C++ có thư viện hàm định nghĩa trước mà bạn sử dụng chương trình Có hai loại hàm C++: hàm trả giá trị hàm không trả giá trị Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.1 Hàm trả giá trị không trả giá trị • • Cú pháp: Tên_hàm (danh sách đối số); Danh sách đối số đối số ngăn cách dấu phẩy: đối_số_1, đối_số_2, , đối_số_n; Ví dụ: double side = sqrt(area); double p = pow(2.5, 3); Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.1 Hàm trả giá trị không trả giá trị • TÊN MÔ TẢ KIỂU ĐỐI SỐ KIỂU CỦA GIÁ TRỊ TRẢ LẠI VÍ DỤ GIÁ TRỊ FILE TIÊU ĐỀ sqrt Căn bậc hai double double sqrt(4.0) 2.0 cmath pow Tính mũ double double pow(2.0,3.0) 8.0 cmath abs Trị tuyệt đối int số int int abs(-7) cstdlib Trị tuyệt đối long số long long abs(7) labs(-70000) 70000 cstdlib Trị tuyệt đối double số double double labs(70000) fabs(-7.5) 70000 7.5 cmath fabs(7.5) 7.5 labs fabs Bảng danh sách hàm xây dựng sẵn Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.1 Hàm trả giá trị không trả giá trị • TÊN ceil MƠ TẢ Làm trịn lên floor exit rand srand Bảng danh sách hàm xây dựng sẵn KIỂU ĐỐI SỐ VÍ DỤ GIÁ TRỊ FILE TIÊU ĐỀ double ceil(3.2) 4.0 cmath double ceil(3.9) floor(3.2) 4.0 3.0 cmath Kết thúc chương int trình Sinh số ngẫu nhiên Không void floor(3.9) exit (1); 3.0 Không cstdlib int rand( ) Thiết lập giá trị khởi unsigned int đầu cho hàm rand void srand(42); Các số khác cstdlib Khơng cstdlib Làm trịn xuống double KIỂU CỦA GIÁ TRỊ TRẢ LẠI double Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.1 Hàm trả giá trị không trả giá trị • • • Ví dụ 1: Tính bậc hai số nhập từ bàn phím (Click Me) Ví dụ 2: Nhập vào số nguyên trả giá trị tuyệt đối (Click Me) Bài tập 3.1: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.2 Bộ sinh số ngẫu nhiên • • • • Cú pháp: rand(); Ý nghĩa: lấy số ngẫu nhiên từ đến RAN_MAX (RAN_MAX tùy thuộc vào hệ thống 32767) Ví dụ 1: sinh 10 số ngẫu nhiên từ đến RAN_MAX Ví dụ 2: Sinh số ngẫu nhiên từ đến 10 int number = rand() % 11; Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.2 Bộ sinh số ngẫu nhiên • Bài tập 3.2: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm người dùng định nghĩa 2.1 Khai báo định nghĩa hàm Cú pháp khai báo hàm trả giá trị: kiểu_trả_về Tên_Hàm (Danh sách đối số); Trong đó: • Danh sách đối số tham số ngăn cách dấu phẩy “,”: Kiểu_1 Tham_số_1, Kiểu_2 Tham_số_2,…,Kiểu_n Tham số n • Kiểu trả về: int, double, long, boolean, char,… • • 10 Ví dụ: Khai báo hàm trả tổng khối lượng đồ vật mà nặng weightOfOne double totalWeight(int number, double weight); Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm người dùng định nghĩa 2.1 Khai báo định nghĩa hàm Cú pháp khai báo hàm không trả giá trị: void Tên_Hàm (Danh sách đối số); Trong đó: • Danh sách đối số tham số ngăn cách dấu phẩy “,”: Kiểu_1 Tham_số_1, Kiểu_2 Tham_số_2,…,Kiểu_n Tham số n • • 11 Ví dụ: hiển thị thơng điệp nói fDegree độ F tương đượng với cDegree độ c void showResults(double fDegree, double cDegree); Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm người dùng định nghĩa 2.1 Khai báo định nghĩa hàm • • • • 12 Định nghĩa hàm: mơ tả làm hàm tính giá trị trả Một định nghĩa hàm chứa tiêu đề hàm theo phần thân hàm Tiêu đề hàm tương tự phần khai báo khơng có dấu chấm phẩy vị trí kết thúc Giá trị trả xác định câu lệnh thân hàm Phần thân hàm làm hoàn chỉnh phần định nghĩa hàm Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm người dùng định nghĩa 2.1 Khai báo định nghĩa hàm • Ví dụ 1: Định nghĩa hàm trả tổng khối lượng đồ vật mà nặng weightOfOne Định nghĩa hàm Thân hàm • 13 Chương trình minh họa: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm người dùng định nghĩa 2.1 Khai báo định nghĩa hàm • Ví dụ 2: hiển thị thơng điệp nói fDegree độ F tương đượng với cDegree độ c Định nghĩa hàm Thân hàm • 14 Chương trình minh họa: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm người dùng định nghĩa 2.1 Khai báo định nghĩa hàm • • 15 Bài tập 3.3: (Click Me) Bài tập 3.4 (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.1 Biến cục • • 16 Các biến khai báo bên thân định nghĩa hàm gọi cục hàm nói hàm phạm vi biến Nếu biến cục hàm bạn có biến khác có tên mà khai báo bên định nghĩa hàm khác, chúng hai biến khác nhau, chúng có tên Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.1 Biến cục • 17 Ví dụ: Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.2 Biến tồn cục • 18 Nếu biến xuất phần bắt đầu chương trình, bên thân tất hàm (và bên ngồi thân hàm main chương trình), biến đặt tên gọi biến toàn cục biến đặt tên sử dụng định nghĩa hàm sau định nghĩa Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.2 Biến toàn cục • 19 Ví dụ biến tồn cục: Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.2 Biến toàn cục • 20 Bài tập 3.5: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 EOF! 21 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 ... Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.2 Biến tồn cục • 20 Bài tập 3.5: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 EOF! 21 Nguyễn Xuân Hùng. .. khác, chúng hai biến khác nhau, chúng có tên Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Quy tắc phạm vi 3.1 Biến cục • 17 Ví dụ: Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014... int number = rand() % 11; Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi 10/17/2014 Các hàm định nghĩa sẵn 1.2 Bộ sinh số ngẫu nhiên • Bài tập 3.2: (Click Me) Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy