{**************************************************************************} { Moodul Kolmnurk sisaldab protseduuri kolmnurga sisestamiseks tippude } { v“i kylgede jargi ning funktsioonid kolmnurga moodustavuse kontrolliks, } { kolmnurga pindala, ymbermoodu, siseringi ja ymberringi pindala arvuta- } { miseks. } { Nele Vendt, Raido Sune } {**************************************************************************} unit kolmnurk; interface var ab,bc,ac,p:real; procedure SisKolmnurk(n:byte); function OnKolmnurk:boolean; function KolmnurgaYmbermoot:real; function KolmnurgaPindala:real; function KolmnurgaLiik:string; function YmberRingPind:real; function SiseRingPind:real; implementation procedure SisKolmnurk; var ax,ay,bx,by,cx,cy:real; begin if n=1 then begin writeln('Sisesta kolmnurga tipud A,B,C (kujul x y):'); write('A:');readln(ax,ay); write('B:');readln(bx,by); write('C:');readln(cx,cy); ab:=sqrt(sqr(ax-bx)+sqr(ay-by)); bc:=sqrt(sqr(bx-cx)+sqr(by-cy)); ac:=sqrt(sqr(ax-cx)+sqr(ay-cy)); end else begin writeln('Sisesta kolmnurga kljed ab, bc ja ac:'); write('ab:');readln(ab); write('bc:');readln(bc); write('ac:');readln(ac); end; p:=(ab+bc+ac)/2; end; function OnKolmnurk; begin if (ab+bc>ac) and (bc+ac>ab) and (ab+ac>bc) then OnKolmnurk:=true else OnKolmnurk:=false; end; function KolmnurgaYmbermoot; begin KolmNurgaYmbermoot:=ab+bc+ac; end; function KolmnurgaPindala; begin KolmnurgaPindala:=sqrt(p*(p-ab)*(p-bc)*(p-ac)); { Heroni valem } end; function KolmnurgaLiik; var max,t1,t2:real; begin if ab>bc then begin max:=ab; t1:=bc; t2:=ac; end else begin max:=bc; t1:=ab; t2:=ac; end; if ac>max then begin max:=ac; t1:=ab; t2:=bc; end; if int((max*max-t1*t1-t2*t2)/2*t1*t2)=0 then { koosinusteoreem } KolmnurgaLiik:='t„isnurkne' else if sqr(max)>sqr(t1)+sqr(t2) then KolmnurgaLiik:='nrinurkne' {Eukleides} else KolmnurgaLiik:='teravnurkne'; end; function YmberRingPind; var yr:real; begin yr:=ab*bc*ac/(4*sqrt(p*(p-ab)*(p-bc)*(p-ac))); YmberRingPind:=PI*yr*yr; end; function SiseRingPind; var sr:real; begin sr:=(sqrt(p*(p-ab)*(p-bc)*(p-ac)))/p; SiseRingPind:=PI*sr*sr; end; end.