Исходные данные:
A=((0.85,-3.1)
(-4.8,2.5))
B=((0.33,0.4,1.2)
(-0.5,2.1,2.0)
(4.4,5.8,0.5))
C=((-3.1,0.8)
(0.25,1.2))
Uses
crt;
type
matr1 = array [1 .. 2, 1 .. 2] of real;
matr2 = array [1 .. 3, 1 .. 3] of real;
const
A: matr1 = ((0.85, -3.1), (-4.8, 2.5));
B: matr2 = ((0.33, 0.4, 1.2), (-0.5, 2.1, 2.0), (4.4, 5.8, 0.5));
C: matr1 = ((-3.1, 0.8), (0.25, 1.2));
Var
D, x1, x2: real;
i, j: integer;
function maxi1(mas: matr1; m, n: integer): real;
var
k, t: integer;
begin
k := 1;
t := 1;
for i := 1 to m do
for j := 1 to n do
if abs(mas[i, j]) > abs(mas[k, t]) then
begin
k := i;
t := j;
end;
maxi1 := mas[k, t];
end;
function maxi2(mas: matr2; m, n: integer): real;
var
k, t: integer;
begin
k := 1;
t := 1;
for i := 1 to m do
for j := 1 to n do
if abs(mas[i, j]) > abs(mas[k, t]) then
begin
k := i;
t := j;
end;
maxi2 := mas[k, t];
end;
begin
clrscr;
writeln(maxi1(A, 2, 2), '*x^2+', maxi2(B, 3, 3), '*x+(',
maxi1(C, 2, 2), ')=0');
D := maxi2(B, 3, 3) * maxi2(B, 3, 3) - (4 * maxi1(A, 2, 2) * maxi1(C, 2, 2));
write('D:=', D);
writeln;
if D > 0 then
begin
x1 := (-maxi2(B, 3, 3) + sqrt(D)) / (2 * maxi1(A, 2, 2));
x2 := (-maxi2(B, 3, 3) - sqrt(D)) / (2 * maxi1(A, 2, 2));
write('x1:=', x1, '; x2:=', x2);
end
else if D = 0 then
write('x1:=', (-maxi2(B, 3, 3)) / (2 * maxi1(A, 2, 2)))
else
write('Вещественных корней нет!!!');
readln;
end.