You are on page 1of 16

CHƯƠNG 3: HÀM

3.1. Giới thiệu chung


3.2. Khai báo hàm
3.3. Truyền tham số cho hàm

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 1


Giới thiệu chung

 Khái niệm:
• Hàm là một khối lệnh được xây dựng để thực hiện một chức
năng cụ thể nào đó.

 Mục đích sử dụng:


• Khi có một công việc giống nhau cần thực hiện ở nhiều
vị trí hoặc sử dụng nhiều lần.
• Khi cần chia một chương trình lớn phức tạp thành các
đơn thể nhỏ (hàm con) để chương trình được trong
sáng, dễ hiểu trong việc xử lý, quản lý việc tính toán và
giải quyết vấn đề

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 2


Khai báo hàm

<data type> <function name>(< data type 1> <parameter 1>, < data type 2>
<parameter 2>, …)
{
Statements;
}

• Ví dụ 1: Viết hàm so sánh hai số và trả về số lớn hơn.

• Ví dụ 2: Viết hàm kiểm tra số nguyên tố.

• Ví dụ 3: Sử dụng ví dụ 2, viết chương trình nhập số n và in ra các số


nguyên tố nhỏ hơn n

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 3


Câu lệnh return

 Hàm thông thường:


• lệnh return kết thúc hàm và trả về một giá trị cho nơi
gọi nó
• các lệnh sau return sẽ bị bỏ qua.

 Hàm void: không trả về giá trị gì


• Câu lệnh return không có tham số
• Không cần lệnh return ở cuối hàm

• Ví dụ 4: Viết hàm so sánh hai số và ghi ra màn hình số lớn hơn.

• Ví dụ 5: Viết hàm kiểm tra và ghi ra màn hình số đó có là số nguyên tố


hay không.

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 4


Truyền tham số cho hàm

 Tham số của hàm là biến tạm thời, tạo ra khi gọi và huỷ khi
hàm kết thúc
 Gán giá trị cho tham số không ảnh hưởng tới biến nơi gọi

void assign10(int x) { x = 10; }


int main()
{
int a = 20;
assign10(a);
cout << “a = ” << a << ‘\n’;
return 0;
}

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 5


Hàm đệ quy (recursive function)

 Hàm được gọi là đệ quy nếu bên trong thân hàm có một lời
gọi đến chính nó.

 Luôn luôn phải có điều kiện dừng – “điểm neo”. Khi đặt tới
điểm neo này, hàm sẽ không gọi chính nó nữa.

• Ví dụ 6: Viết hàm tính giai thừa.

• Ví dụ 7: Viết hàm tính số thứ n của dãy Fibonacci.

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 6


Thư viện hàm (libraries)

 Một số hàm có thể được dùng trong nhiều chương trình


khác nhau => sử dụng thư viện hàm.

 Một thư viện hàm gồm 2 phần:


• File header có đuôi .h chứa prototype các hàm có thể
dùng được của thư viện
• File mã nguồn có đuôi .c chứa nội dung các hàm, hoặc
file .obj, .lib nếu đã được dịch ra các dạng tương ứng

 Khai báo:
• #include <ten_file.h> => trong đường dẫn mặc định
• #include "ten_file.h" => cùng thư mục với file dịch

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 7


Thư viện hàm (libraries)

 File abcd.h:
#pragma once
#ifndef __ABCD_H__
#define __ABCD_H__
int f(int a);
#endif

 File .c
#include “abcd.h”
int f(int a) {return a+1;}

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 8


Bài tập

Chú ý: Sử dụng hàm khi viết chương trình cho các bài tập
Bài 1: Giải phương trình bậc 1: 𝑎𝑥 + 𝑏 = 0 với a, b được nhập từ
bàn phím.
Bài 2: Giải phương trình bậc 2: 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 với a, b, c được
nhập từ bàn phím.
Bài 3: Viết chương trình in ra các bội số của số tự nhiên n và nhỏ
hơn N; N và n nhập từ bàn phím.
Bài 4: Tính tổng các chữ số của số tự nhiên n nhập từ bàn phím.
Bài 5: Tìm số tự nhiên n lớn nhất mà tổng 𝑆 𝑛 = 1 + 2 + ⋯ + 𝑛 <
𝑁 với N nhập từ bàn phím.
Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 9
Bài tập

1 1 1
Bài 6: Tìm số tự nhiên n lớn nhất mà tổng 𝑆 𝑛 = 2 + 4 + ⋯ + 2𝑛 < 𝑁 với N
nhập từ bàn phím.
Bài 7: Tìm các ước của số tự nhiên n nhập từ bàn phím.
Bài 8: Phân tích số tự nhiên n (nhập bàn phím) thừa số nguyên tố.
Ví dụ: Nhập n = 20. Xuất: n = 20 = 2^2 * 5
Bài 9: Nhập số tự nhiên n, xuất ra cách biểu diễn n dưới dạng mã
nhị phân, bát phân, thập lục phân.
Bài 10: Tạo thư viện cho các hàm cộng, trừ, nhân, chia hai số thực .
Bài 11: Vẽ tam giác Pascal
Bài 12: Nhập n và tính 𝑆 = 12 + 22 + ⋯ + 𝑛2

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 10


Bài tập

1 1 1
Bài 13: Nhập n và tính 𝑆 = + +⋯+
1×2 2×3 𝑛−1 ×𝑛

1 2 𝑛−1
Bài 14: Nhập n và tính 𝑆 = + + ⋯ +
2 3 𝑛

1 3 2𝑛+1
Bài 15: Nhập n và tính 𝑆 = + + ⋯ +
2 4 2𝑛+2

1 1 1
Bài 16: Nhập n và tính 𝑆 = + + ⋯+
1 1+2 1+2+⋯+𝑛

𝑥2 𝑥𝑛
Bài 17: Nhập x, n và tính 𝑆 = 𝑥 + + ⋯+
1+2 1+2+⋯+𝑛

𝑥2 𝑥𝑛
Bài 18: Nhập x, n và tính 𝑆 = 𝑥 + +⋯+
2! 𝑛!

Bài 19: Nhập x, n và tính 𝑆 = 𝑥 − 𝑥 2 + 𝑥 3 − ⋯ + −1 𝑛+1 𝑥 𝑛

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 11


Bài tập

Bài 19_1: Nhập x, n và tính 𝑆 = −𝑥 2 + 𝑥 4 − ⋯ + −1 𝑛 𝑥 2𝑛


Bài 20: Nhập x, n và tính 𝑆 = 𝑥 − 𝑥 3 + 𝑥 5 − ⋯ + −1 𝑛 𝑥 2𝑛+1
1 1 𝑛+1 1
Bài 21: Nhập n và tính 𝑆 = − + ⋯ + −1
1 1+2 1+2+⋯+𝑛

𝑥2 𝑛 𝑥𝑛
Bài 22: Nhập x, n và tính 𝑆 = −𝑥 + + ⋯ + −1
1+2 1+2+⋯+𝑛

𝑥2 𝑛𝑥
𝑛
Bài 23: Nhập x, n và tính 𝑆 = −𝑥 + + ⋯ + −1
2! 𝑛!

Bài 24: Nhập n và tính 𝑆 = 2 + 2 + 2 + ⋯ 2 + 2 có n dấu căn

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 12


Bài tập

Bài 25: Nhập n và tính 𝑆 = 𝑛 + 𝑛 − 1 + 𝑛 − 2 + ⋯ 2 + 1 có n

dấu căn

Bài 26: Nhập n và tính 𝑆 = 1 + 2 + 3 + ⋯ 𝑛 − 1 + 𝑛 có n dấu

căn

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 13


Bài tập

Bài 27: Nhập n và tính 𝑆 = 𝑛! + 𝑛−1 !+ 𝑛 − 2 ! + ⋯ 2! + 1!

có n dấu căn

𝑛 𝑛−1 3
Bài 28: Nhập n và tính 𝑆 = 𝑛+ 𝑛−1+⋯ 3 + 2 có 𝑛 − 1 dấu

căn

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 14


Bài tập

𝑛+1 𝑛 3
Bài 29: Nhập n và tính 𝑆 = 𝑛+ 𝑛−1+⋯ 2 + 1 có 𝑛 dấu căn

𝑛+1 𝑛 3
Bài 30: Nhập n và tính 𝑆 = 𝑛! + 𝑛−1 !+⋯ 2! + 1 có 𝑛 dấu căn

Bài 31: Nhập 𝑥 > 0, 𝑛 và tính 𝑆 = 𝑥 𝑛 + 𝑥 𝑛−1 + 𝑥 𝑛−2 + ⋯ 𝑥 2 + 𝑥 có n

dấu căn

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 15


Bài tập

Bài 32: Nhập n và tính

1
𝑆=
1
1+ 1
1+ 1
1+ 1
1+
1+1
n là số dấu phân số, Ví dụ ở đây n = 5.

Bộ môn Kỹ thuật Cơ điện tử | Department of Mechatronic Engineering 16

You might also like