Cho chương trình sau :
( Tính chu vi và diện tích tam giác biết 3 cạnh a,b,c với chiều cao h ứng với cạnh a nhập từ bàn phím )
Uses crt;
Var a,b,c,h,chuvi,dientich : integer;
Begin
clrscr;
Writeln('Nhap canh a= '); Readln(a);
Writeln('Nhap canh b= '); Readln(b);
Writeln('Nhap canh c= '); Readln(c);
chuvi := a+b+c;
dientich := a*h/2
Writeln('Chu vi hinh tam giac la = ', chuvi);
Write('Dien tich hinh tam giac la = ', dientich);
Readln;
End.
Giải thích lý do vì sao chương trình không chạy được.
var a,b,c,P,S:real;
begin
write('nhap a: ');readln(a);
write('nhap b: ');readln(b);
write('nhap c: ');readln(c);
P:=a+b+c;
S:=a*a/2;
writeln('chu vi: ',P);
write('dien tich: ',S);
readln
end.
Vì là số đo cạnh tam giác nên bạn nên khai báo bằng kiểu dữ liệu real (số thực) thay vì integer (số nguyên).Phần giá trị biến S, vì a ứng với h nên \(\frac{ah}{2}=\frac{aa}{2}\)Xét tổng quan về nội dung cả hai chương trình này đều chưa đủ. Vì a=h => tam giác cần tìm diện tích và chu vi là tam giác vuông => phải thỏa mãn aa = bb + cc hoặc bb=aa+cc hoặc cc=aa+bb (định lí pitago)Nhưng trước hết, phải thỏa mãn bất đẳng thức tam giác: (dài lắm........ko viết đâu). Nếu bạn chưa học câu lệnh điều kiện thì chắc là 2 chương trình này đã đủ nội dung.cái thứ nhất, mình ko nhớ hoăc ko biết clrscr là cái j;
cái thứ 2, ở dientich và chuvi, cậu phải để kiểu dẽ liệu là real, vì nó có thể ko là số nguyên hoặc có thể nằm ngoài tầm của integer
cái thứ 3, câu lẹnh ở tren readln phải là
writeln('dientich hinh tam giac la ', dientich:0:2);
ở chỗ :0:2 nếu ko hiểu thì hỏi nhá, thật ra mình xem sơ qua thì tấy từng đó sai
What!!!! Có cho số đo chiều cao mà ko nói !!!!!!!
Chỗ câu lệnh đó thiếu dấu " ; "
dientich := a*h/2
Và bạn chưa yêu cầu nhập h
thieu program
thieu ;
thieu cau lenh nhap chieu cao h
Vì bạn chưa nhập đầy đủ thông tin cho bài toán.