PDA

View Full Version : Pro giúp iem !!!!!!!!!!!!



nvd91
02-12-2009, 22:09
Đề bài : Giải và biện luận phương trình ax + b = 0
Em làm như sau

program bienluan;
uses crt;
var x, a, b : real;
begin
clrscr;
writeln(' hay nhap gia tri a '); readln(a);
writeln(' hay nhap gia tri b '); readln(b);
if a:=0 and b<>0 then writeln(' phuong trinh vo nghiem');
x:= -b/a;
if a<>0 then writeln(' phuong trinh co 1 nghiem la: ',x:8:3);
readln
end.
Em kiểm tra lại phương trình thì nó báo lỗi ở dòng : if a:=0 and b<>0 then writeln(' phuong trinh vo nghiem'); nó kêu biểu thức phía trước phải là kiểu lôgic :((.. các bác giúp em mới

luan.daika
02-12-2009, 22:36
var a,b: integer;
x:real;
begin
writeln('nhap vao a,b');readln(a,b);
if a=0 then writeln(' phuong trinh co vo so nghiem ');
if a>0 then x:=-b/a writeln(' phuong trinh co 1 nghiem la',x:2:2);
if a<0 then x:=b/a writeln(' phuong trinh co 1 nghiem la',x:2:2);
readln;
end.

topvip9x
03-12-2009, 11:56
Trong If <Bieu thuc logic> Then <Cau Lenh>;

<bieu thuc logic> chỉ là các phép toán =,<,> chứ ko phải phép gán... bạn chỉ cần sửa "a:=0" thành "a=0" là dc mà

nhokdragon94
03-12-2009, 12:40
Bài của bạn có 3 lỗi sai

Lỗi thứ nhất:Cái chỗ đó bạn lỗi logic,bạn nên nhớ rằng a:=0 tức là gán giá trị a=0;Còn ngay chỗ đó là so sánh: "nếu a=0 và b<>0 thì...". So sánh thì không có dấu 2 chấm ( chỉ viết là If a=0 chứ không viết a:=0(cái này có topvip chỉ ra rùi )
Lỗi thứ nhì: ngay chỗ dòng đó: giữa các biểu thức logic(từ 2 biểu thứ trở lên) thì phải có dáu ngoặc đơn: If (biểu thức logic1) and(hoặc or) (biểu thức logic2)... then
------> sửa dòng đó lại là: If (a=0) and (b<>0) then writeln('ptrinh vo nghiem');
lỗi thứ 3(cái này thiếu chứ hok phải sai ^^!) :bạn thiếu trường hợp phương trình vô số nghiệm.
Thêm vào trong bài 1 đoạn If (a=0) and (b=0) then writeln('phương trình co vo so nghiem');


Còn bài của pác luan.daika==> pác làm sai ^^!(thông kảm nói thẳng)
Ph/trình: a*x+b=0
a<>0 thì a:=-b/a--> không có chia ra 2 trường hợp như pác(a>0 và a<0)
không tin pác thử thì biết: a=-5;b=10 ----> -5*x+10=0 ---> x=2
trong khi của pác: a<0 --> x:=b/a=10/(-5)=-2 --> 2 kết quả khác nhau hoàn toàn =))
Còn nữa pác cũng thiếu trường hợp phương trình có vô số nghiệm =))

lehang_gb1
03-12-2009, 20:15
Bài đơn fiangr mà bạn làm sai nhiều rồi
If (a=0) and(b=0) then write(PT co vo so nghiem)
else if (a=0) and (b<>0) then write('PT vo nghiem')
else if a<>0 then write('PT co nghiem duy nhat:',-b/a:5:2);

nhokdragon94
03-12-2009, 22:05
Cóa thể sửa như vầy nữa nè:
If a<>0 then writeln('p trinh co 1 nghiem: ',-b/a:5:2)
else begin
If b=0 then writeln('vo so nghiem')
else writeln('vo nghiem');
end;
readln;
end.

nvd91
05-12-2009, 08:47
cảm ơn các bác nhiều nhá.. Cảm ơn DDTH

nhokdragon94
06-12-2009, 11:08
hi hi hok có j` nếu hok hỉu j` thì pác cứ post lên cho mọi người cùng tìm hiểu nház