Показать сообщение отдельно

  #1963  
Старый 05.12.2009, 00:51
Syntaxys
Познающий
Регистрация: 02.09.2007
Сообщений: 67
Провел на форуме:
521298

Репутация: 20
По умолчанию

Veman

Код:
Program MinXY;
Uses Crt;

Const
     MSize=10;
     n=2;
     m=3;
Type mas=array[1..n, 1..m] of Integer;
Var
   x,y:mas;
   {n,m:Integer;}
   tmp:Integer;
   i,j,Vvodim,iskat,zamenit:Integer;
   PosXx, PosXy:Integer;
   PosYx, PosYy:Integer;
   ValX, ValY:Integer;


Function Vvod(Var x:mas; Var y:mas):integer;
Begin
ClrScr;
     {********************************************}
     Writeln('Ввод массива Х!!!');
     for i:=1 to n do
         for j:=1 to m do
         begin
              Write('x[',i,'][',j,'] -> ');
              Readln(x[i,j]);
         end;
     Writeln;

     Writeln('Ввод массива Y!');
     for i:=1 to n do
         for j:=1 to m do
         begin
              Write('y[',i,'][',j,'] -> ');
              Readln(y[i,j]);
         end;
     {********************************************}
     Writeln;
     Writeln('Массив Х!');
     for i:=1 to n do
     begin
         for j:=1 to m do
             Write(x[i,j],' ');
         Writeln;
     end;
     Readln;

     Writeln('Массив  Y!');
     for i:=1 to n do
     begin
         for j:=1 to m do
             Write(y[i,j],' ');
         Writeln;
     end;
     Readln;
End;

///////////////////////////////////////////////////////
Function Poisk(x:mas; y:mas; Var PosXx:integer; Var PosXy:integer):integer;
Begin
 ValX:=x[1,1];
     PosXx:=1;
     PosXy:=1;
     for i:=1 to n do
     begin
         for j:=1 to m do
             if x[i,j]<=ValX then
             begin
                  ValX:=x[i,j];
                  PosXx:=i;
                  PosXy:=j;
             end;
     end;
     Writeln('Найден минимум в массиве Х!');
     Writeln('Значение минимума: ',ValX);
     Writeln('Строка  ',PosXx);
     Writeln('Столбец  ', PosXy);
     Readln;

     ValY:=y[1,1];
     PosYx:=1;
     PosYy:=1;
     for i:=1 to n do
     begin
         for j:=1 to m do
             if y[i,j]<=ValY then
             begin
                  ValY:=y[i,j];
                  PosYx:=i;
                  PosYy:=j;
             end;
     end;

     Writeln('Найден минимум в массиве Y!');
     Writeln('Значение минимума:',ValY);
     Writeln('Строка  ',PosYx);
     Writeln('Столбец  ', PosYy);
     Readln;
end;

/////////////////////////////////////////////////////
Function Zamena(Var x:mas; Var y:mas; PosXx,PosYx:integer):integer;
Begin
     tmp:=x[PosXx,PosXy];
     x[PosXx,PosXy]:=y[PosYx,PosYy];
     y[PosYx,PosYy]:=tmp;
End;



Begin
vvodim:=Vvod(x,y);
iskat:=poisk(x,y,PosXx,PosXy);
zamenit:=zamena(x,y,PosXx,PosYx);
     Writeln;
     Writeln('Массив Х!');
     for i:=1 to n do
     begin
         for j:=1 to m do
             Write(x[i,j],' ');
         Writeln;
     end;
     Readln;

     Writeln('Массив Y!');
     for i:=1 to n do
     begin
         for j:=1 to m do
             Write(y[i,j],' ');
         Writeln;
     end;
     Readln;
End.
Единственное что не помню, можно ли функции както по-другому вызвать.

Последний раз редактировалось Syntaxys; 05.12.2009 в 01:33..
 
Ответить с цитированием