Đề 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 !