Заданы матрицы A, B, C. Решить уравнение P*x2+d*x+f=0, где P — максимальный по абсолютной величине элемент матрицы A; d — максимальный по абсолютной величине элемент матрицы B; f — максимальный по абсолютной величине элемент матрицы C; Поиск максимального по абсолютной величине элемента оформить в виде подпрограммы — Pascal(Паскаль)

Исходные данные:
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.

Leave a Comment

− 4 = 5