{iki_parabol }
program parabol;
uses crt;
var
a,b,c,d1,ax1,p1,x1,x2:real;
d,e,f,d2,ax2,p2,xx1,xx2:real;
aa,bb,cc,dd:real;
ex1,ex2,y1,y2,:real;
begin
clrscr;
writeln('1.Parabolün katsayılarını giriniz y=ax² + bx + c ');
write('a = ');
readln(a);
write('b = ');
readln(b);
write('c = ');
readln(c);
d1:=((b*b)-(4*a*c));
ax1:=-b/2/a;
p1:=a*ax1*ax1+b*ax1+c
writeln('1.Parabolunun X=', ax1 ,'Y=',p1,'noktasında tepe noktası vardır );
if a<0
write('ve kolları asagi dogrudur');
if a=0 then
write('bu bir parabol degildir');
if a>0
write('ve kolları yukari dogrudur');
if d1< 0 then
write('1. parabol X eksenini kesmez');
if d1=0 then
write('Bu parabol X eksenine tepe noktasında teğet keser :',ax1);
if d1>0 then
begin
writeln('1. parabol X eksenini iki noktada keser :');
x1:= (-b+sqr(d1))/2/a;
x2:= (-b-sqr(d1))/2/a;
writeln('1.kok :',x1,' 2.kok x2',x2);
end;
writeln('2.Parabolün katsayılarını giriniz y=dx² + ex + f');
write('d = ');
readln(d);
write('e = ');
readln(e);
write('f = ');
readln(f);
d2:=((e*e)-(4*d*f));
ax2:=-b/2/d;
p2=d*ax2*ax2+e*ax2+f;
writeln('2.Parabolunun X=', ax2 ,'Y=',p2,'noktasında tepe noktası vardır );
if d<0
write('ve kolları asagi dogrudur');
if d=0 then
write('bu bir parabol degildir');
if d>0
write('ve kolları yukari dogrudur');
if d2< 0 then
write('2. parabol X eksenini kesmez');
if d2=0 then
write('Bu parabol X eksenine tepe noktasında teğet keser :',ax2);
if d2>0 then
begin
writeln('1. parabol X eksenini iki noktada keser :');
xx1:= (-e+sqr(d2))/2/d;
xx2:= (-e-sqr(d2))/2/d;
writeln('1.kok :',xx1,' 2.kok x2',xx2);
end;
{ bu bölümde iki parabolün karşılaştırılması yapılacak
iki parabol biribirine eşitlenerek oluşan parabolün
kökleri irdelenecek
kök vermiyorsa kesişme yok, tek kök veriyorsa
, iki kök veriyorsa iki kök ve kesişim koordinatı hesaplanacak }
aa:=a-d;
bb:=b-e;
cc:=c-f;
dd:=aa*aa-4*aa*cc;
if dd<0 writeln('Bu iki parabol birbiryle kesişmez.');
if dd=0 then
begin
ex1:=-bb/2/aa;
y1:=a*ex1*ex1+b*ex1+c;
writeln(' Bu iki parabol tek noktada kesişir X=',ex1,' Y=', y1);
end;
if dd>0 then
begin
ex1:= (-bb+sqr(dd))/2/aa;
ex2:= (-bb-sqr(dd))/2/aa;
y1:= a*ex1*ex1+b*ex1+c;
y2:= a*ex2*ex2+b*ex2+c;
writeln(' Bu iki parabol iki noktada kesişir X1=',ex1,' Y1=', y1);
writeln(' Bu iki parabol iki noktada kesişir X2=',ex2,' Y2=', y2);
end ;
readkey;
end.
DÜZELTME NOTU : daha önce programın açıklamasında iki parabol tek noktada kesişiyorsa teğettir şeklinde bir açıklamayapmıştım (bunu sildim) fakat bu " a" ları farklı paraboller için doğru olabilir, "a"ları eşit paraboller teknoktada kesişiyorlarsa teğet olmak zorunda değildirler