THĐC - Văn Thị Thiên Trang
1
THĐC - Văn Thị Thiên Trang
2
1. Khái niệm hàm
2. Phân loại hàm
3. Định nghĩa hàm
4. Tham số của hàm
5. Sử dụng hàm
THĐC - Văn Thị Thiên Trang - 2010
3
#include<stdio.h>
#include<conio.h>
void main(){
int n, S=0; float x, T=1;
//nhập số nguyên n
printf(“Nhap n:”); scanf(“%d”, &n);
//tính tổng n số nguyên đầu tiên
for(int i=1; i<=n; i++)
S=S+i;
printf(“Tong cac so tu 1 den %d =%d”,n,S);
//tính x
n
printf(“Nhap x:”); scanf(“%d”, &x);
for(i=1; i<=n; i++)
T=T*x;
printf(“%f luy thua %d = %f”, x, n, T);
//tính S=-1+2-3+….+(-1)
n
.n
int tam=1;
for(i=1;i<=n; i++)
{
tam=tam*(-1);
S=S+tam*i;
}
printf(“Tong la: %d”, S);
getch();
}
THĐC - Văn Thị Thiên Trang
4
Nhiều đoạn chương trình viết lặp đi lặp lại nhiều
lần
Chương trình được chia thành nhiều module,
mỗi module giải quyết một công việc nào đó.
chương trình con
Dễ dàng kiểm tra, xác định tính đúng đắn trước
khi ráp vào chương trình chính
Trong C, chương trình con được gọi là Hàm
Liệt kê các số nguyên tố từ 1…100
Tính tổng các số nguyên tố từ 1 đến 100
THĐC - Văn Thị Thiên Trang
5
THĐC - Văn Thị Thiên Trang
6
Hàm (chương trình con) là một dãy các lệnh
nhằm thực hiện một công việc nào đó, thường
được sử dụng nhiều lần
−
VD:
Tìm ước chung lớn nhất của hai số nguyên
Kiểm tra tính nguyên tố của một số nguyên
Chương trình C là dãy các hàm, trong đó có
một hàm chính là main
−
Một chương trình bắt đầu thực thi từ hàm main
THĐC - Văn Thị Thiên Trang
7
Tìm số lớn nhất trong hai số nguyên
!"#$%&'
()*%&+(, /// Khai báo hàm
0&(+.
1
),2/
345+6(30(&(%&7./%!(5+6887,9),92./
345+6(4"&(!(80(8"(87,),2,()*%&+),2 /
:
;<<===========>?@(()*%&=================
()*%&+(,
1
()/
()A('-B(-/
4#4()/
:
THĐC - Văn Thị Thiên Trang
8
* CD"&E
Hàm thư viện
Hàm người
dùng
Hàm người dùng là hàm do người lập trình tự định
nghĩa
THĐC - Văn Thị Thiên Trang
9
*(0
Là hàm được định nghĩa sẵn trong thư viện
Phải khai báo thư viện trước khi sử dụng
−
#include<tên thư viện.h>
VD:
−
Tính căn bậc hai của một số thực dương x
−
Dùng hàm sqrt(x), phải khai báo thư viện
#include<math.h>
THĐC - Văn Thị Thiên Trang
10
%F0GH
<stdio.h> : chứa các lệnh nhập/xuất dữ liệu
như printf(), scanf(), …
<conio.h>: getch(), clrscr()
<math.h> : chứa các hàm toán học như:
pow(), exp(), sqrt(), sin(), cos()…
<graphic.h>: chứa các hàm đồ họa như:
setcolor(), line(), putpixel(), …
Xem Help
THĐC - Văn Thị Thiên Trang
11
*-GH
Là hàm do người lập trình tự định nghĩa
Định nghĩa một hàm bao gồm
−
Khai báo kiểu hàm
−
Đặt tên hàm
−
Khai báo các tham số
−
Các câu lệnh cần thiết để thực hiện yêu cầu
đề ra cho hàm
THĐC - Văn Thị Thiên Trang
12
I J?@(
Kiểu dữ liệu Tên_hàm (danh sách các tham số)
{
[ khai báo biến ;]
các câu lệnh ;
[ return ; ]
}
Int
Int
%+(,-.
1
return
return(K-/
:
vo id
vo id )(+(,
1
345+6887,(, /
:
THĐC - Văn Thị Thiên Trang
13
I J?@(
Hàm không trả về trị
−
Nhập/Xuất
Hàm trả về trị
−
Tìm
−
Tính
−
Đếm
−
Kiểm tra
vo id
vo idLM+%(%F.
1
!!!D"/
:
kiểu
kiểuLM+%(%F.
1
!!!D"/
return a+b ;
return a+b ;
:
THĐC - Văn Thị Thiên Trang
14
!"#$%&'
//
// Khai báo hàm
5"&(()*%&+(, /
0&(+.
1
),2/
N
345+6()"(87,max2s o(x, y)./
:
//Định nghĩa hàm max2so==========
()*%&+(,
1
//các câu lệnh
}
J?@(O>DB
Định nghĩa hàm có thể đặt trước hoặc sau hàm main
−
Nếu đặt sau: Phải khai báo nguyên mẫu hàm ở đầu
chương trình
!"#$%&'
//
//Định nghĩa hàm max2s o
()*%&+(,
1
//các câu lệnh
}
//
0&(+.
1
),2/
N
345+6()"(87,()*%&+),2 /
:
THĐC - Văn Thị Thiên Trang
15
Viết hàm tìm số lớn nhất giữa hai số nguyên a
và b?
Viết hàm hiển thị 10 số chẵn đầu tiên
THĐC - Văn Thị Thiên Trang
16
P Q(%F!R(
Gồm 2 loại:
−
Tham trị: Giá trị của tham số không bị
thay đổi sau khi thực hiện hàm xong
−
Tham biến: Có sự thay đổi giá trị tham
số bên trong hàm và cần lấy giá trị đó
sau khi ra khỏi hàm. Thêm & vào trước
khai báo tham số
THĐC - Văn Thị Thiên Trang
17
P Q(%F!R(
Khi nào dùng tham biến? Tham trị?
VD: Viết các hàm sau:
−
Nhập số nguyên
−
Hoán vị giá trị hai số nguyên a,b?
THĐC - Văn Thị Thiên Trang
18
S TU
Gọi thực hiện hàm trong hàm chính main
Cú pháp:
Lưu ý
−
Số tham số khi gọi hàm phải = số tham số có trong
định nghĩa hàm
−
Kiểu dữ liệu của tham số khi gọi phải giống khi định
nghĩa
tên_hàm (Danh sách các tham s th c)F V
THĐC - Văn Thị Thiên Trang
19
S TU=
!"#$%&'
//
//Định nghĩa hàm max2s o
()*%&+(,
1N
}
//Định nghĩa hàm nhập s ố nguyê n
0&(3+9(.1
N
:
//
0&(+.
1
),2/
(3+)./(3+2./
345+6()"(87,()*%&+),2 /
:
int max=max2so(x,y);
printf(“Max là %d”,
max);
THĐC - Văn Thị Thiên Trang
20
WX3
Viết chương trình liệt kê các số nguyên tố nhỏ hơn n (với n
nhập từ bàn phím). Viết dưới dạng hàm
Yêu cầu:
−
Hàm nhập số nguyên
−
Hàm kiểm tra 1 số có là số nguyên tố
−
Hàm hiển thị các số nguyên tố từ 1 n
Y4(
Viết chương trình thực hiện các chức năng sau
(viết dạng hàm):
−
Liệt kê các số lẻ chia hết cho 3 nhỏ hơn n (n nhập từ
bàn phím)
−
Tính x
n
−
Kiểm tra n có phải số chính phương không
THĐC - Văn Thị Thiên Trang
21
THĐC - Văn Thị Thiên Trang
22
DZ
THĐC - Văn Thị Thiên Trang
23