Помогите исправить программу Паскаль, чтоб выполнлись следующие условия, очень срочно: В массиве а(3,4) поменять местами строки с максимальным и минимальным элементом
const nmax=100;var a: array[1..nmax,1..nmax] of integer; i,j,m,n,min,max,i_max,j_max,i_min,j_min,tmp: integer;begin randomize; write('Введите размеры массива m, n: '); readln(m,n); writeln('Исходная матрица:'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=random(99)+1; write(a[i,j]:4); end; writeln; end; writeln;
min:=a[1,1]; max:=a[1,1]; i_min:=1; j_min:=1; i_max:=1; j_max:=1;
for i:=1 to m do for j:=1 to n do begin if a[i,j]>max then begin max:=a[i,j]; i_max:=i; j_max:=j; end; if a[i,j]<min then begin min:=a[i,j]; i_min:=i; j_min:=j; end; end;
writeln('Максимальный элемент: ',max,'[',i_max,',',j_max,']'); writeln('Минимальный элемент: ',min,'[',i_min,',',j_min,']'); tmp:=a[i_min,j_min]; a[i_min,j_min]:=a[i_max,j_max]; a[i_max,j_max]:=tmp;
writeln('Полученная матрица:'); for i:=1 to m do begin for j:=1 to n do write(a[i,j]:4); writeln; end; readln;end.

1

Ответы и объяснения

2013-11-23T23:17:07+04:00
Программа простая, но на паскале до неприличия жирная:

program test;
uses crt;
var
arr:array[1..3,1..4] of integer;
i,j,min,max,min_i,max_i,swp:integer;
begin
 clrscr;
 for i:=1 to 3 do
 begin
  for j:=1 to 4 do
  begin
   arr[i,j]:=random(100);
   write(arr[i,j],' ');
  end;
  writeln;
 end;
 min:=arr[1,1];max:=arr[1,1];
 min_i:=1;max_i:=1;
 for i:=1 to 3 do
  for j:=1 to 4 do
  begin
   if arr[i,j]>max then
   begin
   max:=arr[i,j];max_i:=i
   end;
   if arr[i,j]<min then
   begin
   min:=arr[i,j]; min_i:=i;
   end;
  end;
  writeln(min,' ',max);
  writeln(min_i,' ',max_i);
  for j:=1 to 4 do
   begin
    swp:=arr[min_i,j];
    arr[min_i,j]:=arr[max_i,j];
    arr[max_i,j]:=swp;
   end;
  for i:=1 to 3 do
   begin
    for j:=1 to 4 do
     write(arr[i,j],' ');
    writeln;
   end;
 readln;
end.