Я тоже абсолютно не секу в паскале, последний опыт у меня с ним был 13 лет назад. Но ваша проблема была в том, что вы не изменяли массив
g
, то есть ничего не записывали в него. Следовательно там были одни нули.
Я поправил, вроде правильно работает теперь:
uses crt;
const X = 2;
const Y = 6;
Type matrix = array[1..X, 1..Y] of integer;
Type arr = array[1..Y] of integer;
var D: matrix; p, t: integer;
var g: arr; k, min: integer;
procedure print_mtx(const a: matrix);
var i, j: integer; begin
for i:= 1 to X do begin
for j:= 1 to Y do write(a[i, j]:5);
writeln;
end;
end;
procedure print_arr(const a: arr);
var i: integer;
begin
for i:= 1 to Y do
write(a[i]:5);
end;
function trans(var a: matrix): integer;
var i, j: integer; begin
i:= 1;
for j:= 1 to Y do begin
if(a[i,j] >= a[i+1,j]) then begin
g[j]:= a[i,j];
write(a[i,j]:5);
end
else begin
g[j]:= a[i+1,j];
write(a[i+1,j]:5);
end;
end;
end;
begin
clrscr;
randomize;
for p:= 1 to X do
for t:= 1 to Y do D[p,t]:= random(50);
print_mtx(D);
writeln;
trans(D);
writeln;
writeln;
print_arr(g);
min:= g[1];
for k:= 1 to Y do if(g[k] < min) then min:= g[k];
writeln;
writeln;
write(min:5);
end.
Вызов
print_arr(g);
можно убрать, чтобы не выводить такую же строку, как выводит функция
trans