Помощь - Поиск - Пользователи - Календарь
Полная версия: Двумерный массив!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-SlipKnoT-
Помогите пожалуйста с решением задачки.
Ввести двумерный массив A[N,M]. В каждой строке массива упорядочить элементы, стоящие после минимального элемента.
Есть кое какие наброски, но цикл не работает.

Код
Program ZAD_0;
uses crt;
var i,j,p,n,m,k,l,jmin:integer;
    A: array [1..10, 1..15] of real;
    f:real;
    min:real;
begin
clrscr;
  write ('N='); readln(n);
  write ('M='); readln(m);
    for i:=1 to n do
     begin
     writeln;
    for j:=1 to m do
    read (a[i,j]);
     end;
    for i:=1 to n do
     begin
    for j:=1 to m do
      write (a[i,j]:8:3 );
      writeln;
    end;
    for i:=1 to n do
     jmin:=1;
    for j:=2 to m do
    begin
     if a[i,j]<a[i,jmin] then jmin:=j;
     writeln(jmin);
    end;
       writeln;
       writeln;
    for i:=1 to n do begin
     for j:=jmin+1 to m do begin
     if a[i,j+1]<a[i,j] then begin
      f:=a[i,j];
      a[i,j]:=a[i,j+1];
      a[i,j+1]:=f;
      end;
      end;
      end;
     for i:=1 to n do begin
      for j:=1 to m do begin
     write (a[i,j]:8:3);
      end;
      end;
readkey;
end.






-SlipKnoT-
Ну помогите плз mega_chok.gif , завтра отчитывать, а она даже не пашет((
Client
Цитата
В каждой строке массива упорядочить элементы

Как упорядочить? По возрастанию,убыванию? или еще как?
-SlipKnoT-
Цитата(Client @ 20.11.2007 20:19) *

Как упорядочить? По возрастанию,убыванию? или еще как?

Сори забыл) по - возрастанию...
-SlipKnoT-
Откликнитесь кто нибудь... нужно то всего лишь пару циклов подправить)) у мя просто уже скила прокаченного не хватает на их дороботку)
klem4
разбираться в коде сил нету, так что держи мой вариант:

uses crt;

const
n = 10;

type
TMatrix = array [1..n, 1..n] of Integer;

procedure CreateMx(var mx: TMatrix);
var
i, j: Byte;
begin
randomize;

for i := 1 to n do
for j := 1 to n do
mx[i, j] := random(100);
end;

procedure PrintMx(const mx: TMatrix);
var
i, j: Integer;
begin
writeln;
for i := 1 to n do begin
writeln;
for j := 1 to n do write(mx[i, j]:4);
end;
end;


function GetMinCol(const mx: TMatrix; const row: Byte): Byte;
var
col, i: Byte;
begin
col := 1;
for i := 2 to n do
if mx[row, i] < mx[row, col] then
col := i;
GetMinCol := col;
end;

procedure SortRow(var mx: TMatrix; const row, start: byte);
var
i, j: Byte;
T: Integer;
begin
for i := n downto start + 1 do
for j := start + 1 to i - 1 do
if not (mx[row, j] <= mx[row, j + 1]) then begin
T := mx[row, j]; mx[row, j] := mx[row, j + 1]; mx[row, j + 1] := T;
end;
end;

procedure SortMX(var mx: TMatrix);
var
i: Byte;
begin
for i := 1 to n do
SortRow(mx, i, GetMinCol(mx, i));
end;


var
mx: TMatrix;
begin
CreateMx(mx); PrintMx(mx); SortMx(mx); PrintMx(mx);
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.