Построение вектора из элементов матрицы - Free Pascal

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

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

Помогите найти в чем проблема Пусть дана матрица А(n*n). Постройте вектор, каждый элемент которого равен наибольшему количеству равных элементов в соответствующей строке матрицы А. Воспользуйтесь функцией, которая определяет это количество в i-строке матрицы А
Листинг программы
  1. program qwe;
  2. const
  3. nmax=20;
  4. type
  5. tVec=array [1..nmax] of integer;
  6. tMas=array [1..nmax,1..nmax] of integer;
  7. function MaxEq(m: tmas; n, r: integer): integer;
  8. var
  9. i, j, c,p: integer;
  10. b: tVec;
  11. begin
  12. for i:=1 to n do begin
  13. b[i]:=1;
  14. for j:=i+1 to n do if m[r,i]=m[r,j] then inc(b[i]);
  15. end;
  16. c:=b[1];
  17. for i:=2 to n do if b[i]>c then c:=b[i];
  18. MaxEq:=c;
  19. end;
  20. var
  21. n,m, i, j: integer;
  22. a: tMas;
  23. v: tVec;
  24. begin
  25. Write('Введите размерность:');
  26. ReadLn(n,m);
  27. WriteLn('Введите элементы матрицы:');
  28. for i:=1 to n do
  29. begin
  30. for j:=1 to m do
  31. Read(a[i,j]);
  32. end;
  33. writeln('Матрица*');
  34. for i:=1 to n do
  35. begin
  36. for j:=1 to m do
  37. write(a[i,j]:4 );
  38. writeln;
  39. end;
  40. writeln('Вектор');
  41. for i:=1 to n do begin
  42. v[i]:=MaxEq(a,n,i);
  43. end;
  44. for i:=1 to n do begin
  45. if v[i]=1 then v[i]:=0;
  46. write(v[i]:4)
  47. end; WriteLn;
  48. end.

Решение задачи: «Построение вектора из элементов матрицы»

textual
Листинг программы
  1. program qwe;
  2.  
  3. type
  4.   tVec=array of integer;
  5.   tMas=array of tvec;
  6.  
  7.  
  8. function MaxEq(m: tmas; i:dword): dword;
  9.  
  10. procedure swap( var a, b:integer );
  11. var
  12.   temp : integer;
  13. begin
  14.   temp := a;
  15.   a := b;
  16.   b := temp;
  17. end;
  18.  
  19. procedure BubbleSort( var a: array of integer );
  20. var
  21.   n, newn, i:integer;
  22. begin
  23.   n := high( a );
  24.   repeat
  25.     newn := 0;
  26.     for i := 1 to n   do
  27.       begin
  28.         if a[ i - 1 ] > a[ i ] then
  29.           begin
  30.             swap( a[ i - 1 ], a[ i ]);
  31.             newn := i ;
  32.           end;
  33.       end ;
  34.     n := newn;
  35.   until n = 0;
  36. end;
  37.  
  38. var
  39.   v:tvec;
  40.   j,p:dword;
  41.   t:integer;
  42. begin
  43.   SetLength(v,length(m));
  44.   for j:=0 to length(v) do v[j]:=0;
  45.   BubbleSort(m[i]);
  46.   t:=m[0,i]; j:=1; p:=0;
  47.   while j<>length(m) do
  48.   begin
  49.     if m[i,j-1]=m[i,j] then inc(v[p]) else inc(p);
  50.     inc(j);
  51.   end;
  52.   BubbleSort(v);
  53.   MaxEq:=v[length(v)-1]+1;
  54. end;
  55.  
  56. var
  57.   n, i, j: integer;
  58.  // m:dword;
  59.   a: tMas;
  60.   v: tVec;
  61. begin
  62.   randomize;
  63. //    Write('Введите размерность:');
  64. //    ReadLn(n,m);
  65.    n:=8;
  66.   SetLength(a,n);
  67.   SetLength(v,n);
  68.   WriteLn('Введите элементы матрицы:');
  69.   for i:=0 to n-1 do
  70.    begin
  71.      SetLength(a[i],n);
  72.    for j:=0 to n-1 do
  73. ///    Read(a[i,j]);
  74.       a[i,j]:=Random(3);
  75.     end;
  76.   writeln('Матрица*');
  77.   for i:=0 to n-1 do
  78.    begin
  79.     for j:=0 to n-1 do
  80.      write(a[i,j]:4 );
  81.      writeln;
  82.      end;
  83.   writeln('Вектор');
  84.   for i:=0 to n-1 do begin
  85.     v[i]:=MaxEq(a,i);
  86.     end;
  87.   for i:=0 to n-1 do begin
  88.    if v[i]=1 then v[i]:=0;
  89.    write(v[i]:4)
  90.   end; WriteLn;
  91.   readln;
  92. end.

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

Список действий в коде:

  1. Объявление типов данных для матрицы и вектора.
  2. Создание функции для поиска максимального элемента в строке матрицы.
  3. Создание процедуры для перестановки элементов в матрице.
  4. Создание процедуры для сортировки элементов в матрице.
  5. Инициализация вектора нулями.
  6. Сортировка элементов в матрице с помощью процедуры BubbleSort.
  7. Инициализация переменных для цикла.
  8. Проход по всем элементам матрицы и добавление единицы к индексу максимального элемента в соответствующем векторе.
  9. Сортировка элементов в каждом векторе с помощью процедуры BubbleSort.
  10. Вывод максимальных значений вектора.
  11. Ввод размера матрицы и заполнение ее элементами.
  12. Вывод матрицы на экран.
  13. Вычисление максимальных значений в каждой строке матрицы и запись их в вектор.
  14. Вывод значений вектора на экран.
  15. Ввод данных для матрицы и вектора.
  16. Завершение работы программы.

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


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

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

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

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

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

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