Сформировать массив из последних попавшихся положительных элементов каждой нечетной строки матрицы - Pascal ABC

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

Двумерный массив t состоит из m=6 строк и n=3 столбцов. Надо сформировать массив из последних попавшихся положительных элементов каждой нечетной строки и их индексов в исходной матрице, если положительных элементов нет, результат должен быть равен 0. Вот кусок програмки, элементы выводит, номер столбца правильный, а строки нет. Помогите пожалуйста найти ошибку.
procedure obr(var t:pb; var s:pv; M,N:INTEGER;var max,min:real);
var i,j:integer;
 BEGIN      
  {-----формирование массива-------}
     FOR i:= 1 TO (m+1)DIV 2 DO begin
      for j:=1 to n do 
        if t^[(2*i-2)*n+3]>0 then begin
          s^[(i-1)*n+1]:=t^[(2*i-2)*n+3];
          s^[(i-1)*n+2]:=i;
          s^[(i-1)*n+3]:=j;
                             end
                        else               
          t^[(2*i-2)*n+3]:=0        
                                END;
for i:=1 to n do begin
      for j:=1 to 3 do 
        write(s^[(i-1)*n+j]:6:2);
        writeln; end;
end;

Код к задаче: «Сформировать массив из последних попавшихся положительных элементов каждой нечетной строки матрицы - Pascal ABC»

textual
const m=6;
      n=3;
type mtr=array[1..m,1..n] of integer;
procedure obr(t:mtr; var s:mtr);
var p,i,j:integer;
begin
{-----формирование массива-------}
for i:=1 to m do
 begin
  p:=0;
  j:=n;
  while(j>=1)and(p=0)do
  if t[i,j]>0 then p:=1
  else dec(j);
  if p=0 then
   begin
    s[i,1]:=0;
    s[i,2]:=0;
    s[i,3]:=0;
   end
  else
   begin
    s[i,1]:=t[i,j];
    s[i,2]:=i;
    s[i,3]:=j;
   end;
 end;
writeln('Последние положительные в строках и их индексы');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(s[i,j]:4);
  writeln;
 end;
end;
var a,b:mtr;
    i,j:integer;
begin
randomize;
writeln('Исходная матрица');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-10+random(21);
    write(a[i,j]:4);
   end;
  writeln;
 end;
obr(a,b);
end.

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


СОХРАНИТЬ ССЫЛКУ