01/10/2018, 22:39

Giải phương trình bậc nhất ax + b = 0

Giải phương trình bậc nhất ax + b = 0 Tháng Năm 12, 2017 nguyenvanquan7826 TUT Bài tập tư duy lập trình 2 responses Đề bài: Giải phương trình bậc nhất ax + b = 0 (a khác 0) Với các hệ số a, b được nhập vào từ bàn phím. Để giải ...

Giải phương trình bậc nhất ax + b = 0

Đề bài: Giải phương trình bậc nhất ax + b = 0 (a khác 0) Với các hệ số a, b được nhập vào từ bàn phím.

Để giải bài này, các bạn nhớ lại kiến thức toán học của chúng ta đã học thời phổ thông.
Do a khác 0 nên ta luôn có nghiệm x = -b/a. Vậy thì dễ dàng rồi, công thức đã có, giờ chỉ cần code thôi.

/*
*	Giai Phuong trinh ax + b = 0
*/

#include <stdio.h>

int main() {
	float a, b;
	printf("Enter a and b: ");
	scanf("%f%f", &a, &b);

	if(a == 0) {
		printf("You must enter a <> 0 !
");
	} else {
		printf("Result: x = %.2f
", -b/a);
	}

	return 0;
}

Đơn giản vậy thôi. Tuy nhiên giờ chúng ta thử nâng cấp thêm 1 chút nữa là nếu cho phép nhập a = 0 thì sao?

Đề bài: Giải phương trình bậc nhất ax + b = 0 (a có thể bằng 0) Với các hệ số a, b được nhập vào từ bàn phím.

Như vậy chúng ta cần nhớ lại, nếu a = 0 thì phương trình trở thành b = 0. Nếu b = 0 thì phương trình trở thành 0 = 0, luôn đúng do vậy phương trình luôn đúng với mọi x. Nếu b khác 0, khi đó phương trình sẽ vô nghiệm. Vậy chỉ cần dùng if else kiểm tra các trường hợp thêm một chút là xong.

/*
*	Giai Phuong trinh ax + b = 0
*/

#include <stdio.h>

int main() {
	float a, b;
	printf("Enter a and b: ");
	scanf("%f%f", &a, &b);

	if(a == 0) {
		if(b == 0) {
			printf("True with all x
");
		} else {
			printf("Impossible equation (No result for x)
");
		}


	} else {
		printf("Result: x = %.2f
", -b/a);
	}

	return 0;
}
0