1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn lập trình: Hàm và kỹ thuật tổ chức chương trình - Nguyễn Sơn Hoàng Quốc (tt)

24 105 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 1,19 MB

Nội dung

Bài giảng Nhập môn lập trình - Hàm và kỹ thuật tổ chức chương trình cung cấp cho người học các kiến thức về Truyền tham số cho hàm bao gồm: Sự thực thi của hàm, khái niệm đối số, truyền đối số cho hàm, tham biến hằng,... Mời các bạn cùng tham khảo.

Nhập mơn lập trình Trình bày: Nguyễn Sơn Hồng Quốc Email: nshquoc@fit.hcmus.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Sự thực thi hàm • Các câu lệnh bên hàm thực thi hàm gọi từ phần khác chương trình • Khi gọi hàm, chương trình truyền đến hàm thông tin dạng hay nhiều đối số main() { call f1 } f1() { call f2 } f2() { } CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm đối số • Đối số (argument) hay tham số thực (actual parameter) liệu chương trình truyền đến hàm có kiểu liệu ứng với tham số hình thức khai báo nguyên mẫu hàm Dữ liệu thường hàm sử dụng để thực công việc Đối số 2, 3, x int SolveEq1(double a, double b, double &x); CuuDuongThanCong.com https://fb.com/tailieudientucntt Truyền đối số cho hàm • Có hai cách truyền đối số – Truyền giá trị (pass by value) • Đối số không đổi hàm tạo đối số nhận • Thơng thường liệu có sẵn • Tham số hình thức tương ứng gọi tham trị – Truyền tham chiếu (pass by reference): C++ • Đối số thay đổi gọi hàm • Thơng thường liệu cần tính tốn, xác định • Tham số hình thức tương ứng gọi tham chiếu hay tham biến CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ tham trị int Inc(int x); void main() { int a = 9, b; b = Inc(a); // a is passed by value printf("a = %d, b = %d\n", a, b); } int x = 9; int Inc(int x) { x++; return x; } CuuDuongThanCong.com https://fb.com/tailieudientucntt Alias (Bí danh) int dtbCuaNam = 5; int &dtbCuaTi = dtbCuaNam; dtbCuaTi = 6; printf(“%d”, dtbCuaNam); dtbCuaNam “Nam” có bí danh “Ti” dtbCuaTi Có thể xem dtbCuaNam dtbCuaTi CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ tham biến int Inc(int &x); // C++ void main() { int a = 9, b; b = Inc(a); printf("a = %d, b = %d\n", a, b); } int Inc(int &x) { x++; int *x = &a; return x; } Địa a int Inc(int *x); /* C */ void main() { int a = 9, b; b = Inc(&a); printf("a = %d, b = %d\n", a, b); } int Inc(int *x) { (*x)++; return (*x); } CuuDuongThanCong.com https://fb.com/tailieudientucntt Tham biến void f1(double x); double x = 15.06; void f2(double &x); void f3(const double &x); void main() { Tốn nhớ double a = 15.06; x lớn f1(a); // passed by value f2(a); // passed by reference f3(a); // passed by const reference } // defines f1(), f2(), f3() here… CuuDuongThanCong.com https://fb.com/tailieudientucntt Lời gọi hàm • Có hai cách để gọi hàm – Mọi hàm gọi cách sử dụng tên hàm kèm danh sách đối số câu lệnh đơn Nếu hàm có giá trị trả về, giá trị bị bỏ qua – Đối với hàm có giá trị trả về, hàm quy thành giá trị (do hàm trả về) nên chúng biểu thức C hợp lệ sử dụng nơi đâu mà biểu thức C sử dụng CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ lời gọi hàm void DoSomething(); int Sum(int x, int y); void main() { DoSomething(); Sum(1, 2); //the return value is discarded int x = Sum(1, 2); int y = Sum(1, Sum(2, 3)); printf("%d\n", Sum(1, 2)); } 10.// defines DoSomething() and Sum() here… 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu ý lời gọi hàm • Nếu cố sử dụng hàm có kiểu trả void biểu thức trình biên dịch phát sinh thông báo lỗi void DoSomething(); void main() { DoSomething(); int x = DoSomething(); // error printf("%d\n", DoSomething()); // error } // defines DoSomething() here… 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu ý lời gọi hàm • Hãy truyền đối số vào hàm để làm cho hàm tổng quát để tái sử dụng int Sum() { // non generic int x, y; // inputs x, y here… return x + y; } int Sum(int x, int y){//generic & reusable return x + y; } 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu ý lời gọi hàm • Nên tận dụng ưu điểm khả đặt hàm vào biểu thức tránh làm cho câu lệnh dài dịng, khó hiểu int Sum(int x, int y); void main() { int a = 1, b = 2, c = 3, x; printf("%d", Sum(a, Sum(b, c))); // !!! x = Sum(b, c); printf("%d", Sum(a, x)); // better } 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiến trúc chương trình đơn giản • Kiến trúc chương trình gồm khối lệnh chính: khối khai báo, khối hàm main khối định nghĩa hàm Khối khai báo Khối hàm main Khối định nghĩa hàm CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiến trúc chương trình đơn giản • Khối khai báo: chứa khai báo sử dụng thư viện, khai báo hằng, khai báo biến toàn cục, khai báo hàm, khai báo kiểu liệu… • Khối hàm main: chứa hàm main thân hàm Trong thân hàm main chứa lời gọi hàm cần thiết cho chương trình • Khối định nghĩa hàm: chứa định nghĩa hàm khai báo khối khai báo CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Tìm số lớn nhất) • Viết chương trình nhập vào hai số nguyên 𝑎, 𝑏 Tìm số lớn xuất kết 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Số lớn nhất) (Khối khai báo) #include void Nhap(int &x); void Xuat(int x); int LonNhat(int x, int y); 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Số lớn nhất) (Khối hàm main) void main() { int a, b, max; printf("Nhap a = "); Nhap(a); printf("Nhap b = "); Nhap(b); max = LonNhat(a, b); printf("So lon nhat la = "); 10 Xuat(max); 11.} 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Khối định nghĩa hàm) void Nhap(int &x) { scanf("%d", &x); } void Xuat(int x) { printf("%d", x); } 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Khối định nghĩa hàm) int LonNhat(int x, int y) { int max = x; if (y > x) max = y; return max; } 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Tính tổng) • Viết chương trình nhập vào hai số nguyên dương Tính tổng chúng xuất kết 21 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Tính tổng) (Khối khai báo) #include void Nhap(int &x); void Xuat(int x); int Tong(int x, int y); 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Tính tổng) (Khối hàm main) void main() { int a, b, tong; printf("Nhap a = "); Nhap(a); printf("Nhap b = "); Nhap(b); tong = Tong(a, b); printf("Tong = "); 10 Xuat(tong); 11.} 23 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ minh họa (Khối định nghĩa hàm) void Nhap(int &x) { scanf("%d", &x); } void Xuat(int x) { printf("%d", x); } int Tong(int x, int y) 10.{ 11 return x + y; 12.} CuuDuongThanCong.com 24 https://fb.com/tailieudientucntt ...Sự thực thi hàm • Các câu lệnh bên hàm thực thi hàm gọi từ phần khác chương trình • Khi gọi hàm, chương trình truyền đến hàm thơng tin dạng hay nhiều đối số main()... https://fb.com/tailieudientucntt Kiến trúc chương trình đơn giản • Kiến trúc chương trình gồm khối lệnh chính: khối khai báo, khối hàm main khối định nghĩa hàm Khối khai báo Khối hàm main Khối định nghĩa hàm CuuDuongThanCong.com... Lời gọi hàm • Có hai cách để gọi hàm – Mọi hàm gọi cách sử dụng tên hàm kèm danh sách đối số câu lệnh đơn Nếu hàm có giá trị trả về, giá trị bị bỏ qua – Đối với hàm có giá trị trả về, hàm quy

Ngày đăng: 11/01/2020, 18:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN