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

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

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

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

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

textual
Листинг программы
  1. {Дана матрица B[1:6,1:6] и вектор А[1:6]. Из среднеарифметических значений строк
  2. матрицы сформировать вектор C. Если минимальный элемент вектора C меньше
  3. минимального элемента вектора A, то из элементов главной диагонали матрицы
  4. сформировать вектор D. Иначе в матрице B элементы главной диагонали матрицы
  5. заменить элементами вектора A по правилу Bi,i= Ai}
  6.  
  7. const
  8.   n = 6;
  9.  
  10. type
  11.   matrix = array[1..n, 1..n] of real;
  12.   vector = array[1..n] of real;
  13.  
  14. function Min(x: vector): real;
  15. var
  16.   i: integer;
  17.   mn: real;
  18. begin
  19.   mn := x[1];
  20.   for i := 2 to n do
  21.     if x[i] < mn then
  22.       mn := x[i];
  23.   min := mn;
  24. end;
  25.  
  26. var
  27.   B: matrix;
  28.   a, c, d: vector;
  29.   i, j: integer;
  30.   s: real;
  31.  
  32. begin
  33.   randomize;
  34.   writeln('Матрица B: ');
  35.   for i := 1 to n do
  36.   begin
  37.     s := 0;
  38.     for j := 1 to n do
  39.     begin
  40.       b[i, j] := -n div 2 + random * n;
  41.       write(b[i, j]:8:2);
  42.       s := s + b[i, j]
  43.     end;
  44.     a[i] := -n div 2 + random * n;
  45.     c[i] := s / n;
  46.     writeln;
  47.   end;
  48.   writeln('Вектор A: ');
  49.   for i := 1 to n do
  50.     write(a[i]:8:2);  
  51.   writeln;    
  52.   writeln('Минимальный элемент вектора A: ', min(a):8:2);
  53.   writeln('Вектор C: ');
  54.   for i := 1 to n do
  55.     write(c[i]:8:2);
  56.   writeln;      
  57.   writeln('Минимальный элемент вектора C: ', min(c):8:2);    
  58.   if min(c) < min(a) then
  59.   begin
  60.     for i := 1 to n do
  61.       d[i] := b[i, i];
  62.     writeln('Вектор D: ');
  63.     for i := 1 to n do
  64.       write(d[i]:8:2);  
  65.   end
  66.   else
  67.   begin
  68.     writeln;
  69.     for i := 1 to n do
  70.       b[i, i] := a[i];
  71.     writeln('Измененная матрица B: ');
  72.     for i := 1 to n do
  73.     begin
  74.       for j := 1 to n do
  75.         write(b[i, j]:8:2);
  76.       writeln;
  77.     end;    
  78.   end;
  79. 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

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

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

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы