Bài giảng lập trình c chương 6 GV nguyễn văn hùng

60 229 0
Bài giảng lập trình c   chương 6   GV  nguyễn văn hùng

Đ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

LẬP TRÌNH C++ (3 Tín chỉ) Gv: Nguyễn Văn Hùng Khoa: Khoa học máy tính Ngôn ngữ lập trình C++ 1/56 Chương 6: HÀM (FUNCTION) 6.1 Hàm 6.2 Hàm mảng liệu 6.3 Hàm cấu trúc 6.4 Đệ quy Ngôn ngữ lập trình C++ 2/56 Hàm - Ngôn ngữ lập trình C++ Khái niệm Khai báo định nghĩa Lời gọi sử dụng hàm Biến truyền tham số Khai báo hàm trùng tên 3/56 Khái niệm - Hàm chương trình con, hàm trả hay không trả giá trị; truyền hay không truyền tham số - Một chương trình C++ gồm nhiều hàm Nhưng có hàm với tên gọi hàm main() - Khi thực thi chương trình, hàm main() - Hàm giúp cho việc phân đoạn chương trình cách riêng rẽ Hàm sử dụng nhiều lần chương trình sử dụng nhiều chương trình khác - Hàm có số đặc điểm sau: Ngôn ngữ lập trình C++ 4/56 Khái niệm - Nằm chương trình có lời gọi đến hàm Trong chương trình chứa nhiều hàm - Một hàm gọi từ hàm main(), từ hàm khác hay gọi (trường hợp đệ quy) - Không có hàm lồng - Có cách truyền giá trị cho hàm: • Truyền theo tham biến • Truyền theo tham trị • Truyền theo tham trỏ Ngôn ngữ lập trình C++ 5/56 Khai báo định nghĩa hàm Khai báo hàm: - Hàm trả không trả giá trị Trường hợp hàm trả giá trị kiểu giá trị trả lại gọi kiểu hàm - Hàm chia làm loại: + Hàm định nghĩa sẵn + Hàm người lập trình tự định nghĩa Ngôn ngữ lập trình C++ 6/56 Khai báo định nghĩa hàm Hàm định nghĩa sẵn: có tệp thư viện *.h Để sử dụng hàm ta cần phải khai báo tệp tiêu đề theo cú pháp #include Ví dụ: #include #include Ngôn ngữ lập trình C++ 7/56 Khai báo định nghĩa hàm Hàm người lập trình tự định nghĩa: khai báo đầu chương trình theo cú pháp: Kieu_du_lieu Ten_ham(Danh_sach_kieu_doi_so); Trong đó: Kieu_du_lieu: kiểu trả hàm int, float, char, Trường hợp hàm không trả giá trị khai báo kiểu void Trường hợp không rõ kieu_tra_ve ngầm định kiểu int Ten_ham: đặt theo quy tắc đặt tên Danh_sach_kieu_doi_so: có không Trường hợp gọi hàm đối số Ngôn ngữ lập trình C++ 8/56 Khai báo định nghĩa hàm Định nghĩa hàm: * Hàm có trả giá trị: Cú pháp: kieu_du_lieu Ten_ham(Ds_tham_so_hinh_thuc) { Khai báo biến cục bộ; Các câu lệnh; return(biểu thức); } Ngôn ngữ lập trình C++ 9/56 Khai báo định nghĩa hàm Định nghĩa hàm: Ví dụ: Định nghĩa hàm tính luỹ thừa n (với n nguyên) số thực Hàm có hai đầu vào (đối thực x số mũ nguyên n) đầu (giá trị trả lại) kiểu thực với độ xác gấp đôi xn double luythua(float x, int n) //x,n tham số hình thức { int i ; // i biến cục double kq = ; // kq để lưu kết for (i=1; i=3 int Fibo(int n) { if (n==1||n==2) return 1; else return Fibo(n-1) + Fibo(n-2); } Ngôn ngữ lập trình C++ 46/56 9-19 (-12, 17, 18) Ngôn ngữ lập trình C++ 47/56 Tổ chức chương trình  Các loại biến tác dụng nó: + Biến cục (local variable): biến khai báo thân hàm có tác dụng hàm chứa Kể biến khai báp hàm main() có tác dụng hàm mà - Biến cục tồn thời gian hàm chứa thực thi Nghĩa cấp phát hàm chứa gọi tới (hoạt động) hủy bỏ hàm kết thúc - Đối số hàm xem biến cục - Ta khai báo biến giống hàm khác Ngôn ngữ lập trình C++ 48/56 Tổ chức chương trình  Các loại biến tác dụng nó: + Biến toàn cục (global variable): biến khai báo bên tất hàm Nó thường khai báo đầu chương trình (trước hàm main) - Biến toàn cục tồn suốt trình thực thi chương trình - Tất hàm sử dụng biến hàm biến khai báo trùng tên - Một hàm có biến trùng tên với biến biến bị che hàm Có nghĩa i khai báo biến hàm có biến i, lúc có biến i độc lập với hàm truy nhập đến i có nghĩa i hàm i biến Ngôn ngữ lập trình C++ 49/56 Tổ chức chương trình  Các loại biến tác dụng nó: + Một số nguyên tắc sử dụng biến: - Nếu biến sử dụng mục đích riêng hàm nên khai báo biến biến cục hàm - Với biến mang tính chất sử dụng chung rõ nét mà nhiều hàm sử dụng chúng với mục đích giống nên khai báo chúng biến Tóm lại, nguyên tắc tổng quát cố gắng tạo hàm cách độc lập, khép kín, không chịu ảnh hưởng hàm khác không gây ảnh hưởng đến hoạt động hàm khác đến mức Ngôn ngữ lập trình C++ 50/56 Tổ chức chương trình  Các thị tiền xử lý: - Chỉ thị bao hàm tệp #include Cho phép tham chiếu tới nội dung tệp có (tệp tiêu đề) ghép nội dung tệp vào chương trình trước dịch Việc khai báo tệp thực theo cú pháp: #include Hoặc #include “duong_dan\tep” Ví dụ: #include #include Ngôn ngữ lập trình C++ 51/56 Tổ chức chương trình  Các thị tiền xử lý: - Chỉ thị macro #define: Cú pháp: #define macroName StringValue Tác dụng: trước dịch, tiền xử lý tìm chương trình thay vị trí xuất macroName StringName Macro thường sử dụng để định nghĩa thay cụm từ thành cụm từ khác dễ nhớ Ngôn ngữ lập trình C++ 52/56 Tổ chức chương trình Ví dụ: xét chương trình Nhận xét: Trước dịch tiền xử lý chuyển - begin, end thành { } - Max thay 10 - true thay Ngôn ngữ lập trình C++ #include using namespace std; #define begin { #define end } #define Max 10 #define true int main() begin int ok, i; for(i=1;i[...]... lại c a một hàm c ng c thể là c c cấu tr c dưới c c dạng sau: - Là một biến c u tr c - Là một con trỏ c u tr c - Là một tham chiếu c u tr c Ngôn ngữ lập trình C+ + 35/ 56 Hàm và c u tr c Giá trị c a hàm là c u tr c: Ví dụ : C ng, trừ hai số ph c Khai báo kiểu số ph c struct Sophuc { float thuc; float ao; }; Ngôn ngữ lập trình C+ + Hàm c ng 2 số ph c, trả lại một số ph c Sophuc Cong(Sophuc x, Sophuc y)... làm đối số c a hàm dưới c c dạng sau đây: - Là một biến c u tr c, khi đó đối số là một c u tr c - Là một con trỏ c u tr c, đối số là địa chỉ c a một c u tr c - Là một tham chiếu c u tr c, đối số là một c u tr c - Là một mảng c u tr c ho c con trỏ mảng, đối số là tên mảng c u tr c Ngôn ngữ lập trình C+ + 34/ 56 Hàm và c u tr c - Giá trị c a hàm là c u tr c: C ng tương tự như c c kiểu dữ liệu c bản, giá... để c c hàm c thể định nghĩa chồng là: + Số lượng c c đối trong hàm là kh c nhau + Ho c có ít nhất 1 đối c kiểu kh c nhau giữa c c hàm Kỹ thuật chồng tên c n c thể áp dụng c cho c c toán tử: +, -, *, /, … Ngôn ngữ lập trình C+ + 28/ 56 Hàm và mảng dữ liệu - Hàm làm vi c với mảng c n c 2 thông tin + Điạ chỉ bắt đầu c a mảng (địa chỉ c sở) + Số phần tử xử lý trong mảng - Truyền mảng một chiều cho... ngữ lập trình C+ + 17/ 56 Biến và truyền tham số + Truyền theo tham trị: - Trong phương pháp nkày: + C c tham số hình th c (đối số) chỉ nhận giá trị vào cho chương trình con mà không trả kết quả về + Tham số hình th c đư c xem như là một biến c c bộ c a chương trình con và đư c cấp phát ô nhớ riêng + C c tham số th c tế là một biểu th c (một biến, một hằng, một hàm, một biểu th c th c sự) Ngôn ngữ lập trình. .. " ... chương trình, hàm main() - Hàm giúp cho vi c phân đoạn chương trình c ch riêng rẽ Hàm sử dụng nhiều lần chương trình sử dụng nhiều chương trình kh c - Hàm c số đ c điểm sau: Ngôn ngữ lập trình C+ +... Ngôn ngữ lập trình C+ + 47/ 56 Tổ ch c chương trình  C c loại biến t c dụng nó: + Biến c c (local variable): biến khai báo thân hàm c t c dụng hàm chứa Kể biến khai báp hàm main() c t c dụng hàm... trả lại hàm c u tr c dạng sau: - Là biến c u tr c - Là trỏ c u tr c - Là tham chiếu c u tr c Ngôn ngữ lập trình C+ + 35/ 56 Hàm c u tr c Giá trị hàm c u tr c: Ví dụ : C ng, trừ hai số ph c Khai báo

Ngày đăng: 03/12/2015, 18:22

Từ khóa liên quan

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

Tài liệu liên quan