class="bi x0 y0 w1 h1"
Nội dung
Khái niệm hàm
1
Cách xây dựng hàm
2
Cách thức gọi hàm
3
Nguyên tắc hoạt động hàm
4
Đệ quy
5
Đặ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
a, b, c > 0
Tính
S = a! + b! + c!
Xuất
kết quả S
Nhập
a > 0
Nhập
b > 0
Nhập
c > 0
Tính
s3 = 1;
for (i = 2; i <= c ; i++)
s3 = s3 * i;
Đặ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
Đoạn lệnh tính giai thừa tổng quát, n = a, b, c
do {
printf(“Nhap mot so nguyen duong: ”);
scanf(“%d”, &n);
} while (n <= 0);
{ Tính s = n! = 1 * 2 * … * n }
s = 1;
for (i = 2; i <= n ; i++)
s = s * i;
Khái niệm 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.
< Kiểu dữ liệu của hàm > Tên hàm ([<kiểu tham số>
<tham số>][,<kiểu tham số><tham số>][…])
{
[Khai báo biến cục bộ và các câu lệnh thực hiện
Đầu ra: tổng của 2 số (int)
Thuật toán:
• Tổng=a+b
Cách xây dựng một hàm
Ví dụ 1: Viết hàm tính tổng 2 số nguyên a,b
int TinhTong(int a, int b)
{
int kq;
kq= a+b;
return kq;
}
Tên hàm
Danh sách tham số hình
thức
Trả về kết quả cho hàm
Kiểu của kết quả trả về
Cách xây dựng một hàm
Ví dụ 2. Viết hàm tìm giá trị lớn nhất của 2 số
nguyên a,b
Tên hàm: TimGTLN
Công việc: tìm giá trị lớn nhất của 2 số nguyên a,b
Đầu vào: hai số nguyên a và b
Đầu ra: giá trị lớn nhất của 2 số a,b (kiểu trả về:
int)
Cách xây dựng một hàm
int TimGTLN(int a,int b)
{
int max;
if(a>=b) max=a;
else max=b;
Ví dụ 4: Định nghĩa hàm tính hiệu 2 số nguyên
int Tinhhieu (int a, int b)
{
return a-b;
}
Khi có nhu cầu tính hiệu 2 số nguyên m,n (m-n)
thì gọi hàm như sau:
int kq= Tinhhieu(m,n);
a,b là tham số hình thức
m,n là tham số thực
Cách thức gọi hàm
- Kiểu dữ liệu của các tham số thực phải cùng
kiểu với các tham số hình thức.
- Số lượng và thứ tự của các tham số thực
phải giống như của các tham số hình thức.
Cách thức gọi hàm
int Tinhhieu (int a, int b)
{
return a-b;
}
int kq= Tinhhieu(n,m);
Để tính hiệu n-m. Gọi hàm Tinhhieu:
Ví dụ 5: Ta có định nghĩa hàm tính lũy thừa x
y
long luythua(int x, int y)
{
long kq=1;
for(int i = 1; i <= y; i++)
kq=kq*x;
return kq;
}
void Xuat_sao()
{
printf("****************");
}
Nguyên tắc hoạt động của hàm
#include "stdio.h"
#include "conio.h"
void Xuat_loichao();
void Xuat_sao();
void main()
{
int n;
Xuat_sao();
Xuat_loichao();
Xuat_sao();
}
Các cách truyền tham số
Truyền tham số bằng
tham trị
Truyền tham số bằng
tham biến
−Được sử dụng khi không có
nhu cầu thay đổi giá trị của
tham số sau khi thực hiện
hàm.
Ví dụ
−Hàm tính diện tích hình chữ
nhật (chiều dài, chiều rộng là
tham số)