Bài tập C++ cơ bản
514 lượt xem
Để củng cố những kiến thức đã học về lập trình C++. Mời bạn đọc cùng thực hành qua một số bài tập C++ cơ bản dưới đây.
1. Bài 01
Viết chương trình C++ giải phương trình bậc 2: ax2 + bx + c = 0.
Code mẫu:
#include <iostream>
#include <cmath>
using namespace std;
/**
* giai phuong trinh bac 2: ax2 + bx + c = 0
*
* @param a: he so bac 2
* @param b: he so bac 1
* @param c: so hang tu do
*/
void giaiPTBac2(float a, float b, float c) {
// kiem tra cac he so
if (a == 0) {
if (b == 0) {
printf("Phuong trinh vo nghiem!");
} else {
printf("Phuong trinh co mot nghiem: x = %f", (-c / b));
}
return;
}
// tinh delta
float delta = b*b - 4*a*c;
float x1;
float x2;
// tinh nghiem
if (delta > 0) {
x1 = (float) ((-b + sqrt(delta)) / (2*a));
x2 = (float) ((-b - sqrt(delta)) / (2*a));
printf("Phuong trinh co 2 nghiem la: x1 = %f va x2 = %f", x1, x2);
} else if (delta == 0) {
x1 = (-b / (2 * a));
printf("Phong trinh co nghiem kep: x1 = x2 = %f", x1);
} else {
printf("Phuong trinh vo nghiem!");
}
}
/**
* ham main
*/
int main() {
float a, b, c;
cout << "Nhap he so bac 2, a = ";
cin >> a;
cout << "Nhap he so bac 1, b = ";
cin >> b;
cout << "Nhap so hang tu do, c = ";
cin >> c;
giaiPTBac2(a, b, c);
return 1;
}
Kết quả:
Nhap he so bac 2, a = 2
Nhap he so bac 1, b = 3
Nhap so hang tu do, c = 1
Phuong trinh co 2 nghiem la: x1 = -0.500000 va x2 = -1.000000
2. Bài 02
Viết chương trình C++ tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BCSNN) của hai số a và b.
Gợi ý:
- Sử dụng giải thuật Euclid
Code mẫu:
/**
* Chuong trinh tim uoc chung lon nhat (USCLN)
* va boi so chung nho nhat (BSCNN) cua 2 so a và b
*
* @author viettuts.vn
*/
#include <iostream>
using namespace std;
/**
* Tim uoc so chung lon nhat (USCLN)
*/
int USCLN(int a, int b) {
if (b == 0) return a;
return USCLN(b, a % b);
}
/**
* Tim boi so chung nho nhat (BSCNN)
*/
int BSCNN(int a, int b) {
return (a * b) / USCLN(a, b);
}
/**
* Ham main
*/
int main() {
int a, b;
cout << "Nhap so nguyen duong a = ";
cin >> a;
cout << "Nhap so nguyen duong b = ";
cin >> b;
// tinh USCLN cua a và b
printf("USCLN cua %d va %d la: %d, ", a, b, USCLN(a, b));
// tinh BSCNN cua a và b
printf("BSCNN cua %d va %d la: %d", a, b, BSCNN(a, b));
}
Kết quả:
Nhap so nguyen duong a = 4
Nhap so nguyen duong b = 6
USCLN cua 4 va 6 la: 2, BSCNN cua 4 va 6 la: 12
3. Bài 03
Viết chương trình C++ liệt kê tất cả các số nguyên tố nhỏ hơn n.
Code mẫu:
/**
* Chuong liet ke cac so nguyen to nho hon n.
*
*
*/
#include <iostream>
#include <cmath>
using namespace std;
/**
* check so nguyen to
*
* @author viettuts.vn
* @param n: so nguyen duong
* @return 1: la so nguyen so,
* 0: khong la so nguyen to
*/
int isPrimeNumber(int n) {
// so nguyen n < 2 khong phai la so nguyen to
if (n < 2) {
return 0;
}
// check so nguyen to khi n >= 2
int i;
int squareRoot = (int) sqrt(n);
for (i = 2; i <= squareRoot; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
/**
* Ham main
*/
int main() {
int i, n;
cout << "Nhap n = ";
cin >> n;
printf("Tat ca cac so nguyen to nho hon %d la: \n", n);
if (n >= 2) {
printf("%d ", 2);
}
for (i = 3; i < n; i+=2) {
if (isPrimeNumber(i) == 1) {
printf("%d ", i);
}
}
}
Kết quả:
Nhập n = 100
Tat ca cac so nguyen to nho hon 100 la:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
4. Bài 04
Viết chương trình C++ liệt kê n số nguyên tố đầu tiên.
Code mẫu:
/**
* Chuong trinh liet ke n so nguyen to dau tien.
*
*
*/
#include <iostream>
#include <cmath>
using namespace std;
/**
* check so nguyen to
*
*
* @param n: so nguyen duong
* @return 1: la so nguyen so,
* 0: khong la so nguyen to
*/
int isPrimeNumber(int n) {
// so nguyen n < 2 khong phai la so nguyen to
if (n < 2) {
return 0;
}
// check so nguyen to khi n >= 2
int i;
int squareRoot = sqrt(n);
for (i = 2; i <= squareRoot; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
/**
* Ham main
*/
int main() {
int n;
cout << "Nhap n = ";
cin >> n;
printf("%d so nguyen to dau tien la: \n", n);
int dem = 0; // dem tong so nguyen to
int i = 2; // tim so nguyen to bat dau tu so 2
while (dem < n) {
if (isPrimeNumber(i)) {
printf("%d ", i);
dem++;
}
i++;
}
}
Kết quả:
Nhập n = 10
10 so nguyen to dau tien la:
2 3 5 7 11 13 17 19 23 29
5. Bài 05
Viết chương trình C++ liệt kê tất cả các số nguyên tố có 5 chữ số.
Code mẫu:
/**
* Chuong trinh liet ke tat ca so nguyen to co 5 chu so.
*
*
*/
#include <iostream>
#include <cmath>
using namespace std;
/**
* check so nguyen to
*
*
* @param n: so nguyen duong
* @return 1: la so nguyen so,
* 0: khong la so nguyen to
*/
int isPrimeNumber(int n) {
// so nguyen n < 2 khong phai la so nguyen to
if (n < 2) {
return 0;
}
// check so nguyen to khi n >= 2
int i;
int squareRoot = (int) sqrt(n);
for (i = 2; i <= squareRoot; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
/**
* Ham main
*/
int main() {
int count = 0;
int i;
cout << "Liet ke tat ca cac so co 5 chu so:";
for (i = 10001; i < 99999; i+=2) {
if (isPrimeNumber(i)) {
printf("%d\n", i);
count++;
}
}
printf("Tong cac so nguyen to co 5 chu so la: %d", count);
}
Kết quả:
Liet ke tat ca cac so co 5 chu so:
10007
10009
10037
...
99971
99989
99991
Tong cac so nguyen to co 5 chu so la: 8363
Trên đây là một số bài tập C++ kinh điển mà eLib.VN tổng hợp được. Một bài có thể có nhiều hướng giải quyết. Bạn có thể chọn cách phù hợp. Chúc các bạn thành công!
Tham khảo thêm
- doc Bài tập C++ kinh điển
- doc Bài tập vòng lặp trong C++
- doc Bài tập mảng trong C++
- doc Bài tập chuỗi trong C++
- doc Bài tập sử dụng con trỏ trong C++
- doc Bài tập Struct trong C++
- zip Bài tập quản lý sinh viên trong C/C++
- docx Ngân hàng câu hỏi trắc nghiệm C++ có đáp án
514 lượt xem
Ngày:29/10/2020
Chia sẻ bởi:ngan