Помощь - Поиск - Пользователи - Календарь
Полная версия: Подпрограмма
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Atreides
Народ, подскажите, как будет выглядеть подпрограмма нахождения минимума матрицы, через процедуру, которую нужно просто дописать вот к этому коду?

Код
program Matrix;
uses
 SysUtils;
 Type TMatrix=array[1..100,1..100] of integer;
 var x:TMatrix;
 procedure inputmatrix(var a:TMatrix;m,n:cardinal);
 var i,j:cardinal;
 begin
 i:=1;    repeat
 j:=1;    repeat
 a[i,j]:=random(999);
 j:=j+1;  until
 j>m;
 i:=i+1;  until
 i>n;    end;
 procedure outputmatrix(a:TMatrix;m,n:cardinal);
 var i,j:cardinal;
 begin
 i:=1;   repeat
 j:=1;   repeat
 write(a[i,j]:6);
 j:=j+1; until
 j>m;
 i:=i+1; writeln;
 until  i>n;
 end;
 begin
 inputmatrix(x,10,10);
 outputmatrix(x,10,10);
 readln;
 end.
volvo
Цитата(Atreides @ 18.03.05 19:51)
как будет выглядеть подпрограмма нахождения минимума матрицы, через процедуру

Ну, наверное все-таки через функцию... Раз минимум - то одно число, его можно вернуть и функцией:
Код
function minimum_matrix(a:TMatrix;m,n:cardinal): integer;
var i,j:cardinal;
     min_val: integer;
begin
min_val := a[1, 1];
i:=1;   repeat
j:=1;   repeat
if min_val > a[i, j] then min_val := a[i, j];
j:=j+1; until
j>m;
i:=i+1; writeln;
until  i>n;
result := min_val
end;

Я написал функцию в том же стиле, что и те 2 процедуры, но все-таки стоит обратить внимание на For... С ним гораздо удобнее работать...
Atreides
А как заставить её находить максимум всей матрицы? И как я понял, конечный код выглядит так?
Код
program Matrix;
uses
 SysUtils;
 Type TMatrix=array[1..100,1..100] of integer;
 var x:TMatrix;
 procedure inputmatrix(var a:TMatrix;m,n:cardinal);
 var i,j:cardinal;
 begin
 i:=1;    repeat
 j:=1;    repeat
 a[i,j]:=random(999);
 j:=j+1;  until
 j>m;
 i:=i+1;  until
 i>n;    end;
 procedure outputmatrix(a:TMatrix;m,n:cardinal);
 var i,j:cardinal;
 begin
 i:=1;   repeat
 j:=1;   repeat
 write(a[i,j]:6);
 j:=j+1; until
 j>m;
 i:=i+1; writeln;
 until  i>n;
 end;
   function minimum_matrix(a:TMatrix;m,n:cardinal): integer;
 var i,j:cardinal;
 min_val: integer;
 begin
 min_val := a[1, 1];
 i:=1;   repeat
 j:=1;   repeat
 if min_val > a[i, j]
 then min_val := a[i, j];
 j:=j+1; until
 j>m;
 i:=i+1;
 write(min_val);
 writeln;
 until  i>n;
 result := min_val;
 end;
 begin
 inputmatrix(x,10,10);
 minimum_matrix(x,10,10);
 outputmatrix(x,1,1);
 readln;
 end.
Atreides
blink.gif А какой командой в Delphi можно менять цвет шрифта и фона? Если можно с примером? :molitva:
volvo
Цитата(Atreides @ 26.03.05 13:08)
А какой командой в Delphi можно менять цвет шрифта и фона? Если можно с примером?

Это описано в Delphi Help и DRKB... Качайте и смотрите...
Atreides
Help somebody!
Как найти максимум всей матрицы? А то у меня получается максимум каждой строки...
volvo
А посмотреть пост №2, и заменить " if min_val > a[i, j] then min_val := a[i, j];" на

Код
if max_val < a[i, j] then max_val := a[i, j];

(ну и поменять названия переменных, естественно) - нельзя догадаться?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.