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

Массивы в паскале
  #3  
Старый 04.12.2009, 20:48
Weman
Новичок
Регистрация: 05.03.2008
Сообщений: 16
С нами: 9570010

Репутация: 3
По умолчанию Массивы в паскале

Здравствуйте!!! Нужна Ваша помошь!
Дали такое задание на Pascale: используя подпрограммы-функции в массивах Х и У найти минимумы с учетом повторений и поменять их местами.

Вроде ничего сложного. Написал код, все работает!
Но никак не пойму, как переделать программу, чтобы получились функции...


Код:
Program MinXY;
Uses Crt;

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

{Function SearchMin: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;
     {********************************************}
     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;
     {********************************************}
     tmp:=x[PosXx,PosXy];
     x[PosXx,PosXy]:=y[PosYx,PosYy];
     y[PosYx,PosYy]:=tmp;
     {********************************************}
     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.
Я так понимаю должно наверно быть три функции:
1. Ввод массива (Х и У),
2. Поиск минимумов в массивах Х и Y
3. Замена минимумов местами


Подскажите, как можно переделать, а то не совсем разорбрался с функциями...
Заранее огромное спасибо!!!!!
 
Ответить с цитированием