Bài tập chương trình con Đề bài: Lập chương trình nhập vào toạ độ 3 đỉnh AxA,yA ; BxB,yB ; CxC,yC của một tam giác.. Kiểm tra tính chất và cho biết đây là tam giác vuông, cân, đều, hay t
Trang 1Bµi 21
Trang 2Bài tập chương trình con
Đề bài: Lập chương trình nhập vào toạ độ 3 đỉnh A(xA,yA) ; B(xB,yB) ; C(xC,yC) của một tam giác
1 Tính chu vi, diện tích;
2 Kiểm tra tính chất và cho biết đây là tam giác vuông, cân, đều, hay thường
Đề bài: Lập chương trình nhập vào toạ độ 3 đỉnh A(xA,yA) ; B(xB,yB) ; C(xC,yC) của một tam giác
1 Tính chu vi, diện tích;
2 Kiểm tra tính chất và cho biết đây 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 3y A
x A
B
y B
x B
C
y C
x C
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 nửa chu vi, diện tích
) )(
)(
( /
) (
c p b p a p p S
CV P
c b a CV
−
−
−
=
=
+ +
=
2 Vuông: Thoả mãn định lí Pitago
Đều: Ba cạnh bằng nhau;
* 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 một cạnh
* Tổ 2 : Viết chương trình con dạng thủ tục tính chu vi, diện tích
* Tổ 3 : Viết chương trình con dạng thủ tục để kiểm tra t/c 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);
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 Begin
Deu:=True; Can:= True;
end 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;
Blaise Pascal Nhà toán học và triết học người pháp –Ai thế nhỉ?
Trang 6Program Tamgiac;
Uses crt;
cosnt eps = 0.000001;
Var
xa,ya,xb,yb,xc,yc,a,b,c,cv,dt:real;
D,C,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);
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;
END.
Ghép nối chương trình