You are on page 1of 5

1

BAI TAP VA THUC HANH S 7 (TONG HOP)


PHIU BAI TAP

BAI TON 1: VIET CHUONG TRNH NHAP VO TOA O BA INH CUA MOT TAM GIC, XUAT RA CHU VI,
DIEN TICH, V TINH CHAT CUA TAM GIC (EU, CN, VUNG)

MOT S NOI DUNG CHUAN BI:
-oc sch gio khoa, Bi tp v thuc hnh 7, trang 105 108
-Xc dinh bi ton, tm hiu cch xu l bi ton bng ton hoc
-Hiu tai sao cn phai dinh ngha kiu d liu c cu trc (DIEM, TAMGIAC)
-Hiu tai sao cn phai su dung cc thu tuc, hm nhu trong bi mu cua SGK

YU CAU: chuong trnh duoc xy dung dui dang cc chuong trnh con (thu tuc v hm), tn
dung vic khai kiu d liu c cu trc (record cho dim v tam gic)

1. XC INH BAI TON

Input: Toa d 3 dinh tam gic ABC,vi A(x
A
, y
A
), B(x
B
, y
B
), C(x
C
, y
C
)
Output: chu vi, din tch, tnh cht: du, cn, vung

2. PHN TCH VA THIT K
a. Phn tch:
-Thnh phn d liu:
Input: s thuc x
A
, y
A
, x
B
, y
B
, x
C
, y
C
Output: s thuc chuvi, dientich
chui thng bo tam giac can, tam giac deu, tam giac vuong

-Thnh phn xu l:
Nhp toa d dinh
1. Tnh d di canh a, b, c
2. Tnh chu vi = a + b + c
3. Tnh din tch = sqrt(p(p-a)*(p-b)*(p-c)) vi p = (a+b+c)/2
4. Kim tra tnh cht
Nu a = b = c th l deu
Nu a = b hoac b = c hoac c = a th l can
Nu a
2
+b
2
=c
2
hay a
2
+c
2
=b
2
hay b
2
+c
2
=a
2
th l vuong
5. Xut chu vi, din tch, tnh cht: du, cn, vung tuong ng

b. Thit k
-on vi d liu:
Input:
x
A
, y
A
, x
B
, y
B
, x
C
, y
C
= real;
Output:
chuvi, dientich: real;
deu, can, vuong: boolean;

Cai tin: su dung cch dinh ngha kiu d liu c cu trc (RECORD)
(*MO TA DIEM CUA TAM GIAC *)
Diem = record
x, y: real;
End;

(* MO TA TAM GIAC VOI BA DINH A,B,C *)
Tamgiac = record
A,B,C: Diem;
End;

-on vi xu l: su dung cc chuong trnh con nhu sau
Luu : tm hiu su khc bit khi su dung hm v thu tuc, cch truyn tham bin v
truyn tham tri trong cc hm v thu tuc cua chuong trnh ny.
2

(*HAM TINH KHOANG CACH GIUA 2 DIEM P, Q *)
Function Kh_cach (P,Q: Diem):real;

(*THU TUC NHAN DAU VAO LA BIEN MO TA TAM GIAC R VA DAU RA LA DO DAI CUA 3 CANH a,b,c*)
Procedure Daicanh(var R: Tamgiac;var a,b,c: real);

(* HAM TINH CHU VI TAM GIAC R *)
Function Chuvi(var R: Tamgiac): real;

(* HAM TINH DIEN TICH CUA TAM GIAC R *)
Function Dientich(var R: Tamgiac): real;

(* THU TUC HIEN THI TOA DO 3 DINH TAM GIA LEN MAN HINH *)
Procedure Hienthi(var R: Tamgiac);

(* THU TUC NHAN DAU VAO LA BIEN MO TA TAM GIAC R VA DAU RA LA TINH CHAT TAM GIAC *)
Procedure Tinhchat(var R:Tamgiac;var Deu,Can,Vuong:boolean);

- So d thu tuc/hm:



-Thut giai chi tit:
Su dung luu d d th hin cc thut giai chi tit kh, phc tap
Hung dn v luu cc dim kh trong chuong trnh

(* THU TUC HIEN THI TOA DO 3 DINH TAM GIA LEN MAN HINH *)
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;

(*HAM TINH KHOANG CACH GIUA 2 DIEM P, Q *)
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;

(*THU TUC NHAN DAU VAO LA BIEN MO TA TAM GIAC R VA DAU RA LA DO DAI CUA 3 CANH a,b,c*)

Tinh_chat_tam_giac
Hienthi Chuvi Dientich Tinhchat
Daicanh
Kh_cach
3

Procedure Daicanh(var R: Tamgiac;var a,b,c: real);
Begin
a:=Kh_cach(R.B,R.C); (* a la do dai canh BC *)
b:=Kh_cach(R.A,R.C); (* B la do dai canh AC *)
c:=Kh_cach(R.B,R.A); (* c la do dai canh AB *)
End;

(* THU TUC NHAN DAU VAO LA BIEN MO TA TAM GIAC R VA DAU RA LA TINH CHAT TAM GIAC *)
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
Deu:=true;(*kiem tra deu*)
Else
If(abs(a-b)<eps) or (abs(a-c)<eps) or (abs(b-c)<eps) then Can:=true;
(*kiem tra can*)
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; (*kiem tra vuong*)
End;

3. CAI AT CHUONG TRNH

(* KHAI BAO BIEN TOAN CUC *)
Var T:Tamgiac;
Deu,Can,Vuong: boolean;

(*CHUONG TRINH CHINH *)
Begin
CLRSCR;
writeln('nhap vao toa do 3 dinh cua 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('Chu vi : ',Chuvi(T):9:3);
writeln('Dien tich : ',Dientich(T):9:3);
Tinhchat(T,Deu,Can,Vuong);
if Deu then writeln('TAM GIAC ABC BAN VUA NHAP LA TAM GIAC DEU');
if Can then writeln('TAM GIAC ABC BAN VUA NHAP LA TAM GIAC CAN');
if Vuong then writeln('TAM GIAC ABC BAN VUA NHAP LA TAM GIAC VUONG');
readln;
End.

4. BO D LIEU KIEM TRA (EPS=1.0E-3)

A B C Chu vi Din tch Tnh cht
1 1 12 12 -9 -9 59.397 0.000 SAI
7 9 13 6 0 12.5 29.069 0.000 SAI
2 -3 3 -2 1 -1 5.886 1.500 TGIAC CAN
-1 2 3 4 3 2 10.472 4.000 TGIAC VUONG
2 30 15 20 15 40 52.802 130.000 TGIAC CAN
0 0 3 4 4 3 11.414 3.500 TGIAC CAN
0 0 3 0 1.5 2.599 9.002 3.899 TGIAC DEU



4

BAI TON 2: MO RONG CUA BAI TON 1.
VI CC YU CAU SAU:
1. KIEM TRA D LIEU AU VO, TOA O CC INH PHAI THOA MN TAO THNH TAM GIC
Hung dn: kim tra diu kin sau a+b > c v a+c > b v c+b>a (a,b,c l canh tam gic)

2. KIEM TRA UOC THM TINH CHAT VUNG CN, THUNG
Luu : trung hop tam gic du cng l tam gic cn khng hin thi thng bo l
tam gic du, v tam gic cn

BAI TON 3: Vit chuong trnh su dung cc hm v thu tuc d xy dung o bi ton 1 d
giai bi ton.
Cho tp d liu TAMGIAC.DAT c cu trc nhu sau:
a. Dng du tin cha s N; (* s luong tam gic *)
b. N dng tip theo, mi dng cha su s thuc x
A
, y
A
, x
B
, y
B
, x
C
, y
C
l toa d 3 dinh
A(x
A
, y
A
), B(x
B
, y
B
), C(x
C
, y
C
) cua tam gic ABC.
Hy nhp d liu tu tp d cho v trong s N tam gic d, dua ra tp TAMGIAC.OUT gm 3
dng:
Dng du tin l s luong tam gic du;
Dng th hai l s luong tam gic cn (nhung khng l du);
Dng th ba l s luong tam gic vung

Hung dn: su dung 2 chuong trnh con Daicanh v Tinhchat
Cung vi cc thu tuc xu l tp nhu assign, reset, readln, writeln

1. CAI AT CHUONG TRNH

(* KHAI BAO BIEN TOAN CUC *)
Var n,i,deu1,can1,vuong1:integer;
f:text;

(*CHUONG TRINH CHINH*)
Begin
CLRSCR;
Assign(f,'TAMGIAC.DAT');
Reset(f);
Read(f,n);
deu1:=0; can1:=0; vuong1:=0;
For i:=1 to n do
Begin
Read(f,T.A.x,T.A.Y);
Read(f,T.B.x,T.B.Y);
Read(f,T.C.x,T.C.Y);
Hienthi(T);
Tinhchat(T,Deu,Can,Vuong);
If Deu then deu1 := deu1 + 1;
If Can then can1 := can1 + 1;
If Vuong then vuong1 := vuong1 +1 ;
End;
Assign(f,'TAMGIAC.OUT');
Rewrite(f);
Writeln(f,'co tat ca ',deu1,' tam giac deu');
Writeln(f,'co tat ca ',can1,' tam giac can');
Writeln(f,'co tat ca ',vuong1,' tam giac vuong ');
Close(f);
End.



5

2. BO D LIEU KIEM TRA (EPS=1.0E-3)

A B C Tnh cht
13 -9 10 9 3 4 TG THUNG
34 12 65 32 9 8 TG THUNG
57 3 9 23 45 56 TG THUNG
19 3 19 -7 13 -7 TGIAC VUONG
2 30 15 30 15 40 TGIAC VUONG
37 18 59 18 59 103 TGIAC VUONG
0 0 3 -9 -3 -9 TGIAC CAN
0 1 13 -9 13 -16 TG THUNG
0 0 3 4 4 3 TGIAC CAN

You might also like