procedure sort (var t:matrix);
var tmp:integer;
k:byte ;
begin
for i:=1 to 4 do<image> </image>
begin
for j:=1 to 3 do
for k:=j+1 to 4 do
if t[i][j]>t[i][k] then
begin
tmp:=t[i][k];
t[i][k]:=t[i][j] ;
t[i][j]:=tmp;
end;
no i wszystko by było łądnie gdyby..... nie to screen z programu
na początu wyświetliłem tabele(4*4) random 2000
następnie ja posortowałem podanym wyżej algorytmem
no i przez 1 3 wiersze tabeli wszystko działą jak przewiduje ale niespodzianka czeka mnie w wierszu 4
wg algorytmu powinien porównywać t[i][j]>t[i][k]
czyli komórke 4,1 porównać z 4,2 (632>1643 if nie spełniony wiec zostaje, potem 4,2 >4,3 wiec zamieni
potem 4,3 z 4,4 nie zamieni bo 4,3<4,4
wynik powinien wyglądać wiec tak
632, 137, 1640, 1643
a jak widzimy soruje to inaczej??
wymyśliłem ze taki efekt powinien byc gdy
if t[i][j]>t[i][k] then
begin
tmp:=t[i][k];
t[i][k]:=t[i][j] ;
t[i][j]:=tmp;
j:=0
end;
ale normalnie w kodzie tego nie ma :( ciągle myśle że mete przekroczyłem a jednak ja mam orzed oczami :(
wytłumaczcie prosze o co chodzi !!