Тема: паскаль !!!
Показать сообщение отдельно

  #4  
Старый 10.01.2008, 13:08
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Вроде бы в задании не сказано "обменять", написано "заменить", а про старое значение элемента массива ничего не упоминается, если я правильно понял. Можно и вот так
Код:
program laba1;

const
  maxrow = 3;
  maxcol = 4;

type
  TMass = array  [1..maxrow, 1..maxcol] of integer;

function FillArray : TMass;
var
  i, j : integer;
  a : TMass;
begin
  Randomize;
  for i := 1 to maxrow do
    for j := 1 to maxcol do
      a[i][j] := Random (1000) - 500;
  FillArray := a
end;

procedure PrintArray (a : TMass);
var
  i, j : integer;
begin
  for i := 1 to maxrow do
    for j := 1 to maxcol do
      writeln (a[i][j]);
  writeln ('=====');
end;

procedure FindMinMax (a : TMass; row : integer; var min : integer; var max : integer);
var
  j : integer;
begin
  for j := 1 to maxcol do begin
    if j = 1 then begin
      min := a [row][j];
      max := min;
    end
    else begin
      if min > a [row][j] then
        min := a [row][j];
      if max < a [row][j] then
        max := a [row][j];
    end;
  end;
end;

procedure ReplaceArr (var a : TMass; row, min, max : integer);
begin
  a[row][1] := min;
  a[row][maxcol] := max;
end;

var
  a : TMass;
  max, min, i : integer;

begin
  a := FillArray;
  PrintArray (a);
  for i := 1 to maxrow do begin
    ///max := FindMax (a, 3);
    ///writeln (max);
    FindMinMax (a, i, min, max);
    writeln (min);
    writeln (max);
    writeln ('=====');
    ReplaceArr (a, i, min, max);
  end;
  PrintArray (a);
end.
 
Ответить с цитированием