#Xác định bài toán
- Input: Các hệ số a,b,c của phương trình
- Ouput: Nghiệm của phương trình
#Ý tưởng
- Ta sẽ dùng câu lệnh if then để giải quyết bài toán này.
- Đầu tiên chúng ta sẽ tính delta của phương trình.
- Nếu delta < 0 nghĩa là phương trình vô nghiệm và chương
trình sẽ kết thúc.
- Nếu delta = 0 nghĩa là phương trình có nghiệm kép.
- Cuối cùng, nếu hai điều kiện kia không xảy ra nghĩa là
delta > 0, chúng ta sẽ xuất ra hai nghiệm.
#Thuật toán
1.
Nhập lần lượt ba hệ số
a, b. c.
2.
Tính delta := b*b -
(4*a*c)
- Nếu delta < 0 thì kết thúc chương trình, và thông
báo phương trình vô nghiệm.
- Nếu delta = 0 thì xuất ra màn hình giá trị nghiệm kép, x:= (-b-(sqrt (delta) )/(2*a).
- Nếu delta > 0 thì xuất ra màn hình nghiệm :
x1:= (-b-sqrt(delta))/(2*a); x2:=
(-b+sqrt(delta))/(2*a);
#Chương trình
program tinh_phuong_trinh_bac_hai; uses crt; var a,b,c,delta :integer; x1,x2:real; begin clrscr; writeln('Moi nhap he so a: '); readln(a); writeln('Moi nhap he so b: '); readln(b); writeln('Moi nhap he so c: '); readln(c); delta := b*b - (4*a*c); if delta < 0 then writeln(' phuong trinh vo nghiem '); if delta = 0 then begin x1:= (-b-( sqrt (delta) ))/(2*a); writeln(' He phuong trinh co nghiem kep duy nhat la x1= ',x1:6:2 ) end; if delta > 0 then begin x1:= (-b-sqrt(delta))/(2*a); x2:= (-b+sqrt(delta))/(2*a); write (' He phuong trinh co hai nghiem phan biet, x1= ',x1:6:2 ,' x2= ',x2:6:2); end; readln; end.
nếu nhập hệ số a,b,c từ tệp input.txt và lưu kq vào tệp output.txt thì làm như thế nào ạ
ReplyDeletenếu nhập hệ số a,b,c từ tệp input.txt và lưu kq vào tệp output.txt thì làm như thế nào ạ
ReplyDeleteTrong sách tin học 11 có hướng dẫn dùng kiểu tệp đó bạn
DeleteĐể đọc dữ liệu từ tệp input.txt gồm 3 số viết trên một hàng, cách nhau một khoảng trắng
var f1,f2:text;
assign(f1,'input.txt');
reset(f1);
read(f1,a,b,c);
close(f1);
xuất kết quả, dĩ nhiên là bạn phải tính được x1 và x2 trước nhé
assign(f2,'output.txt');
rewrite(f2);
writeln(f2,x1);
writeln(f2,x2);
close(f2);