Обработка массива - Free Pascal

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

День добрый, есть задачка по Паскалю, которую сдавать через час, а у меня еще долги Если не сложно, то прошу помочь, буду вам премного благодарен
Дана матрица B[1:6,1:6] и вектор А[1:6]. Из среднеарифметических значений строк матрицы сформировать вектор C. Если минимальный элемент вектора C меньше минимального элемента вектора A, то из элементов главной диагонали матрицы сформировать вектор D. Иначе в матрице B элементы главной диагонали матрицы заменить элементами вектора A по правилу Bi,i= Ai.


textual

Код к задаче: «Обработка массива - Free Pascal»

{Дана матрица B[1:6,1:6] и вектор А[1:6]. Из среднеарифметических значений строк 
матрицы сформировать вектор C. Если минимальный элемент вектора C меньше 
минимального элемента вектора A, то из элементов главной диагонали матрицы 
сформировать вектор D. Иначе в матрице B элементы главной диагонали матрицы 
заменить элементами вектора A по правилу Bi,i= Ai}
 
const
  n = 6;
 
type
  matrix = array[1..n, 1..n] of real;
  vector = array[1..n] of real;
 
function Min(x: vector): real;
var
  i: integer;
  mn: real;
begin
  mn := x[1];
  for i := 2 to n do
    if x[i] < mn then
      mn := x[i];
  min := mn;
end;
 
var
  B: matrix;
  a, c, d: vector;
  i, j: integer;
  s: real;
 
begin
  randomize;
  writeln('Матрица B: ');
  for i := 1 to n do
  begin
    s := 0;
    for j := 1 to n do
    begin
      b[i, j] := -n div 2 + random * n;
      write(b[i, j]:8:2);
      s := s + b[i, j]
    end;
    a[i] := -n div 2 + random * n;
    c[i] := s / n;
    writeln;
  end;
  writeln('Вектор A: ');
  for i := 1 to n do
    write(a[i]:8:2);  
  writeln;    
  writeln('Минимальный элемент вектора A: ', min(a):8:2);
  writeln('Вектор C: ');
  for i := 1 to n do
    write(c[i]:8:2);
  writeln;       
  writeln('Минимальный элемент вектора C: ', min(c):8:2);    
  if min(c) < min(a) then
  begin
    for i := 1 to n do
      d[i] := b[i, i];
    writeln('Вектор D: ');
    for i := 1 to n do
      write(d[i]:8:2);  
  end
  else
  begin
    writeln;
    for i := 1 to n do
      b[i, i] := a[i];
    writeln('Измененная матрица B: ');
    for i := 1 to n do
    begin
      for j := 1 to n do
        write(b[i, j]:8:2);
      writeln;
    end;    
  end;
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

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

Источник