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

Узнай цену своей работы

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

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

Решение задачи: «Обработка массива»

textual
Листинг программы
{Дана матрица 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.

Объяснение кода листинга программы

  1. Объявлены константа n = 6, типы matrix и vector, а также функция Min.
  2. Задана переменная B типа matrix, инициализированная случайными значениями.
  3. Задана переменная a типа vector, инициализированная случайными значениями.
  4. Задана переменная c типа vector, инициализированная случайными значениями.
  5. Выводится матрица B.
  6. Выводится вектор a.
  7. Находится минимальный элемент вектора a и выводится на экран.
  8. Выводится вектор c.
  9. Находится минимальный элемент вектора c и сравнивается с минимальным элементом вектора a.
  10. Если условие выполняется, то выводится вектор d.
  11. Иначе, выводится измененная матрица B.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы