Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Thị Kim Chi
lượt xem 3
download
Bài giảng "Kỹ thuật lập trình - Chương 6: Hàm" cung cấp cho người học các khái niệm và cú pháp hàm, tầm vực, tham số và lời gọi hàm, đệ quy. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Thị Kim Chi
- & VC BB Nội dung 1 Khái niệm và cú pháp 2 Tầm vực 3 Tham số và lời gọi hàm 4 Đệ quy NMLT - Hàm (Function) 1
- & VC BB Đặt vấn đề Viết chương trình tính S = a! + b! + c! với a, b, c là 3 số nguyên dương nhập từ bàn phím. Chương trình chính Nhập Tính Xuất a, b, c > 0 S = a! + b! + c! kết quả S Nhập Nhập Nhập Tính Tính Tính a>0 b>0 c>0 s1=a! s2=b! s3=c! NMLT - Hàm (Function) 2
- & VC BB Đặt vấn đề 3 đoạn lệnh nhập a, b, c > 0 do { couta; } while (a
- & VC BB Đặt vấn đề 3 đoạn lệnh tính s1 = a!, s2 = b!, s3 = c! { Tính s1 = a! = 1 * 2 * … * a } s1 = 1; for (i = 2; i
- & VC BB Đặt vấn đề Giải pháp => Viết 1 lần và sử dụng nhiều lần Đoạn lệnh nhập tổng quát, với n = a, b, c do { coutn; } while (n
- & VC BB Hàm Khái niệm Một đoạn chương trình có tên, đầu vào và đầu ra. Có chức năng giải quyết một số vấn đề chuyên biệt cho chương trình chính. Được gọi nhiều lần với các tham số khác nhau. Được sử dụng khi có nhu cầu: • Tái sử dụng. • Sửa lỗi và cải tiến. NMLT - Hàm (Function) 6
- & VC BB Hàm Các đặc trưng của Hàm Nằm trong hoặc ngoài văn bản có chương trình gọi đến hàm. Một văn bản có thể chứa nhiều hàm. Được gọi từ chương trình chính (main), từ hàm khác hoặc từ chính nó (đệ quy). Không lồng nhau. Có 3 cách truyền giá trị: Truyền theo tham trị, tham biến và tham trỏ. Các biến cục bộ trong hàm được tạo ra khi hàm được gọi và biến mất khi hàm thực thi xong. NMLT - Hàm (Function) 7
- & VC BB Hàm NMLT - Hàm (Function) 8
- & VC BB Hàm Có 2 loại hàm trong NNLT “C/C++”: Hàm thư viện (library functions): Do chương trình dịch “C/C++” cung cấp. Để sử dụng các hàm này trong chương trình, đầu chương trình phải chứa các khai báo và định nghĩa hằng, biến, hàm nguyên mẫu, . . . bằng các chỉ thị tiền xử lý #include . Ví dụ: #include #include Hàm tự tạo: Do người sử dụng định nghĩa thêm các hàm khác phục vụ cho nhu cầu lập trình của mình. NMLT - Hàm (Function) 9
- & VC BB Hàm Cú pháp ([danh sách tham số]) { [return ;] } Trong đó • : kiểu bất kỳ của C (char, int, long, float,…). Nếu không trả về thì là void. • : theo quy tắc đặt tên định danh. • : tham số hình thức đầu vào giống khai báo biến, cách nhau bằng dấu , • : trả về cho hàm qua lệnh return. NMLT - Hàm (Function) 10
- & VC BB Các bước viết hàm Cần xác định các thông tin sau đây: Tên hàm. Hàm sẽ thực hiện công việc gì. Các đầu vào (nếu có). Đầu ra (nếu có). Đầu vào 1 Tên hàm Đầu vào 2 Đầu ra (nếu có) Các công việc Đầu vào n sẽ thực hiện NMLT - Hàm (Function) 11
- & VC BB Hàm Ví dụ 1 Tên hàm: XuatTong Công việc: tính và xuất tổng 2 số nguyên Đầu vào: hai số nguyên x và y Đầu ra: không có void XuatTong(int x, int y) { int s; s = x + y; cout
- & VC BB Hàm Ví dụ 2 Tên hàm: TinhTong Công việc: tính và trả về tổng 2 số nguyên Đầu vào: hai số nguyên x và y Đầu ra: một số nguyên có giá trị x + y int TinhTong(int x, int y) { int s; s = x + y; return s; } NMLT - Hàm (Function) 13
- & VC BB Chương trình con - Function Ví dụ 3 Tên hàm: NhapXuatTong Công việc: nhập và xuất tổng 2 số nguyên Đầu vào: không có Đầu ra: không có void NhapXuatTong() { int x, y; coutx>>y; cout
- & VC BB Tầm vực Khái niệm Là phạm vi hoạt động của biến và hàm. Biến: • Toàn cục: khai báo ngoài tất cả các hàm (kể cả hàm main) và có tác dụng lên toàn bộ chương trình. • Cục bộ: khai báo trong hàm hoặc khối { } và chỉ có tác dụng trong bản thân hàm hoặc khối đó (kể cả khối con nó). Biến cục bộ sẽ bị xóa khỏi bộ nhớ khi kết thúc khối khai báo nó. NMLT - Hàm (Function) 15
- & VC BB Tầm vực int a; int Ham1() { int a1; } int Ham2() { int a2; { int a21; } } void main() { int a3; } NMLT - Hàm (Function) 16
- & VC BB Hàm nguyên mẫu (function prototype) Hàm nguyên mẫu: Được dùng để cung cấp thông tin cho chương trình dịch về tên hàm, kiểu giá trị trả về, số lượng, thứ tự và kiểu của các tham số của hàm. Chương trình dịch căn cứ vào các thông tin này để kiểm tra các lời gọi hàm trong chương trình. Hàm nguyên mẫu được đặt sau phần khai báo toàn cục và ngay trước hàm main() hoặc có thể đặt trong tập tin khác. Khai báo: [] ([]) ; Ví dụ: Khai báo hàm nguyên mẫu có chức năng xác định trị min giữa 2 số nguyên. int Min(int, int) ; int Min(int a, int b) ; // nên dùng cách khai báo này 17
- & VC BB Tổ chức một chương trình “C/C++” Cách 1: chương trình gồm 3 phần PHẦN KHAI BÁO TOÀN CỤC PHẦN KHAI BÁO VÀ ĐỊNH NGHĨA HÀM HÀM main() Cách 2: chương trình gồm 4 phần (nên dùng cách này) PHẦN KHAI BÁO TOÀN CỤC PHẦN KHAI BÁO HÀM NGUYÊN MẪU HÀM main() PHẦN ĐỊNH NGHĨA HÀM 18
- & VC BB Tổ chức một chương trình “C/C++” Ví dụ: cách 1 Ví dụ: Cách 2 #include #include int min(int a, int b) int min(int a, int b); { if (a
- & VC BB Các phương pháp truyền tham số Có hai loại tham số: Tham số thực (actual parameter):là tham số trong lời gọi hàm. Tham số hình thức (formal parameter): là tham số trong phần khai báo và định nghĩa. Tham số hình thức chỉ là tên đại diện cho tham số thực tương ứng. Kiểu của tham số hình thức sẽ qui định kiểu của tham số thực. 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 5 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 9 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 12 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 1) - ThS. Đặng Bình Phương
26 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu cấu trúc - ThS. Đặng Bình Phương
33 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Chuyển đổi kiểu dữ liệu và cấp phát bộ nhớ động - ThS. Đặng Bình Phương
28 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Cơ bản) - ThS. Đặng Bình Phương
40 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 p | 0 | 0
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