Viết phương trình con nhập vào độ dài các cạnh của tam giác ABC

Bài tập và thực hành 7 trang 105 SGK Tin học 11: Bài tập và thực hành 7. Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi. diện tích, kiểm tra các tính đều, cân, vuông cỦa tam giác được trình bày dưới đây:

1. Mục đích, yêu cầu

– Nâng cao kĩ năng viết, sử dụng chương trình con.

– Biết cách viết một chương trình có cấu trúc để giãi một bài toán trên máy tính.

2.  Nội dung

a) Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi. diện tích, kiểm tra các tính đều, cân, vuông của tam giác được trình bày dưới đây:

Giả thiết tam giác được xác định bời tọa độ của ba đỉnh. Ta sử dụng kiểu bản ghi để mô tả một tam giác:

type

Diem = record

X, y: real;

end;

Tamgiac= record

A, B, c:Diem;

end;

Ta xây dựng thù tục và hàm:

Thủ tục nhận dữ liệu vào là biến mô tả tam giác R và đầu ra là độ dài của ba cạnh a, b, c:

Procedure Daicanh(var R: Tamgiac; var a, b, C:real);

Hàm tính chu vỉ của tam giác R:

function Chuvi(var R: Tamgiac): real;

Hàm tính diện tích của tam giác R:

function Dientich(var Rrtamgiac): real;

Thủ tục nhận đầu vào là biển mô tả tam giác R và đầu ra là tính chất cùủa tam giác (Deu hay Can hay Vuong)-,

procedure Tinhchat(var R:Tamgiac;var Deu, Can, Vuong: Boolean);

Thủ tục hiển thị tọa độ ba đỉnh tam giác lên màn hình:

procedure Hienthi(var R: tamgiac);

Hàm tính khoảng cách giữa hai điểm p, Q:

function Kh_cach(P, Q: Diem): Real;

b) Tìm hiểu chương trình nhập vào tọa độ ba đỉnh một tam giác và sử dụng các hàm, thủ tục được xây dựng dưới đây để khảo sát các tính chất của tam giác.

program tam_giac;

uses crt

const ep:= 1.0E-6;

type

Diem = record

X, y: real;

end;

Tamgiac= record

A, B, C: Diem;

end;

var T: Tamgiac;

Dou, can, vuong: Boolean;

function Kh_cach(P(Q: Diem): Real; begin

Kh_cach: sqrt((P.x-Q.x)*(Pếx-Q.x)+(P.y-Q.y)*(P.y-Q.y));

end ;

Procedure Daicanh(var R: Tamgiac; var a, b, c: real);

begin

a:= Kh_cach(R.B, R.C),

b:= Kh_cach(R.A, R.C);

c:= Kh_cach(R.A,R.B) ;

end;

functio-n Chuvi (var R: Tamgiac) : real;

var a, b, c: real;

begin

Daicanh(R, a, b, c) ;

ChuVi:= a+b+c;

end;

Quảng cáo

functioin Dientich(var R: tamgiac) : real;

var a, b, c, p: real;

begin

Daicanh(R/ a, b, c) ;

p:= (a+b+c)/2;

Dienntich: = sqrt (p* (p-a) * (p-b) * (p-c))

end;

procedure Hienthi (var R: tamgiac) ;

begin

writeln (‘Toa do 3 dinh cua tam giac la:’);

writeln(‘Dinh A(‘,R.A.x:0:3,’,’,R.A.y:0:3,’)’);

writeln(‘Dinh B(‘,R.B.x:0:3,’,R.B.y:0:3, ‘)’);

writeln(‘Dinh C (‘,R.C.x:0:3,’,’,R.C.y:0:3,’)’);

end;

procedure Tinhchat(var R:Tamgiac; var Deu, Can, Vuong: Boolean )

var a b, c: real;

begin

Deu:= false; Can:= false; Vuong:= false;

Daicanh(R, a, b, c);

if (abs(a-b)<eps) and (abs(a-c)<eps) then

begin

Deu:= true;

Can:= true;

else

if (abs (a-b) <eps) or tabs (a-c) <eps) or (abs (b-r) <eps)

then Can:= true;

if (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)ceps ) or (abs(b*b+c*c-a*a)<eps) then Vuong:= true;

end;

Begin

clrscr;

writeln(‘Nhap tam giac:’);

write(‘Toa do dinh A:’); readln(T.A.x, T.A.y) ;

write(‘Toa do dinh B:’); readln(T.B.x, T.B.y);

write(‘Toa do dinh c:■); readln(T.c.x, T.C.y) ;

writeln(‘ == = = = = = = ===== ================ =====’) ;

Hienthi(T);

writeln(‘Dien tich:’, dientich(T):9:3);

writeln ( ‘ Chu vi : ‘ , chuvi (T) : 9 : 3);

Tinhchater, Deu, Can, Vuong);

writeln(‘Tam giac co tinh chat:’);

If Deu then writeln(‘la tam giac deu’)

else if Can then writeln(‘ la tam giac can ‘);

if Vuong then writeln(‘la tam giac vuong’);

readln;

End.

c) Viết chương trình sử dụng các hàm và thủ tục xây dựng ở trên để giải bài toán:

Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:

– Dòng đầu tiên chứa số N;

– N dòng tiếp theo, mỗi dòng chứa sáu số thực xA, yA, xB, yB, xC, yC là tọa độ ba đỉnh A(xA, yA), B(xB,yB), C(xC, yC) của tam giác ABC.

Hãy nhập dữ liệu từ tệp đã cho và trong số N tam giác đó, đưa ra tệp TAMGlAC.OUT gồm ba dòng:

Dòng đầu tiên là số lượng tam giác đều; Dòng thứ hai là số lượng tam giác cân (nhưng không là đều);

Dòng thứ ba là số lượng tam giác vuông

Trong lập trình cấu trúc lặp dùng để làm gì? (Tin học - Lớp 8)

1 trả lời

Tác dụng của sơ đồ tư duy là gì (Tin học - Lớp 6)

3 trả lời

Các lệnh dùng để định dạng văn bản (Tin học - Lớp 6)

1 trả lời

program tamgiac;
uses crt;
var a, b, c, cv, dt, p : real;

BEGIN

    write('Hay nhap 3 canh tam giac: ');    readln(a,b,c);    p:=(a+b+c)/2;    cv:=p*2;    dt:=sqrt(p*(p-a)*(p-b)*(p-c));    writeln('Chu vi: ',cv:6:2);    writeln('Dien tich: ',dt:6:2);    readln

END.

ĐỀ: Viết thuật toán, chương trình.

- nhập vào 3 cạnh của tam giác ( VD: a,b,c)

-Tính chu vi và diện tích của tam giác đó.

Program tam_giac_can;Uses crt;Var a,b,c:real;Begin     clrscr;     write('nhap do dai canh AB :');     readln(a);     write('nhap do dai canh AC :');     readln(b);     write('nhap do dai canh BC :');     readln(c);     if (AB=AC) then         writeln(' tam giac ABC la tam giac can tai A')      else          writeln('tam giac ABC khong phai la tam giac can tai A');      readln;

End.

uses crt;var a,b,c,cv:longint; p,s:real;begin clrscr;   write('Nhap do dai canh thu nhat: ');readln(a);   write('Nhap do dai canh thu hai: ');readln(b);   write('Nhap do dai canh thu ba: ');readln(c);   cv:=a+b+c;   writeln('Chu vi: ',cv);   p:=cv/2;   s:=sqrt(p*(p-a)*(p-b)*(p-c));   writeln('Dien tich: ',s:0:2);   writeln('Duong cao thu nhat: ',2*(s/a):0:2);   writeln('Duong cao thu hai: ',2*(s/b):0:2);   writeln('Duong cao thu ba: ',2*(s/c):0:2);   if (a=b)or(b=c)or(a=c) then writeln('Day la tam giac can');    if (sqr(a)=sqr(b)+sqr(c))or(sqr(b)=sqr(a)+sqr(c))or(sqr(c)=sqr(a)+sqr(b)) then writeln('Day la tam giac vuong');  readln

end.