Для какого наибольшего целого неотрицательного числа a выражение тождественно истинно, то есть принимает значение 1 при любых целых неотрицательных x и y?
// PascalABC.NET 3.0, сборка 1073 const m=5; n=4; a:array[1..m] of real=(2,-7.1,3.2,-5.4,6.9); b:array[1..n] of real=(8.1,3.2,-6.4,-3.5); k=3; var i,j:integer; sk:real; s:array[1..m,1..n] of real; begin Writeln('Массив S'); for i:=1 to m do begin for j:=1 to n do begin s[i,j]:=a[i]*b[j]; Write(s[i,j]:7:2) end; Writeln end; sk:=0; for i:=1 to m do sk:=sk+s[i,k]; Writeln('Сумма элементов столбца ',k,' равна ',sk) end.
Результат выполнения программы: Массив S 16.20 6.40 -12.80 -7.00 -57.51 -22.72 45.44 24.85 25.92 10.24 -20.48 -11.20 -43.74 -17.28 34.56 18.90 55.89 22.08 -44.16 -24.15 Сумма элементов столбца 3 равна 2.56
function LengthLine(xb, yb, xe, ye: double): double; var dx,dy : double; begin // Теорема Пифагора dx := xb-xe; dy := yb-ye; result := Sqrt( dx*dx + dy*dy ); end;
function AreaTriangle(d1, d2, d3: double): double; var p : double; begin // Формула Герона p := (d1+d2+d3)/2; result := Sqrt( p*(p-d1)*(p-d2)*(p-d3) ); end;
procedure SquarePentagon; var x1,x2,x3,x4,x5 : double; y1,y2,y3,y4,y5 : double; //площадь пятиугольника первый второй //длины всех линий между вершинами пятиугольника d12,d23,d34,d45,d51 : double; d13,d14,d24,d25,d35 : double; //площади всех треугольников s123,s234,s345,s451,s512 : double; s134,s245,s351,s412,s523 : double; begin // Задаем координаты пятиугольника x1:=1; y1:=3; x2:=3; y2:=4; x3:=5; y3:=3; x4:=4; y4:=1; x5:=2; y5:=1;
//Площадь пятиугольника без самопересечений, заданного координатами вершин, определяется по общей для многоугольников формуле sp1 := 0.5*( (x1+x2)*(y1-y2) + (x2+x3)*(y2-y3) + (x3+x4)*(y3-y4) + (x4+x5)*(y4-y5) + (x5+x1)*(y5-y1) );
//Площадь пятиугольника теперь можем найти по другому, например по сумме треугольников sp2 := s123 + s134 + s451; //Площади треугольников можно брать любые, главное они не должны пересекаться между собой end;
const
m=5;
n=4;
a:array[1..m] of real=(2,-7.1,3.2,-5.4,6.9);
b:array[1..n] of real=(8.1,3.2,-6.4,-3.5);
k=3;
var
i,j:integer;
sk:real;
s:array[1..m,1..n] of real;
begin
Writeln('Массив S');
for i:=1 to m do begin
for j:=1 to n do begin
s[i,j]:=a[i]*b[j];
Write(s[i,j]:7:2)
end;
Writeln
end;
sk:=0;
for i:=1 to m do sk:=sk+s[i,k];
Writeln('Сумма элементов столбца ',k,' равна ',sk)
end.
Результат выполнения программы:
Массив S
16.20 6.40 -12.80 -7.00
-57.51 -22.72 45.44 24.85
25.92 10.24 -20.48 -11.20
-43.74 -17.28 34.56 18.90
55.89 22.08 -44.16 -24.15
Сумма элементов столбца 3 равна 2.56
//
// Написал GonanSoft
//
function LengthLine(xb, yb, xe, ye: double): double;
var
dx,dy : double;
begin
// Теорема Пифагора
dx := xb-xe;
dy := yb-ye;
result := Sqrt( dx*dx + dy*dy );
end;
function AreaTriangle(d1, d2, d3: double): double;
var
p : double;
begin
// Формула Герона
p := (d1+d2+d3)/2;
result := Sqrt( p*(p-d1)*(p-d2)*(p-d3) );
end;
procedure SquarePentagon;
var
x1,x2,x3,x4,x5 : double;
y1,y2,y3,y4,y5 : double;
//площадь пятиугольника
первый
второй
//длины всех линий между вершинами пятиугольника
d12,d23,d34,d45,d51 : double;
d13,d14,d24,d25,d35 : double;
//площади всех треугольников
s123,s234,s345,s451,s512 : double;
s134,s245,s351,s412,s523 : double;
begin
// Задаем координаты пятиугольника
x1:=1; y1:=3;
x2:=3; y2:=4;
x3:=5; y3:=3;
x4:=4; y4:=1;
x5:=2; y5:=1;
//Площадь пятиугольника без самопересечений, заданного координатами вершин, определяется по общей для многоугольников формуле
sp1 := 0.5*( (x1+x2)*(y1-y2) + (x2+x3)*(y2-y3) + (x3+x4)*(y3-y4) + (x4+x5)*(y4-y5) + (x5+x1)*(y5-y1) );
//Находим все длины между вершинами
d12 := LengthLine(x1,y1,x2,y2);
d23 := LengthLine(x2,y2,x3,y3);
d34 := LengthLine(x3,y3,x4,y4);
d45 := LengthLine(x4,y4,x5,y5);
d51 := LengthLine(x5,y5,x1,y1);
d13 := LengthLine(x1,y1,x3,y3);
d14 := LengthLine(x1,y1,x4,y4);
d24 := LengthLine(x2,y2,x4,y4);
d25 := LengthLine(x2,y2,x5,y5);
d35 := LengthLine(x3,y3,x5,y5);
//Находим площади всех треугольников в пятиугольнике
s123 := AreaTriangle(d12,d23,d13);
s234 := AreaTriangle(d23,d34,d24);
s345 := AreaTriangle(d34,d45,d35);
s451 := AreaTriangle(d45,d51,d14);
s512 := AreaTriangle(d51,d12,d25);
s134 := AreaTriangle(d13,d34,d14);
s245 := AreaTriangle(d24,d45,d25);
s351 := AreaTriangle(d35,d51,d13);
s412 := AreaTriangle(d14,d12,d24);
s523 := AreaTriangle(d25,d23,d35);
//Площадь пятиугольника теперь можем найти по другому, например по сумме треугольников
sp2 := s123 + s134 + s451;
//Площади треугольников можно брать любые, главное они не должны пересекаться между собой
end;