Номер стоки и столбца в матрице

Black Angel

Дана целочисленная матрица размерностью МхN. Вывести номер её первой(последней) строки(столбца), содержащие максимальное количество одинаковых элементов. Решал что-то но совсем запутался.
program Project2;
  SysUtils;
  const n=3;
        m=4;
type massive=array[1..n,1..m] of integer;
var a:massive;
    b:vector;
    i,j,k,max:integer;
begin
randomize;
for i:=1 to n do
   begin
   for j:=1 to m do
     begin
     a[i,j]:=random(k);
     writeln(a[i,j]:3);
     end;
   writeln;
   end;
writeln;
max:=3;
for i:=1 to n do
  begin
  k:=0;{êîëè÷åñòâî îäèГ*Г*êîâûõ ýëåìåГ*òîâ Гў ГІГҐГЄГіГ№ГҐГ© ñòðîêå}
  if a[i,j]=a[i,j+1] then k:=k+1 {ïîäñ÷åò êîëè÷åñòâГ* îäèГ*Г*êîâûõ ýëåìåГ*òîâ Гў Г¬Г*Г±Г±ГЁГўГҐ}
  if k<=max then
    begin
 
end.
P.S. Если можно то с комментариями
2 ответа

Black Angel

К примеру для строк: 1. во-первых должно быть глобальное максимальное количество одинаковых элементов, пусть будет maxrep=0; 2. во-вторых номера первой и последней строк, в которых элементы повторяются maxrep раз, пусть будет startrow=0 и endrow=0. 3. нужно максимальное количество повторений для текущей строки - rowrep=0. 4. и количество повторений для текущего элемента строки (будем делать обход по строке и считать, сколько раз каждый элемент повторяется) - itemrep=0. 5. Итак, поехали: Все по нулям; Цикл по строкам __Цикл по элементам ____Еще один цикл по всем элементам, за исключением текущего (зачем сравнивать его с самим собой) ______Посчитали сколько совпадений у текущего элемента (при таком алгоритме одинаковые элементы будут считаться несколько раз, но ты на этом много не потеряешь) и записали это значение в itemrep ____Если itemrep > rowrep, то rowrep := itemrep __Все в данном месте мы знаем максимальное количество повторений по строке, теперь его можно сравнить с maxrep: если rowrep > maxrep, то maxrep := rowrep, а в startrow записываем номер текущей строки, причем если endrow = 0, то и в него записываем номер текущей строки, если же rowrep = maxrep, то только в endrow записываем номер текущей строки. Ну вот все, на выходе имеем startrow и endrow, надеюсь алгоритм ясен, для столбцов аналогично - программу пиши сам, ничего сложного там нет.


Black Angel

bashkos, еще вопрос. В моей программе правильно записано заполнение массива случайными числами? У меня выводит только ноль(