{кофф линейноного уавнения}
a:=y2-y1
b:=x1-x2
c:=-x1*(y2-y1)+y1*(x2-x1)
{лежит ли точка на прямой}
p:=false;
if (x3-x1)*(y2-y1)-(y3-y1)*(x2-x1)=0
then p:=true;
{расположение точек}
l:='1';
z1:=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1);
z2:=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1);
if z1*z20
then p:=false;
z3:=(x1-x3)*(y4-y3)-(y1-y3)*(x4-x3)
z4:=(x2-x3)*(y4-y3)-(y2-y3)*(x4-x3)
if z3*z4>0
then p:=false;
{Точка пересечения отрезков}
y=(a1c2-a2c1)/(a2b1-a1b2)
x=(b1c2-b2c1)/(b2a1-b1a2)
{Расстояние между точками}
d:=sqrt((x1-x2)^2+(y1-y2)^2)
{Расстояние от точки до прямой}
a:=y2-y1
b:=x1-x2
c:=-x1*(y2-y1)+y1(x2-x1)
t:=sqrt(a*a+b*b)
d:=abs((a*x3+b*y3+c)/t)
{Выпуклость много угольников}
L:='выпуклый'
for i:=1 to n do
begin
j:=i+1
k:=j+1
if i=n
then k:=1
m:=i-1
if i=1
then m:=n;
z1:=(x[m]-x[i])*(y[j]-y[i])-(y[m]-y[i])*(x[j]-x[i]);
z2:=(x[k]-x[i])*(y[j]-y[i])-(y[k]-y[i])*(x[j]-x[i]);
if z1*z2y[k]
then ymin:=y[k];
for k:=1 to n+1 do
y1[k]:=y[k]-ymin;
s:=0;
for k:=1 to n do
s:=s+(x[i+1]-x[i])*(y1[i+1]+y1[i]);
s:=abs(s)/2;
{Cортировка выбором}
for i:=1 to n-1 do
begin
k:=i; max:=a[i];
for j:=i+1 to n do
if a[j]>max then
begin
max:=a[j];
k:=j;
end;
A[k]:=a[i]; a[i]:=maxl;
end;
{Cортировка обменом}
for i:=1 to n-1 do
for j:=1 to n-1 do
if a[j]>a[j+1] then
begin
x:=a[j];
a[j+1]:=a[j];
a[j]:=x;
end;
{Двоичный поиск}
l:=1; r:=n+1; a[n+1]:=x;
while (lx then
l:=m+1;
else
r:=m;
end;
{Сортировка бинарными вставками}
for i:=2 to n do
begin
r:=i;
l:=i;
while (la[i] then l:=k+1;
else r:=k;
end;
k:=r;
x:=a[i];
for m:=i downto k+1 do
a[m]:=a[m-1];
a[k]:=x;
end;
{Метод Гауса}
uses crt;
const
n=2;
var
m : array[0..n,0..n+1] of real;
x : array[0..n] of real;
i,j,k:integer;
a,s:real;
begin
for j:=0 to n do
for i:=0 to n do
m[j,i]:=random(4)+1;
For k:=0 to n do
begin
a:=m[k,k];
for i:=0 to n+1 do m[k,i]:=m[k,i]/a;
for j:=k to n-1 do
begin
a:=m[j+1,k];
for i:= 0 to n+1 do m[j+1,i]:=m[j+1,i]-m[k,i]*a;
end;
end;
for k:=n downto 0 do
begin
x[k]:=m[k,n+1];
for j:=n-1 downto k do
x[k]:=x[k]-m[k,j+1]*x[j+1];
end;
end.
{Дифференцирование}
const
d=0.0001;
x=2;
{y=x*x+2}
var
f,dx:real;
begin
dx:=x+d;
f:=((dx*dx+2)-(x*x+2))/d;
writeln(f);
end.
{Хорда}
var
x,xk,xk1,a,b:real;
function f(x:real):real;
begin
f:=x*x+x-2;
end;
begin
a:=-3;
b:=0;
xk1:=a;
xk := a - (f(a)*(b-a)) / (f(b)-f(a));
while abs(xk-xk1)>=0.00001 do
begin
x:=xk1;
if f(xk)*f(a)0.000001 do
begin
x0:=sqrt(x+2);
x:=x0;
end;
writeln(x0);
end.
{Касательные}
var
d,x,xk,xk1,a,b:real;
function f(x:real):real;
begin
f:=x*x+x-2;
end;
function f1(x:real):real;
begin
f1:=2*x-1;
end;
begin
a:=-3;
b:=0;
d:=0.0001;
xk:=a;
xk1:=b;
while abs(xk-xk1)>=d do
begin
x:=xk1;
xk1:=xk-f(xk)/f1(xk);
xk:=x;
end;
end.
|
|