Dưới đây là 10 bài tập thực hành thiết kế và sử dụng hàm trong C++:
Bài tập 1: Hàm tính tổng hai số nguyên
Viết một hàm có tên sum để tính tổng của hai số nguyên và trả về kết quả. Gọi hàm này từ hàm main.
Bài tập 2: Hàm tính diện tích hình tròn
Viết một hàm có tên circleArea để tính diện tích của hình tròn với tham số là bán kính. Sử dụng công thức area = π * r * r và gọi hàm này từ hàm main.
Bài tập 3: Hàm kiểm tra số chẵn lẻ
Viết một hàm có tên isEven để kiểm tra một số nguyên có phải là số chẵn hay không. Hàm trả về true nếu số đó là số chẵn và false nếu là số lẻ.
Bài tập 4: Hàm tìm số lớn nhất trong ba số
Viết một hàm có tên maxOfThree để tìm và trả về số lớn nhất trong ba số nguyên. Gọi hàm này từ hàm main.
Bài tập 5: Hàm tính giai thừa
Viết một hàm có tên factorial để tính giai thừa của một số nguyên không âm. Gọi hàm này từ hàm main.
Bài tập 6: Hàm kiểm tra số nguyên tố
Viết một hàm có tên isPrime để kiểm tra một số nguyên có phải là số nguyên tố hay không. Hàm trả về true nếu số đó là số nguyên tố và false nếu không phải. Gọi hàm này từ hàm main.
Bài tập 7: Hàm đảo ngược chuỗi
Viết một hàm có tên reverseString để đảo ngược một chuỗi ký tự và trả về chuỗi đã đảo ngược. Gọi hàm này từ hàm main.
Bài tập 8: Hàm tính tổng các phần tử trong mảng
Viết một hàm có tên sumArray để tính tổng các phần tử trong một mảng số nguyên. Hàm nhận vào mảng và kích thước của mảng làm tham số. Gọi hàm này từ hàm main.
Bài tập 9: Hàm tính lũy thừa
Viết một hàm có tên power để tính lũy thừa của một số nguyên với số mũ nguyên không âm. Gọi hàm này từ hàm main.
Bài tập 10: Hàm hoán đổi giá trị của hai biến
Viết một hàm có tên swap để hoán đổi giá trị của hai biến nguyên. Sử dụng tham chiếu để thực hiện việc hoán đổi. Gọi hàm này từ hàm main.
Gợi ý mẫu cho một vài bài tập
Bài tập 1: Hàm tính tổng hai số nguyên
#include <iostream>
using namespace std;
int sum(int a, int b) {
return a + b;
}
int main() {
int num1, num2;
cout << "Nhap so thu nhat: ";
cin >> num1;
cout << "Nhap so thu hai: ";
cin >> num2;
cout << "Tong cua hai so la: " << sum(num1, num2) << endl;
return 0;
}
Bài tập 2: Hàm tính diện tích hình tròn
#include <iostream>
#include <cmath>
using namespace std;
double circleArea(double radius) {
const double PI = 3.14159;
return PI * radius * radius;
}
int main() {
double radius;
cout << "Nhap ban kinh hinh tron: ";
cin >> radius;
cout << "Dien tich hinh tron la: " << circleArea(radius) << endl;
return 0;
}
Bài tập 3: Hàm kiểm tra số chẵn lẻ
#include <iostream>
using namespace std;
bool isEven(int num) {
return num % 2 == 0;
}
int main() {
int num;
cout << "Nhap mot so nguyen: ";
cin >> num;
if (isEven(num)) {
cout << num << " la so chan" << endl;
} else {
cout << num << " la so le" << endl;
}
return 0;
}
Bài tập 4: Hàm tìm số lớn nhất trong ba số
#include <iostream>
using namespace std;
int maxOfThree(int a, int b, int c) {
int max = a;
if (b > max) max = b;
if (c > max) max = c;
return max;
}
int main() {
int num1, num2, num3;
cout << "Nhap so thu nhat: ";
cin >> num1;
cout << "Nhap so thu hai: ";
cin >> num2;
cout << "Nhap so thu ba: ";
cin >> num3;
cout << "So lon nhat trong ba so la: " << maxOfThree(num1, num2, num3) << endl;
return 0;
}
Bài tập 5: Hàm tính giai thừa
#include <iostream>
using namespace std;
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
int main() {
int num;
cout << "Nhap mot so nguyen: ";
cin >> num;
cout << "Giai thua cua " << num << " la: " << factorial(num) << endl;
return 0;
}
Bài tập 6: Hàm kiểm tra số nguyên tố
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int num;
cout << "Nhap mot so nguyen: ";
cin >> num;
if (isPrime(num)) {
cout << num << " la so nguyen to" << endl;
} else {
cout << num << " khong phai la so nguyen to" << endl;
}
return 0;
}
Bài tập 7: Hàm đảo ngược chuỗi
#include <iostream>
#include <string>
using namespace std;
string reverseString(string str) {
int n = str.length();
for (int i = 0; i < n / 2; i++) {
swap(str[i], str[n - i - 1]);
}
return str;
}
int main() {
string str;
cout << "Nhap chuoi: ";
getline(cin, str);
cout << "Chuoi dao nguoc la: " << reverseString(str) << endl;
return 0;
}
Bài tập 8: Hàm tính tổng các phần tử trong mảng
#include <iostream>
using namespace std;
int sumArray(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int size;
cout << "Nhap kich thuoc mang: ";
cin >> size;
int arr[size];
cout << "Nhap cac phan tu cua mang: ";
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
cout << "Tong cac phan tu trong mang la: " << sumArray(arr, size) << endl;
return 0;
}
Bài tập 9: Hàm tính lũy thừa
#include <iostream>
using namespace std;
int power(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
int main() {
int base, exponent;
cout << "Nhap co so: ";
cin >> base;
cout << "Nhap so mu: ";
cin >> exponent;
cout << base << " ^ " << exponent << " = " << power(base, exponent) << endl;
return 0;
}
Bài tập 10: Hàm hoán đổi giá trị của hai biến
#include <iostream>
using namespace std;
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int num1, num2;
cout << "Nhap so thu nhat: ";
cin >> num1;
cout << "Nhap so thu hai: ";
cin >> num2;
cout << "Truoc khi hoan doi: " << "num1 = " << num1 << ", num2 = " << num2 << endl;
swap(num1, num2);
cout << "Sau khi hoan doi: " <<
"num1 = " << num1 << ", num2 = " << num2 << endl;
return 0;
}
Những bài tập này giúp học sinh thực hành thiết kế và sử dụng hàm trong C++, nâng cao kỹ năng lập trình và giải quyết các vấn đề thực tế.
