Bài giảng Kỹ thuật lập trình C: Bài 5 Hàm và cấu trúc chương trình, cung cấp cho người học những kiến thức như: Hàm và chương trình; Ví dụ về chương trình có hàm; Cách viết một hàm. Mời các bạn cùng tham khảo!
Trang 1KỸ THUẬT LẬP TRÌNH C
BÀI 5: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH
Hoàng Quốc Tuấn Hoàng Quốc Tuấn
Trang 3I – Hàm và chương trình
Khái niệm về chương trình
Khái niệm về hàm
Tổ chức một chương trình trong C
Trang 41 Khái niệm về chương trình
Chương trình bao gồm một hoặc nhiều hàm.
Hàm main() là hàm bắt buộc phải có của một chương trình.
Chương trình bắt đầu thực hiện từ câu lệnh
đầu tiên của hàm main() cho đến khi kết thúc hàm này
Trong hàm main() chứa đựng các câu lệnh và
các lời gọi thực hiện các hàm khác.
Trang 52 Khái niệm hàm
Hàm (Function) là một đoạn chương trình độc lập thực hiện trọn vẹn một công việc nhất định, rồi trả
về một giá trị cho nơi gọi nó.
Hàm là một đơn vị độc lập của chương trình,
không cho phép định nghĩa một hàm bên trong
một hàm khác.
Trang 6void main() {
}
int luy_thua(int n) {
}
Trang 73 Tổ chức một chương trình trong C
Ở phần khai báo, ta có thể đặt các toán tử
#include, #define , định nghĩa kiểu dữ liệu, khai
báo mẫu hàm, khai báo biến toàn cục.
Việc truyền dữ liệu và kết quả từ hàm này sang hàm khác được thực hiện theo hai cách:
− Sử dụng tham số (đối số) của hàm.
− Sử dụng biến toàn cục.
Trang 8II – Ví dụ về chương trình có hàm
#include <stdio.h> //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype)
Trang 10III – Cách viết một hàm
Xác định mục đích hàm
Xác định các thành phần của hàm
Trang 111 Xác định mục đích hàm
Để viết một hàm, trước hết phải xác định
mục đích của hàm là dùng để làm gì, trên cơ
sở đó mới xác định được các thành phần của hàm
Trang 122 Xác định các thành phần của hàm
Nguyên mẫu của hàm (prototype)
Kiểu giá trị của hàm (return value)
Tên hàm (function name)
Tham số của hàm (parameter)
Nội dung của hàm (function body)
Trang 13Nguyên mẫu hàm
Cú pháp khai báo mẫu hàm:
< kiểu dữ liệu > < tên hàm >( danh sách đối số ); Mỗi hàm nên được khai báo mẫu hàm trong phần khai báo.
Khai báo mẫu hàm báo cho trình biên dịch biết sự hiện diện của hàm.
VD:
Trang 14Nguyên mẫu hàm
#include <stdio.h> //khai báo thư viện
long lap_phuong ( int a ); //khai báo mẫu hàm (prototype) void main ()
Trang 15Kiểu giá trị của hàm
Giá trị trả về của hàm phải được xác định dựa vào mục đích của hàm.
Để trả về giá trị từ hàm, ta dùng câu lệnh
return <giá trị trả về>;
Kiểu dữ liệu của giá trị được trả về phải đúng với kiểu dữ liệu trả về đã xác định ban đầu.
Trong trường hợp không trả về gì thì phải khai báo
kiểu dữ liệu trả về là void.
Trang 16Kiểu giá trị của hàm
#include <stdio.h> //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main ()
Trang 18Tên hàm
#include <stdio.h> //khai báo thư viện
long lap_phuong(int); //khai báo mẫu hàm (prototype) void main ()
Trang 19Tham số của hàm
Tham số hình thức là tham số ghi trong
mẫu hàm hay ghi lúc định nghĩa hàm.
Tham số thực là các giá trị, biến mà ta
truyền vào hàm khi gọi hàm.
Trang 20Tham số của hàm
#include <stdio.h> //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main ()
Trang 21Tham số của hàm
Có 2 loại truyền tham số
Truyền tham chiếu
Truyền tham trị
Trang 22Tham số của hàm
Truyền tham chiếu:
Là truyền tham số cho hàm dưới dạng con trỏ, dưới dạng địa chỉ
Trong trường hợp truyền tham chiếu dưới dạng
địa chỉ, ta thêm dấu & trước tên biến.
Mọi sự thay đổi giá trị của tham số trong
hàm sẽ làm thay đổi giá trị biến gốc ban đầu.
Trang 23n = 15
Trang 24Tham số của hàm
Truyền tham trị:
Là truyền tham số cho hàm dưới dạng giá trị Khi đó một bản sao của tham số thực sẽ được
truyền vào cho hàm.
Mọi sự thay đổi giá trị của tham số trong
hàm sẽ không làm thay đổi giá trị biến gốc ban đầu.
Trang 26Nội dung của hàm
Phần nội dung của hàm còn được gọi là thân hàm
Thân hàm là một khối lệnh - được bao bọc bởi cặp dấu {}
Trong thân hàm chứa các chỉ thị lệnh, các
cấu trúc điều khiển và các lời gọi hàm
Hàm kết thúc khi được thực hiện xong hoặc khi vừa thực hiện một câu lệnh return
Trang 27VII – Bài tập minh họa
Bài 1:
− Viết hàm int lon_nhat ( int a, int b , int c ) nhận vào
ba số nguyên, trả về kết quả là số nguyên lớn nhất.
− Viết hàm int nho_nhat ( int a, int b , int c ) nhận
vào ba số nguyên, trả về kết quả là số nguyên nhỏ nhất.
− Ứng dụng các hàm này viết chương trình nhập vào
ba số nguyên a Xuất ra màn hình giá trị số nguyên
Trang 28VII – Bài tập minh họa
Bài 2:
− Viết hàm long giai_thua ( int n ) nhận vào số
nguyên dương n, trả về kết quả của n!
− Ứng dụng hàm này viết chương trình nhập vào một số nguyên a Xuất ra màn hình bảng danh sách giá trị tương ứng n với n! với n là các số nguyên từ 1 đến a.
Trang 29VII – Bài tập minh họa
Bài 3:
− Viết hàm int la_so_nguyen_to ( int n ) nhận vào
số nguyên dương n Nếu n là số nguyên tố thì
trả về giá trị 1; ngược lại, trả về 0.
− Ứng dụng hàm này viết chương trình nhập vào
một số nguyên a Xuất ra màn hình bảng danh sách các số nguyên tố trong đoạn [0, a], và xuất
Trang 30VII – Bài tập minh họa
Bài 4:
− Viết hàm hoan_chuyen nhận vào hai số
nguyên a và b Hàm thực hiện hoán chuyển giá
trị của hai biến.
− Ứng dụng hàm này viết chương trình nhập vào hai số nguyên vào hai biến Xuất ra giá trị vừa nhập của hai biến Thực hiện hoán chuyển giá trị của hai biến và xuất kết quả ra màn hình