В зависимости от местоположения максимального элемента, домножить матрицу на 10 или сформировать массив - Pascal

Формулировка задачи:

дана вещественная матрица A(n*n). Если максимальный элемент матрицы находится на главной диагонали или выше её то все элементы матрицы домножить на 10. в противном случае получить одномерную матрицу

Код к задаче: «В зависимости от местоположения максимального элемента, домножить матрицу на 10 или сформировать массив - Pascal»

textual
const n = 6;
var a: array[1..n, 1..n] of real;
    b: array[1..n*n] of real;
    i, j, imax, jmax: integer;
begin
  randomize;
  imax := 1;
  jmax := 1;
  writeln('Исходная матрица:');
  for i := 1 to n do
    begin
      for j := 1 to n do
        begin
          a[i, j] := 198 * random - 99;
          write(a[i, j]:10:4);
          if a[imax, jmax] < a[i, j]
            then begin
              imax := i;
              jmax := j
            end
        end;
      writeln
    end;
  writeln('Максимальный элемент матрицы: A[', imax, ', ', jmax, '] = ', a[imax, jmax]:0:4);
  if jmax >= imax
    then begin
      if imax = jmax
        then writeln('Максимальный элемент матрицы находится на главной диагонали')
        else writeln('Максимальный элемент матрицы находится выше главной диагонали');
      writeln('Все элементы матрицы умножены на 10:');
      for i := 1 to n do
        begin
          for j := 1 to n do
            begin
              a[i, j] := a[i, j] * 10;
              write(a[i, j]:10:3)
            end;
          writeln
        end
    end
    else begin
      writeln('Максимальный элемент матрицы находится ниже главной диагонали');
      for i := 1 to n do
        for j := 1 to n do
          b[(i - 1) * n + j] := a[i, j];
      writeln('Одномерный массив:');
      for i := 1 to n * n do write(b[i]:10:4)
    end;
  readln
end.

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

12   голосов, оценка 3.917 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы