Bài tập chương trình con Đề bài: Lập chương trình nhập vào tọa độ 3 đỉnh AxA,yA; BxB,yB; CxC,yC của tam giác.. Tính chu vi, diện tích của tam giác 2.. Kiểm tra tính chất và cho biết đ
Trang 1Tiết 46
Trường THPT Lê Quý Đôn
Trang 2Bài tập chương trình con
Đề bài: Lập chương trình nhập vào tọa độ 3 đỉnh A(xA,yA); B(xB,yB);
C(xC,yC) của tam giác.
1 Tính chu vi, diện tích của tam giác
2 Kiểm tra tính chất và cho biết đó là tam giác vuông, cân, đều
hay thường
Đề bài: Lập chương trình nhập vào tọa độ 3 đỉnh A(xA,yA); B(xB,yB);
C(xC,yC) của tam giác.
1 Tính chu vi, diện tích của tam giác
2 Kiểm tra tính chất và cho biết đó là tam giác vuông, cân, đều
hay thường
Yêu cầu:
Tìm hiểu đề bài và đề xuất thuật toán
Từ thuật toán đã đề xuất ở trên, hãy tổ chức phân
chia công việc cho các tổ dưới dạng các chương trình con, sau đó ghép lại thành chương trình chính hoàn chỉnh
Trang 3yA
xA
B
yB
xB
C
yC
xC
1 Tìm hiểu đề bài và đề xuất thuật toán
* Tính chu vi, diện tích
B1 Tính độ dài cạnh BC( a ),AC( b ),AB( c )
2 2
2 2
2 2
) (
) (
) (
) (
) (
) (
yb ya
xb xa
c
yc ya
xc xa
b
yc yb
xc xb
a
− +
−
=
− +
−
=
− +
−
=
B2 Tính chu vi, diện tích
) )(
)(
( /
) (
c p b p a p p S
CV P
c b a CV
−
−
−
=
=
+ +
=
Đều: Ba cạnh bằng nhau;
Cân: Hai trong ba cạnh bằng nhau;
Thường: Không phải các tính chất trên.
* Kiểm tra tính chất tam giác
b a
c
O
Trang 42 Tổ chức thực hiện theo nhóm
* Tổ 1 : Viết chương trình con dùng hàm tính độ dài của cạnh
* Tổ 2 : Viết chương trình con dùng thủ tục tính chu vim diện tích
* Tổ 3 : Viết chương trình con dùng thủ tục kiểm tra tính chất của tam giác
Procedure tinhchat(a,b,c :real ; Var Deu,vuong,can: boolean);
Procedure CV_S( a,b,c :real ; Var CV,S : real);
Function Daicanh( x1,y1,x2,y2: real ):real;
Trang 5Function daicanh (x1,y1,x2,y2:real):real;
Begin
daicanh := sqrt ( (x1-x2)*(x1-x2) +
(y1-y2)*(y1-y2) )
end;
Procedure CV_S (a,b,c : real; Var CV,S :real);
Var p: real;
Begin
CV :=(a+b+c);
P := CV/2;
S :=sqrt(p*(p-a)*(p-b)*(p-c));
end;
Procedure Tinh_chat(a,b,c : real; Var
deu,can,vuong :boolean); Begin
Deu:=False; Can:=false; Vuong:= False;
IF (ABS(a-b)<eps) and (ABS(a-c)<eps) then Deu:=True
Esle
IF (ABS(a-b)<eps) OR (ABS(a-c<eps) OR (ABS(b-c) <eps) Then Can:= True;
IF (ABS(a*a+b*b-c*c)<eps)
OR (ABS(a*a+c*c-b*b) < eps)
OR (ABS(b*b+c*c-a-a)< eps) Then
Vuong:=True;
End;
Blaise Pascal – Nhà toán học và triết học người Pháp Ai thế nhỉ?
Trang 6Ghép nối chương trình
Program Tamgiac;
Uses crt;
cosnt eps = 0.000001;
Var
xa,ya,xb,yb,xc,yc,a,b,c,cv,dt:real;
D,Can,V : Boolean;
{ -}
CTC tinh chieu dai canh
CTC tinh chu vi, dien tich
CTC kiem tra tinh chat
{ -}
BEGIN
write(‘ Nhap vao toa do diem A,B,C ‘);
readln(xa,ya,xb,yb,xc,yc);
a:= daicanh (xb,yb,xc,yc);
b:= daicanh (xa,ya,xc,yc);
c:= daicanh (xa,ya,xb,yb);
Function daicanh (x1,y1,x2,y2:real):real;
Begin daicanh := sqrt ( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ) end;
Procedure CV_S (a,b,c : real; Var CV,S :real);
Var p: real;
Begin
CV :=(a+b+c);
P := CV/2;
S :=sqrt(p*(p-a)*(p-b)*(p-c));
end;
Procedure Tinh_chat(a,b,c : real; Var
deu,can,vuong :boolean); Begin
Deu:=False; Can:=false; Vuong:= False;
IF (ABS(a-b)<eps) and (ABS(a-c)<eps) then Deu:=True
Esle
IF (ABS(a-b)<eps) OR (ABS(a-c<eps) OR (ABS(b-c) <eps) Then Can:= True;
IF (ABS(a*a+b*b-c*c)<eps)
OR (ABS(a*a+c*c-b*b) < eps)
OR (ABS(b*b+c*c-a-a)< eps) Then
Vuong:=True;
End;
CV_S (a,b,c,cv,dt) Writeln(‘ Chu vi tam giac = ‘,Cv:7:2); Writeln(‘Dien tich tam giac =‘,DT:7:2); Tinh_ chat (a,b,c,D,Can,V);
IF D then write(‘ Day la tam giac deu’) Else
IF Can then write(‘ Day la tam giac can’) Else
IF V then write(‘ Day tam giac vuong’) Else write(‘Tam giac thuong’);
Readln;
END.
Trang 7Program Tamgiac;
Uses crt;
cosnt eps = 0.000001;
Var xa,ya,xb,yb,xc,yc,a,b,c,cv,dt:real;
D,C,V : Boolean;
Function daicanh (x1,y1,x2,y2:real):real;
Begin
daicanh := sqrt ( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) )
end;
Procedure CV_S (a,b,c : real; Var CV,S :real);
Var p: real;
Begin
CV :=(a+b+c); P :=CV/2; S :=sqrt(p*(p-a)*(p-b)*(p-c));
end;
Procedure Tinh_chat (a,b,c : real;
Var deu,can,vuong:boolean);
Begin
Deu:=False; Can:=false; Vuong:= False;
IF (ABS(a-b)<eps) and (ABS(a-c)<eps) then
Deu:=True
Esle IF (ABS(a-b)<eps) OR (ABS(a-c<eps) OR
IF (ABS(a*a+b*b-c*c)<eps)
OR (ABS(a*a+c*c-b*b) <eps)
OR (ABS(b*b+c*c-a-a)< eps) Then
Vuong:=True;
End;
BEGIN
write(‘ Nhap vao toa do diem A,B,C ‘); readln(xa,ya,xb,yb,xc,yc);
a:= daicanh (xb,yb,xc,yc);
b:= daicanh (xa,ya,xc,yc);
c:= daicanh (xa,ya,xb,yb);
CV_S (a,b,c,cv,dt) ; Writeln(‘ Chu vi tam giac = ‘,Cv:7:2);
Writeln(‘ Dien tich tam giac = ‘,DT:7:2);
Tinh_ chat (a,b,c,D,C,V);
IF D then write(‘ Day la tam giac deu’) Else IF C then write(‘ Day la tam giac can’) Else IF V then write(‘ Day tam giac vuong’) Else write(‘Tam giac thuong’);
Readln;
Chương trình hoàn chỉnh