Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt,math;
- type TPoint = record
- x,y:Real;
- end;
- procedure quadratic(a,b,c:Real;var x1,x2:Real);
- var delta:Real;
- begin
- delta:=sqr(b)-4*a*c;
- if delta >= 0 then
- begin
- x1 := (-b - sqrt(delta))/(2*a);
- x2 := (-b + sqrt(delta))/(2*a);
- end;
- end;
- var a1,b1,c1:Real;
- a2,b2,c2:Real;
- a3,b3,c3:Real;
- r,t1,t2:Real;
- a,b,c,d:TPoint;
- f:text;
- begin
- //clrscr;
- Assign(f,'bisector.txt');
- {$I-}
- reset(f);
- {$I+}
- if IOResult = 0 then
- Append(f)
- else
- Rewrite(f);
- randomize;
- writeln('Podaj rownanie pierwszej prostej zawierajacej ramie kata');
- readln(a1,b1,c1);
- writeln('Podaj rownanie drugiej prostej zawierajacej ramie kata');
- readln(a2,b2,c2);
- writeln(f,'Wspolczynniki rownania pierwszej prostej zawierajacej ramie kata');
- writeln(f,a1:1:10,' ',b1:1:10,' ',c1:1:10);
- writeln(f,'Wspolczynniki rownania drugiej prostej zawierajacej ramie kata');
- writeln(f,a2:1:10,' ',b2:1:10,' ',c2:1:10);
- a.x := -(c1*b2-c2*b1)/(a1*b2-a2*b1);
- a.y := -(a1*c2-a2*c1)/(a1*b2-a2*b1);
- writeln(f,'Wspolczynniki wierzcholka kata');
- writeln(f,a.x:1:10,' ',a.y:1:10);
- if b1 <> 0 then
- begin
- b.x := random(10);
- b.y := -1/b1*(c1 + a1*b.x);
- end
- else
- begin
- b.y := random(10);
- b.x := -1/a1*(c1 + b1*b.y)
- end;
- writeln(f,'Wspolczynniki wybranego punktu na jednym z ramion kata');
- writeln(f,b.x:1:10,' ',b.y:1:10);
- r := hypot(b.x - a.x,b.y - a.y);
- writeln(f,'Promien okregu o srodku w punkcie A');
- writeln(f,r:1:10);
- quadratic(1+sqr(a2/b2),2*(c2/b2+a.y)*(a2/b2)-2*a.x,sqr(a.x)+sqr(c2/b2+a.y)-sqr(r),t1,t2);
- writeln(f,'Wspolczynniki rownania kwadratowego powstalego z ukladu rownan');
- writeln(f,1+sqr(a2/b2):1:10,' ',2*(c2/b2+a.y)*(a2/b2)-2*a.x:1:10,' ',sqr(a.x)+sqr(c2/b2+a.y)-sqr(r):1:10);
- c.x := t1;
- c.y := -1/b2 * (c2 + a2*c.x);
- d.x := t2;
- d.y := -1/b2 * (c2 + a2*d.x);
- writeln(f,'Wspolczynniki mozliwych punktow przeciecia okregu z prosta zawierajaca drugie ramie kata');
- writeln(f,c.x:1:10,' ',c.y:1:10);
- writeln(f,d.x:1:10,' ',d.y:1:10);
- a3:= -(c.x-b.x)/(c.y-b.y);
- b3:=-1;
- c3:=-a3*a.x + a.y;
- writeln('Rownanie dwusiecznej to: ');
- writeln(a3:1:10,'*x+',b3:1:10,'*y+',c3:1:10);
- writeln(f,'Rownanie dwusiecznej to: ');
- writeln(f,a3:1:10,'*x+',b3:1:10,'*y+',c3:1:10);
- a3:= -(d.x-b.x)/(d.y-b.y);
- b3:=-1;
- c3:=-a3*a.x + a.y;
- writeln('Rownanie dwusiecznej to: ');
- writeln(a3:1:10,'*x+',b3:1:10,'*y+',c3:1:10);
- writeln(f,'Rownanie dwusiecznej to: ');
- writeln(f,a3:1:10,'*x+',b3:1:10,'*y+',c3:1:10);
- writeln(f);
- readkey;
- close(f);
- end.
Advertisement
Add Comment
Please, Sign In to add comment