Консультация № 109266
13.11.2007, 18:50
0.00 руб.
0 1 1
Здравствуйте!Помогите написать прогу на (Delphi).Дан двумерный массив. Определить минимальный элемент строк массива, а так же найти максимальный элемент столбца и поменять их местами...

Обсуждение

Неизвестный
15.11.2007, 23:57
общий
это ответ
Здравствуйте, Almas!

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

Вот код программы (<i>консольное приложение</i>), которая выполняет необходимые действия:
<code><b>program</b> Project1;

<font color=green>{$APPTYPE CONSOLE}</font>

<b>const</b> m=3; n=4;
<b>var</b> a:<b>array</b> [<font color=purple>1</font>..m,<font color=purple>1</font>..n] <b>of</b> real;
    i,j,imx,jmx,imn,jmn:integer;
    v:real;
<b>begin</b>
  randomize;
  <b>for</b> i:=1 <b>to</b> m <b>do</b>   <font color=green>//заполняем массив произвольными числами
</font>  <b>begin</b>
    <b>for</b> j:=1 <b>to</b> n <b>do</b>
    <b>begin</b>
      a[i,j]:=random(<font color=purple>100</font>);
      <b>write</b>(a[i,j]:6:1); <font color=green>//выводим сгенерированный массив на экран
</font>    <b>end</b>;
    writeln;
  <b>end</b>;
  imx:=1; jmx:=1;
  imn:=1; jmn:=1;
  <b>for</b> i:=1 <b>to</b> m <b>do</b> <font color=green>//ищем максимальный и минимальный элементы, если быть точнее то их индексы
</font>    <b>for</b> j:=1 <b>to</b> n <b>do</b>
    <b>begin</b>
      <b>if</b> a[imx,jmx] < a[i,j] <b>then</b> <b>begin</b> imx:=i; jmx:=j; <b>end</b>;
      <b>if</b> a[imn,jmn] > a[i,j] <b>then</b> <b>begin</b> imn:=i; jmn:=j; <b>end</b>;
    <b>end</b>;
  writeln;
  writeln(<font color=blue>‘min = a[‘</font>,imn,<font color=blue>‘,‘</font>,jmn,<font color=blue>‘] =‘</font>,a[imn,jmn]:5:1);
  writeln(<font color=blue>‘max = a[‘</font>,imx,<font color=blue>‘,‘</font>,jmx,<font color=blue>‘] =‘</font>,a[imx,jmx]:5:1);

  v:=a[imx,jmx]; <font color=green>//меняем минимальный и максимальный местами
</font>  a[imx,jmx]:=a[imn,jmn];
  a[imn,jmn]:=v;
  writeln;
  <b>for</b> i:=1 <b>to</b> m <b>do</b> <font color=green>//выводим видоизмененный массив на экран
</font>  <b>begin</b>
    <b>for</b> j:=1 <b>to</b> n <b>do</b> <b>write</b>(a[i,j]:6:1);
    writeln;
  <b>end</b>;

  readln;
<b>end</b>.</code>

Good Luck!!!

Приложение:
program Project1;{$APPTYPE CONSOLE}const m=3; n=4;var a:array [1..m,1..n] of real; i,j,imx,jmx,imn,jmn:integer; v:real;begin randomize; for i:=1 to m do //заполняем массив произвольными числами begin for j:=1 to n do begin a[i,j]:=random(100); write(a[i,j]:6:1); //выводим сгенерированный массив на экран end; writeln; end; imx:=1; jmx:=1; imn:=1; jmn:=1; for i:=1 to m do //ищем максимальный и минимальный элементы, если быть точнее то их индексы for j:=1 to n do begin if a[imx,jmx] < a[i,j] then begin imx:=i; jmx:=j; end; if a[imn,jmn] > a[i,j] then begin imn:=i; jmn:=j; end; end; writeln; writeln(‘min = a[‘,imn,‘,‘,jmn,‘] =‘,a[imn,jmn]:5:1); writeln(‘max = a[‘,imx,‘,‘,jmx,‘] =‘,a[imx,jmx]:5:1); v:=a[imx,jmx]; //меняем минимальный и максимальный местами a[imx,jmx]:=a[imn,jmn]; a[imn,jmn]:=v; writeln; for i:=1 to m do //выводим видоизмененный массив на экран begin for j:=1 to n do write(a[i,j]:6:1); writeln; end; readln;end.
Форма ответа