Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
1: Xác định bài toán
-Input: ba số nguyên a,b,c(a≠0)
-Output: Giải phương trình bậc hai \(ax^2+bx+c=0\)
2: Mô tả thuật toán
*Liệt kê:
-Bước 1: Nhập a,b,c(có kiểm tra điều kiện a≠0)
-Bước 2: Δ←\(b^2-4ac\)
-Bước 3: Nếu Δ<0 thì phương trình vô nghiệm
-Bước 4: Nếu Δ=0 thì phương trình có nghiệm kép là \(-\frac{b}{2a}\)
-Bước 5: Nếu Δ>0 thì phương trình có hai nghiệm phân biệt là \(\left\{{}\begin{matrix}\frac{-b-\sqrt{\Delta}}{2a}\\\frac{-b+\sqrt{\Delta}}{2a}\end{matrix}\right.\)
-Bước 6: Kết thúc
Thuật toán giải phương trình bậc nhất:
Bước 1: Nhập a, b;
Bước 2: Nếu a = 0, B≠ 0 thì thông báo vô nghiệm rồi kết thúc;
Bước 3: Nếu a = 0, B = 0 thì thông báo phương trình nghiệm đúng với mọi giá trị rồi kết thúc;
Bước 4: Nếu a ≠ 0 thì x = -b/a thông báo phương trinh có nghiệm duy nhất là x rồi kết thúc
#include <bits/stdc++.h>
using namespace std;
double a,b,c,delta,x1,x2;
int main()
{
//freopen("PTB2.inp","r",stdin);
//freopen("PTB2.out","w",stdout);
cin>>a>>b>>c;
delta=(b*b-4*a*c);
if (delta<0) cout<<"-1";
if (delta==0) cout<<fixed<<setprecision(5)<<(-b/(2*a));
if (delta>0)
{
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
cout<<fixed<<setprecision(5)<<x1<<" "<<fixed<<setprecision(5)<<x2;
}
return 0;
}
Thuật toán để giải một bài toán là:
+ Một dãy hữu hạn các thao tác (tính dừng)
+ Các thao tác được tiến hành theo một trình tự xác định (tính xác định)
+ Sau khi thực hiện xong dãy các thao tác đó ta nhận được Output của bài toán (tính đúng đắn)
+ Ví dụ: Cho bài toán Tìm nghiệm của phương trình bậc 2: ax2 + bx + c = 0 (a≠0)?
+ Xác định bài toán
Input: Các số thực a, b, c
Output: Các số thực x thỏa mãn ax2 + bx + c = 0 (a≠0)
+ Thuật toán:
Bước 1: Nhập a, b, c (a≠0)
Bước 2: Tính Δ = b2 – 4ac
Bước 3: Nếu Δ>0 thì phương trình có 2 nghiệm là
Bước 4: Nếu Δ = 0 thì phương trình có nghiệm kép
Thuật toán có 5 tính chất bao gồm: tính chính xác, tính khách quan, tính phổ dụng, tính rõ ràng, tính kết thúc. Ban đầu, một thuật toáncần có "tính chính xác" vô cùng cao. Nó cũng là yếu tố quan trọng nhất, mang tính chất khả dụng và khách quan của một thuật toán.
Bài 1:
Bước 1: Nhập hai số thực a, b
Bước 2. Nếu a = 0
Bước 2.1. Nếu b ≠0 thì thông báo phương trình vô định, rồi kết thúc;
Bước 2.2. Nếu b = 0 thì gán x <- 0 rồi chuyển sang bước 4;
Bước 3: x <- -b/a
Bước 4. Đưa ra nghiệm X, rồi kết thúc.
Bước 1: Nhập a,b
Bước 2: Nếu a=0 thì
nếu b=0 thì phương trình vô số nghiệm
nếu b<>0 thì phương trình vô nghiệm
Nếu a<>0 thì x=-b/a;
Bước 3: kết thúc
a)
Bước 1: Nhập a,b
Bước 2: Nếu b=0 thì viết phương trình có vô số nghiệm
Không thì viết phương trình vô nghiệm
Bước 3: Nếu a=0 thì quay lại bước 2
Không thì viết phương trình có nghiệm là x=-b/a
Bước 4: Kết thúc
b)
Bước 1: Nhập a,b,c
Bước 2: \(\Delta=b^2-4ac\)
Bước 3: Nếu \(\Delta>0\) thì viết phương trình có hai nghiệm phân biệt là: \(\frac{\left(-b-\sqrt{\Delta}\right)}{2\cdot a}\) và \(\frac{-b+\sqrt{\Delta}}{2\cdot a}\)
Bước 4: Nếu \(\Delta=0\) thì viết phương trình có nghiệm kép là: \(-\frac{b}{2\cdot a}\)
Bước 5: Nếu \(\Delta< 0\) thì viết phương trình vô nghiệm
Bước 6: Kết thúc
VD:
if (a*sqr(x))+(b*x)+c=0 then write({a ,b , c hoặc x (biến cần tìm)});
Đối với bài này mình nghĩ đề bài phải cho nhập a,b,c