Đề Bài : Viết chương trình nhập ba số dương bất kỳ, kiểm tra ba số vừa nhập có phải là ba cạnh của tam giác không? Nếu phải thì tính chu vi và diện tích của tam giác đó.
Kiểm tra ba số vừa nhập có phải là cạnh của tam giác hay không, so sánh lần lượt (a+b)>c và(b+c)>a và(c+a)>a nếu đụng thì ba số a, b, c là ba cạnh của một tam giác ngược lại ba số a, b, c không phải ba cạnh của một tam giác.
Bài giải :
Mã:
Program Kiem_tra_tam_giac;
Uses crt;
Var a,b,c,cv,s,p: real;
BEGIN
Clrscr;
Writeln(‘nhap so thu nhat’); readln(a);
Writeln(‘nhap so thu hai’); readln(b);
Writeln(‘nhap so thu ba’); readln(c);
If(a+b>c) And(a+c>b) And(b+c>a) then
Begin
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
Else Writeln(a,’, ‘, b,’, ‘, c, ‘ khong phai la ba canh cua tam giac');
Readln;
End.
Hướng dẫn chi tiết :
Đầu tiên, chúng ta cần khai báo các thông tin cơ bản và yêu cầu nhập 3 số cần kiểm tra. Đặt các biến này lần lượt là a, b, c tương ứng với 3 số, cv và s là chu vi và diện tích nếu 3 số là 3 cạnh của tam giác :
Mã:
Program Kiem_tra_tam_giac; {Tên chương trình}
Uses crt;
Var a,b,c,cv,s,p: real; {Khai báo các biến }
BEGIN
Clrscr;
{Nhập các giá trị a,b,c để kiểm tra}
Writeln(‘nhap so thu nhat’); readln(a);
Writeln(‘nhap so thu hai’); readln(b);
Writeln(‘nhap so thu ba’); readln(c);
If(a+b>c) And(a+c>b) And(b+c>a) then
Sử dụng if else kiểm tra điều kiện (a+b)>c và(b+c)>a và(c+a)>a, nếu đúng thì dùng toán tử để thực hiện tính chu vi và diện tích của tam giác với 3 cạnh đó. Xong in kết quả phép tính ra màn hình :
Mã:
Begin
{Tính chu vi và diện tích và in kết quả ra màn hình }
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
Ngược lại, không phải là 3 cạnh của 1 tam giác thì sử dụng else để in ra thông báo. Cơ cấu chi đơn giản như vậy thôi :
Mã:
Else Writeln(a,’, ‘, b,’, ‘, c, ‘ khong phai la ba canh cua tam giac');
Readln;
End.
Cách 2 :
Thật ra cũng không phải là cách khác, mà chỉ là mở rộng ra xét cả trường hợp tam giác cân hay đều thôi. Còn lại vẫn tương tự như bên trên.
Mã:
uses crt;
var a,b,c: real;
begin
clrscr;
write('Nhap 3 so a, b, c: ');readln(a,b,c);
if (a+b>c)and(a+c>b)and(b+c>a) then
begin
Begin
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
if (a=b)or(b=c)or(a=c) then
begin
if(a=b)and(b=c) then
write(' deu')
else
write(' can');
end;
if (a*a=b*b+c*c)or(b*b=a*a+c*c)or(c*c=a*a+b*b) then
write(' vuong');
end
else
write('3 canh vua nhap ko phai la tam giac');
readln;
end.
Chúc các bạn thành công !
Kiểm tra ba số vừa nhập có phải là cạnh của tam giác hay không, so sánh lần lượt (a+b)>c và(b+c)>a và(c+a)>a nếu đụng thì ba số a, b, c là ba cạnh của một tam giác ngược lại ba số a, b, c không phải ba cạnh của một tam giác.
Bài giải :
Mã:
Program Kiem_tra_tam_giac;
Uses crt;
Var a,b,c,cv,s,p: real;
BEGIN
Clrscr;
Writeln(‘nhap so thu nhat’); readln(a);
Writeln(‘nhap so thu hai’); readln(b);
Writeln(‘nhap so thu ba’); readln(c);
If(a+b>c) And(a+c>b) And(b+c>a) then
Begin
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
Else Writeln(a,’, ‘, b,’, ‘, c, ‘ khong phai la ba canh cua tam giac');
Readln;
End.
Hướng dẫn chi tiết :
Đầu tiên, chúng ta cần khai báo các thông tin cơ bản và yêu cầu nhập 3 số cần kiểm tra. Đặt các biến này lần lượt là a, b, c tương ứng với 3 số, cv và s là chu vi và diện tích nếu 3 số là 3 cạnh của tam giác :
Mã:
Program Kiem_tra_tam_giac; {Tên chương trình}
Uses crt;
Var a,b,c,cv,s,p: real; {Khai báo các biến }
BEGIN
Clrscr;
{Nhập các giá trị a,b,c để kiểm tra}
Writeln(‘nhap so thu nhat’); readln(a);
Writeln(‘nhap so thu hai’); readln(b);
Writeln(‘nhap so thu ba’); readln(c);
If(a+b>c) And(a+c>b) And(b+c>a) then
Sử dụng if else kiểm tra điều kiện (a+b)>c và(b+c)>a và(c+a)>a, nếu đúng thì dùng toán tử để thực hiện tính chu vi và diện tích của tam giác với 3 cạnh đó. Xong in kết quả phép tính ra màn hình :
Mã:
Begin
{Tính chu vi và diện tích và in kết quả ra màn hình }
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
Ngược lại, không phải là 3 cạnh của 1 tam giác thì sử dụng else để in ra thông báo. Cơ cấu chi đơn giản như vậy thôi :
Mã:
Else Writeln(a,’, ‘, b,’, ‘, c, ‘ khong phai la ba canh cua tam giac');
Readln;
End.
Cách 2 :
Thật ra cũng không phải là cách khác, mà chỉ là mở rộng ra xét cả trường hợp tam giác cân hay đều thôi. Còn lại vẫn tương tự như bên trên.
Mã:
uses crt;
var a,b,c: real;
begin
clrscr;
write('Nhap 3 so a, b, c: ');readln(a,b,c);
if (a+b>c)and(a+c>b)and(b+c>a) then
begin
Begin
Cv:=a+b+c; p:=c/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ba so vua nhap la ba canh cua tam giac’);
Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2);
End
if (a=b)or(b=c)or(a=c) then
begin
if(a=b)and(b=c) then
write(' deu')
else
write(' can');
end;
if (a*a=b*b+c*c)or(b*b=a*a+c*c)or(c*c=a*a+b*b) then
write(' vuong');
end
else
write('3 canh vua nhap ko phai la tam giac');
readln;
end.
Chúc các bạn thành công !