Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo

• Xây dựng các khối cho chương trình

• Cách gọi trong các ngôn ngữ khác

◦ Thủ tục, chương trình con, phương thức

◦ Trong C++: hàm

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 1

Trang 1

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 2

Trang 2

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 3

Trang 3

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 4

Trang 4

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 5

Trang 5

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 6

Trang 6

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 7

Trang 7

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 8

Trang 8

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 9

Trang 9

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 55 trang Danh Thịnh 09/01/2024 700
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo

Bài giảng Tin học đại cương - Bài 5: Chương trình con - Nguyễn Thị Phương Thảo
TIN ĐẠI CƯƠNG
Bài 5: CHƯƠNG TRÌNH CON
Nguyễn Thị Phương Thảo
Bộ môn KTMT và M, Khoa CNTT
Trường Đại học Thủy Lợi
Nội dung chính
1. Giới thiệu về hàm (chương trình con)
2. Truyền tham số cho hàm
3.Phạm vi của biến (scope)
4. Bài tập
Giới thiệu về hàm
3
• Xây dựng các khối cho chương trình
• Cách gọi trong các ngôn ngữ khác
◦ Thủ tục, chương trình con, phương thức
◦ Trong C++: hàm
• I-P-O
◦ Đầu vào - Xử lý - Đầu ra
◦ Là các thành phần cơ bản của mỗi chương trình
◦ Sử dụng hàm cho mỗi thành phần này
Hàm định nghĩa trước
• Trong các thư viện có sẵn rất nhiều hàm
• Hai kiểu hàm:
◦ Hàm trả về giá trị
◦ Hàm không trả về giá trị (void)
• Phải khai báo #include thư viện phù hợp khi dùng hàm
định nghĩa trước trong chương trình
4
Lời gọi hàm
6
• Xét lệnh gán: a= fabs(-4.2);
◦ Biểu thức “fabs(-4.2)” được hiểu như là một lời gọi 
hàm
◦ Đối số trong lời gọi hàm (-4.2) có thể là một literal, 
một biến, hoặc một biểu thức
• Lời gọi có thể là một phần của biểu thức:
◦ VD: bonus = sqrt(a*2+13)/10;
◦ Dựa vào kiểu trả về của hàm để biết nơi được phép 
sử dụng lời gọi hàm
Một số hàm định nghĩa trước
• #include , thư viện gồm các hàm:
◦ abs() // Trả về giá trị tuyệt đối của một số int
◦ labs() // Trả về giá trị tuyệt đối của một số long int
◦ fabs() // Trả về giá trị tuyệt đối của một số float
• Hàm pow(x, y): Trả về x mũ y
◦ VD: Cho biết kết quả in ra của đoạn mã lệnh
double result, x = 3.0, y = 2.0; 
result = pow(x, y); 
cout << result;
9
rMột số hàm toán học
10
rMột số hàm toán học
Hàm void định nghĩa trước
• Không trả về giá trị
• Thực hiện một hành động, nhưng không gửi câu trả lời
• Khi được gọi, bản thân nó là một câu lệnh
VD: exit(1); //Không trả về giá trị, do vậy không
được sử dụng để gán
• Các khía cạnh khác tương tự như hàm trả về giá trị
12
HÀM DO NGƯỜI DÙNG ĐỊNH NGHĨA
16
• C++ cho phép người lập trình tự viết hàm của riêng mình
• Xây dựng các khối chương trình
◦ Thành các phần nhỏ để dễ thực hiện
◦ Dễ đọc và sửa lỗi
◦ Có thể sử dụng lại
• Định nghĩa hàm có thể nằm:
◦ Cùng file với hàm main(), hoặc
◦ Trong file riêng rẽ để những người khác cũng có thể sử dụng
Các thành phần của hàm
17
• Khai báo hàm/nguyên mẫu hàm
◦ Thông tin cho trình biên dịch
◦ Thông dịch chính xác lời gọi
• Định nghĩa hàm
◦ Sự thực thi hay mã lệnh thực hiện công việc của hàm
• Lời gọi hàm
◦ Chuyển điều khiển cho hàm
Vị trí đặt định nghĩa hàm
• Đặt sau hàm main(), không nằm bên trong hàm main()
• Các hàm là bình đẳng, không hàm nào là thành phần của 
hàm khác
• Các tham số hình thức trong định nghĩa
Giữ chỗ cho dữ liệu gửi vào
Sử dụng tên biến để tham chiếu tới dữ liệu trong định 
nghĩa
• Lệnh return
Trả dữ liệu về cho lời gọi
20
 ([Danh sách các tham số]);
Trong đó:
- Kiểu trả về: là kiểu dữ liệu của giá trị mà hàm trả về
- Tên hàm: là tên thực sự của hàm, 
- Danh sách các tham số: các tham số cần thiết để thực hiện hàm. 
(Một hàm có thể có tham số hoặc không)
Ví dụ: Khai báo hàm tính tổng hai số nguyên
int tinhtong (int so1, int so2);
HÀM TRẢ VỀ GIÁ TRỊ - KHAI BÁO HÀM
Cấu trúc:
 ([Danh sách các tham số ])//tiêu đề
{
Thân hàm
}
Trong đó: Tiêu đề tương tự như khai báo, không có dấu “;”
Thân hàm bao gồm tập hợp các lệnh xác định những gì mà hàm 
thực hiện.
HÀM TRẢ VỀ GIÁ TRỊ- ĐỊNH NGHĨA HÀM
Ví dụ: Định nghĩa hàm tính tổng đã được khai báo
ở trên
int tinhtong (int so1, int so2)
{
int tong;
tong = so1+so2;
return tong;
}
HÀM TRẢ VỀ GIÁ TRỊ - VÍ DỤ
Định nghĩa hàm có phần tiêu đề tương tự như phần khai
báo chỉ khác là không có dấu “;”
Định nghĩa hàm phải liệt kê tên các tham số sau tên hàm
Hàm trả về giá trị luôn luôn có lệnh return.
Giá trị trả về của hàm được xác định khi lệnh return được
thực thi
Mọi câu lệnh sau lệnh return đều không được thực thi.
Nếu định nghĩa hàm đầy đủ được đặt trước lời gọi đến nó
thì khai báo hàm có thể bỏ đi
HÀM TRẢ VỀ GIÁ TRỊ - CÁC CHÚ Ý
Khi muốn sử dụng hàm, lập trình viên phải gọi hàm bằng cách
sử dụng lời gọi hàm
Lời gọi hàm được sử dụng như một biểu thức trong câu lệnh
(không được gọi như một câu lệnh độc lập)
Hàm có thể được gọi bất cứ khi nào (sau khi có khai báo hoặc
định nghĩa)
Khi gọi hàm các đối số được truyền tới các tham số theo thứ tự
của nó và cần đảm bảo sự đồng nhất về kiểu dữ liệu
Cần lưu trữ các giá trị trả về của hàm.
HÀM TRẢ VỀ GIÁ TRỊ - GỌI HÀM
HÀM TRẢ VỀ GIÁ TRỊ - VÍ DỤ
#include
using namespace std;
int tinhtong(int so1, int so2);//khai bao ham
int main()
{
int a =6;
int b =7;
//a,b la cac gia triduoc truyen vao cac tham bien khi goi ham
int ketqua;//dung de luu gia tri tra ve cua ham
ketqua = tinhtong(a,b);//goi ham
cout<<"tong 2 so "<<a<< " va "<< b<< " la: "<<ketqua;
return 0;
}
int tinhtong(int so1, int so2)//dinh nghia ham
{
int tong;
tong = so1+so2;
return tong;
}
HÀM TRẢ VỀ GIÁ TRỊ - VÍ DỤ
#include
using namespace std;
int tinhtong(int so1, int so2)//dinh nghia
ham
{
int tong;
tong = so1+so2;
return tong;
}
//int tinhtong(int so1, int so2); Khi dinh
nghia ham dat truoc loi goi no thi khong
Bài tập
Bài 1: Viết hàm tính tổng sau:
𝑆 = 1 +
1
2
+
1
3
+⋯+
1
𝑛
Viết chương trình sử dụng hàm để tính tổng S 
với n được nhập vào từ bàn phím
Bài 2: Viết hàm kiểm tra số nguyên tố
Viết chương trình sử dụng hàm để xác định xem 
một số nguyên n được nhập vào từ bàn phím có 
phải số nguyên tố không?
Bài 3: Viết hàm kiểm tra số hoàn chỉnh
Viết chương trình sử dụng hàm để xác định xem 
một số nguyên n được nhập vào từ bàn phím có 
phải số hoàn chỉnh không?
Tương tự như hàm trả về giá trị chỉ khác ở một số điểm
sau:
Sử dụng từ khóa void trong phần khai báo kiểu dữ liệu
trả về của hàm (hiểu là không có giá trị nào được trả về).
Lời gọi hàm kết thúc bởi dấu “;” (dùng như câu lệnh
độc lập
Việc gọi hàm void giống như copy thân hàm vào chương
trình ở vị trí lời gọi hàm xuất hiện
Trong hàm void, lệnh return là tùy chọn (không bắt buộc
phải có)

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_bai_5_chuong_trinh_con_nguyen_th.pdf