Bài giảng Tin học đại cương - Bài 4: Chương trình con

Nội dung chính

1. Phân rã bài toán

2. Hàm

3. Tham chiếu và tham trị

4. Phạm vi của biến (scope)

5. Bài tập

pdf21 trang | Chia sẻ: tieuaka001 | Lượt xem: 566 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Tin học đại cương - Bài 4: Chương trình con, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TIN ĐẠI CƯƠNG Bài 4: CHƯƠNG TRÌNH CON 1 Nội dung bài trước I Nhập và xuất dữ liệu : cin, cout I Các hàm toán học, thư viện I Giới thiệu về hàm : khái niệm, cách viết, cách gọi hàm I Bài tập 2 Nội dung chính 1. Phân rã bài toán 2. Hàm 3. Tham chiếu và tham trị 4. Phạm vi của biến (scope) 5. Bài tập 3 1. Phân rã bài toán I Ví dụ : In ra màn hình các thông số (chu vi, diện tích, diện tích hình tròn ngoại tiếp) của hình chữ nhật có hai cạnh cho trước. → có thể chia thành nhiều phần, mỗi phần có mục đích khác nhau : I tính chu vi hình chữ nhật I tính diện tích hình chữ nhật I tính diện tích hình tròn ngoại tiếp I in ra các thông số của hình chữ nhật 4 Ví dụ Nếu muốn in ra thông số của rất nhiều hình chữ nhật khác nhau thì sao ? Nếu cần sửa code thì phải sửa ở rất nhiều chỗ ? 5 Phân rã bài toán Ưu điểm : I Một chương trình lớn có thể được chia ra/phân rã thành các chương trình con (hàm). Điều này giúp chương trình lớn dễ hiểu hơn I Chương trình con được viết một lần, và có thể được sử dụng ở nhiều nơi I Mỗi hàm con thường nhỏ → việc kiểm tra tính đúng đắn của hàm đó dễ dàng hơn I Nếu xảy ra lỗi, chỉ cần sửa hàm con mà không phải thay đổi toàn bộ cấu trúc chương trình lớn 6 2. Hàm Nhắc lại : I Hàm : đoạn chương trình máy tính thực hiện một nhiệm vụ nào đó và trả về kết quả I Cú pháp : () { //nội dung thuật toán } 7 I các kiểu dữ liệu cơ bản của C++ (int, float, bool,. . .) I các kiểu dữ liệu do người lập trình tạo ra (sẽ học sau) I kiểu “không là kiểu gì” : void void InGiaTri(int a) { cout << "a = " << a << endl ; return ; //không bắt buộc } 8 , I Nguyên tắc đặt tên giống như cách đặt tên biến I Nên đặt tên hàm thể hiện được nội dung công việc mà hàm làm I Danh sách các biến cần trao đổi giữa hàm và bên ngoài I Danh sách có thể rỗng Ví dụ : void xinchao() { cout << "Xin chao cac ban !" ; } 9 Khai báo, triển khai, gọi hàm Cách 1 10 Khai báo, triển khai, gọi hàm Cách 2 11 3. Tham chiếu và tham trị Truyền bằng tham trị Truyền bằng tham chiếu 12 Truyền bằng tham trị Truyền bằng tham số 12 Truyền bằng tham trị là truyền giá trị của các tham số 13 Truyền bằng tham trị “a” ở đây là một biến mới (có một vùng nhớ mới) Nó được copy giá trị “a” từ ngoài vào ! Mọi thay đổi của “a” bên trong hàm này không ảnh hưởng đến “a” bên ngoài 13 Truyền bằng tham chiếu là truyền nơi lưu trữ trong bộ nhớ của các tham số thực sự cho các biến tham chiếu 14 “a” ở đây KHÔNG là biến mới Vẫn trỏ vào vùng nhớ của giá trị “a” bên ngoài ! Mọi thay đổi với “a” trong hàm này cũng chính là thay đổi với “a” bên ngoài Truyền bằng tham số 14 Tham chiếu và tham trị I Truyền tham trị I Cú pháp : ( tên biến) Ví dụ : float TrungBinhCong(float x, float y) ; I không làm thay đổi giá trị của các biến được truyền I Truyền tham chiếu I Cú pháp : (& tên biến) Ví dụ : float TrungBinhCong(float& x, float& y) ; I những tác động lên biến tham chiếu bên trong hàm có ảnh hưởng đến biến được truyền I Có thể khai báo cả tham trị và tham chiếu trong danh sách Ví dụ : float TrungBinhCong(float& x, float y) ; 15 Khi nào truyền tham chiếu I Có những trường hợp bắt buộc phải dùng tham chiếu I Trong trường hợp nếu truyền tham chiếu hay tham trị đều giải quyết được vấn đề : I Sử dụng tham trị khi dữ liệu truyền cho hàm là các dạng dữ liệu cơ bản (char, int, float, bool,. . .) I Sử dụng tham chiếu cho các trường hợp khác (ví dụ vector, string, . . .) để tránh việc copy dữ liệu quá lớn 16 4. Phạm vi của biến (scope) I Biến toàn cục (global) được khai báo bên ngoài tất cả các hàm I Biến cục bộ (local) được khai báo bên trong một hàm hoặc một khối lệnh (giữa hai dấu { }) I Sau khi được khai báo, biến toàn cục có thể được sử dụng ở bất cứ chỗ nào trong chương trình I Phạm vi của biến cục bộ chỉ giới hạn trong khối lệnh nơi nó được khai báo 17 Phạm vi của biến I đa số các biến có phạm vi cục bộ I các khai báo hàm thường có phạm vi toàn cục I các hằng thường được khai báo ở phạm vi toàn cục //tinh dien tich hinh tron #include using namespace std; const double pi = 3.14159; double dientich(double r) { double dt; dt = pi * r * r; return dt; } int main() { double bankinh = 2.; cout << "Dien tich " << dientich(bankinh); return 0; }! ! Biến!toàn!cục!! Biến!cục!bộ!! 18 5. Bài tập Bài 1 Có lỗi ở chương trình dưới đây. Hãy tìm và sửa nó. #include using namespace std ; void TichHaiSo(int x, int y) { return x * y ; } int main() { cout << TichHaiSo(4, 5) << endl ; return 0 ; } 19 Bài tập Bài 2 Có lỗi ở chương trình dưới đây. Hãy tìm và sửa nó. #include using namespace std ; int TichHaiSo(int x, int y) { int ketqua = x * y ; } int main() { cout << TichHaiSo(4) << endl ; return 0 ; } 20 Bài tập Bài 3 Viết chương trình con tính tổng của ba số thực và nhân tổng đó với 5. Bài 4 Viết chương trình con có kiểu trả về void để chuyển đơn vị từ g sang kg. Bài 3 Viết chương trình con hoán đổi giá trị hai số thực. 21

Các file đính kèm theo tài liệu này:

  • pdftin_hoc_dai_cuongbai4_9138.pdf
Tài liệu liên quan