Witam,
otóż robię sobie zadanka ze strony Młodzieżowej Akademii Informatycznej. Trafiłem na takie, z którym mam problem, otóż za zadanie jest posortowanie współrzędnych. Sortowanie według współrzędnych X działa, natomiast z Y nic nie mogę wykombinować, próbowałem porównywać, czy [i][1] = [i+1][1] i jeżeli nie, to wtedy zamieniać ich kolejność, lecz nic z tego, wtedy w ogóle była kicha, prosiłbym więc o wskazówkę.
Druga sprawa, to użycie SetLength - http://4programmers.net/Delphi/SetLength
Użyłem tejże funkcji, lecz nie rozumiem, dlaczego od tego momentu muszę używać i jako zero, chociaż zdaję sobie sprawę że tak powinno być ( np. w c, c++ ), ale najzwyczajniej nie rozumiem dlaczego.
No dla przykładu wezmę pod lupę ten kod:
for j:= 0 to 1 do write(wsp[i-1][j],' ');
Dzięki za pomoc i pozdrawiam gorąco!
program punkty1;
uses crt;
var wsp:array of array of integer;
var n:integer;
procedure wczytaj_wsp;
var i: integer;
j,temp:integer;
begin
readln(n);
setlength(wsp, n, 2);
for i:=1 to n do
begin
for j:=0 to 1 do
begin
read(temp);
wsp[i-1][j] := temp;
end;
end;
end;
procedure wypisz_wsp;
var i:integer;
j:integer;
begin
for i:=1 to n do
begin
for j:= 0 to 1 do write(wsp[i-1][j],' ');
writeln;
end;
end;
procedure sortuj_wsp;
var i, m:integer;
j, temp, temp2:integer;
begin
for m:=1 to n-1 do
begin
for i:=1 to n-1 do
begin
for j:= 0 to 0 do
begin
if(wsp[i-1][j] > wsp[i][j]) then
begin
temp:= wsp[i][j];
temp2 := wsp[i][j+1];
wsp[i][j] := wsp[i-1][j];
wsp[i][j+1] := wsp[i-1][j+1];
wsp[i-1][j] := temp;
wsp[i-1][j+1] := temp2;
end;
end;
end;
end;
end;
begin
clrscr;
wczytaj_wsp;
sortuj_wsp;
clrscr;
wypisz_wsp;
readln;
readln;
end.