Bài tập C# cơ bản
170 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.
/**
* 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;
printf("Nhap he so bac 2, a = ");
scanf("%f", &a);
printf("Nhap he so bac 1, b = ");
scanf("%f", &b);
printf("Nhap so hang tu do, c = ");
scanf("%f", &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 (BSCNN) của hai số a và b.
Gợi ý:
- Sử dụng giải thuật Euclid
Code mẫu:
/**
* 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;
printf("Nhap so nguyen duong a = ");
scanf("%d", &a);
printf("Nhap so nguyen duong b = ");
scanf("%d", &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("USCLN cua %d va %d la: %d", a, b, BSCNN(a, b));
}
Kết quả:
Nhap so nguyen duong a = 3
Nhap so nguyen duong b = 4
USCLN cua 3 va 4 la: 1
USCLN cua 3 va 4 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:
/**
* 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 i, n;
printf("Nhap n = ");
scanf("%d", &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:
/**
* 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;
printf("Nhap n = ");
scanf("%d", &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:
/**
* 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;
printf("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# cơ bả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 kiểu dữ liệu trong C#
- doc Bài tập lệnh IF, ELSE, SWITCH trong C#
- doc Bài tập vòng lặp FOR, WHILE, DO...WHILE trong C#
- doc Bài tập mảng một chiều trong C#
- doc Bài tập String trong C#
- doc Bài tập hàm trong C#
- doc Bài tập struct trong C#
- doc Bài tập hướng đối tượng trong C#
- doc Bài tập đọc ghi file trong C#
170 lượt xem
Ngày:02/11/2020
Chia sẻ bởi:Nhi