Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Помогите Двухмерный массив и процедура


Автор: IGOR15061 15.12.2005, 22:03
Задачка: Двухмерный массив (обязательный ввод и вывод самого массива и размерности), нужно чтобы находился максимальный элемент (вывод самого и его индексов), но обязательно через применение процедуры. Я не силен в применении процедуры, но надо!!! Нужно замутить так чтобы процедура состояла из отбора максимального значения и соответственоо его индексов.

Автор: Fedor 15.12.2005, 23:28
Цитата(IGOR15061 @ 15.12.2005, 22:03)
Я не силен в применении процедуры

Употребление процедуры:
Код

procedure A ({список формальных параметров})
begin

  {тело процедуры}
  {...........................}

end;

begin
{Ввод данных, подготовительные работы}

{Вызов процедуры:}
A({фактические параметры});

{вывод результата работы}
end.

Автор: СветLana 16.12.2005, 12:56
В твоем случае можно попробывать так
Код

type Mas= array [1..1], [1...1] of Integer;
....
procedure Poisk (X:Mas, St:Integer, Col:Integer, Itog:Mas);
begin
 {алгоритм поиска}
Itog:=....
end.

begin
var Y:Mas; St,Col: Integer;
{ввод данных в Y, St, Col}
Itog:=0
Poisk(Y, St,Col, Itog);
{выыод Itog}

Автор: darkart 17.12.2005, 00:28
Вотс
Код

program MaxNumIJ;
const
  n=3;{размерность}
type
  TMatrix=array[1..n,1..n] of integer;
procedure InputMatrix(var Matrix:TMatrix);
{ввод}
var
  i,j:integer;
begin
  writeln('Please enter matrix(',n,'x',n,'):');
  for i:=1 to n do
  begin
    for j:=1 to n-1 do
      read(Matrix[i,j]);
    readln(Matrix[i,n]);
  end;
end;
procedure PrintMatrix(var Matrix:TMatrix);
{вывод}
var
  i,j:integer;
begin
  for i:=1 to n do
  begin
    for j:=1 to n-1 do
      write(Matrix[i,j],' ');
    writeln(Matrix[i,n]);
  end;
end;
procedure FindMax(var Matrix:TMatrix;var max,indexi,indexj:integer);
{поиск макс эл-та и его индексов}
var
  i,j:integer;
begin
  indexi:=1;
  indexj:=1;
  max:=Matrix[indexi,indexj];
  for i:=1 to n do
    for j:=1 to n do
      if Matrix[i,j]>max then
      begin
        max:=Matrix[i,j];
        indexi:=i;
        indexj:=j;
      end;
end;
var
  max,i,j:integer;
  Matrix:TMatrix;
begin
  InputMatrix(Matrix);
  writeln('Source matrix:');
  PrintMatrix(Matrix);
  FindMax(Matrix,max,i,j);
  writeln('First max element is ',max,' in Matrix[',i,',',j,']');
  readln;
end.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)