Не пойму, в чём ошибка при сортировке матрицы. Читаю из файла матрицу, всё ок. Но после сортировки на местах элементов появляются числа типа 15358. Помогите
procedure k1(n:integer;x:mat;k2:string;var z:mat); var i,j,l,k,t:integer; b:array [1..10] of integer; begin if (k2='>') then begin k:=0; for i:=1 to n do for j:=1 to n do begin k:=k+1; b[k]:=x[i,j]; end; for l:=k downto 2 do for i:=1 to k-1 do if (b[i+1]>b[i]) then begin t:=b[i];b[i]:=b[i+1];b[i+1]:=t; end; k:=0; For i:=1 to n do for j:=1 to n do begin k:=k+1;x[i,j]:=b[k]; end; end;
мисс_граффити
20.12.2006 2:10
ты что делаешь? у тебя запрет на изменение х. какой нафиг
либо писать var x: mat, либо результат записывать в непонятно для чего предназначенную z (второе - если хочешь сохранить в неприкосновенности исходный массив)
MyNameIs
20.12.2006 2:38
Цитата(MyNameIs @ 19.12.2006 22:03)
Не пойму, в чём ошибка при сортировке матрицы. Читаю из файла матрицу, всё ок. Но после сортировки на местах элементов появляются числа типа 15358. Помогите
procedure k1(n:integer;x:mat;k2:string;var z:mat); var i,j,l,k,t:integer; b:array [1..10] of integer; begin if (k2='>') then begin k:=0; for i:=1 to n do for j:=1 to n do begin k:=k+1; b[k]:=x[i,j]; end; for l:=k downto 2 do for i:=1 to k-1 do if (b[i+1]>b[i]) then begin t:=b[i];b[i]:=b[i+1];b[i+1]:=t; end; k:=0; For i:=1 to n do for j:=1 to n do begin k:=k+1;x[i,j]:=b[k]; end; for i:=1 to n do for j:=1 to n do z[i,j]:=x[i,j]; end;
For i:=1 to n do for j:=1 to n do begin k:=k+1;x[i,j]:=b[k]; end; for i:=1 to n do for j:=1 to n do z[i,j]:=x[i,j];
зачем???
For i:=1 to n do for j:=1 to n do begin k:=k+1;z[i,j]:=b[k]; end;
покажи, как вызываешь эту процедуру. то есть текст программы полностью приведи.
MyNameIs
20.12.2006 3:40
это из юнита.
procedure k1(n:integer;x:mat;k2:string;var z:mat); var i,j,l,k,t:integer; b:array [1..10] of integer; begin if (k2='>') then begin k:=0; for i:=1 to n do for j:=1 to n do begin k:=k+1; b[k]:=x[i,j]; end; for l:=k downto 2 do for i:=1 to k-1 do if (b[i+1]>b[i]) then begin t:=b[i];b[i]:=b[i+1];b[i+1]:=t; end; k:=0; For i:=1 to n do for j:=1 to n do begin k:=k+1;x[i,j]:=b[k]; end; end; if (k2='<') then begin k:=0; for i:=1 to n do for j:=1 to n do begin k:=k+1; b[k]:=x[i,j]; end; for l:=k downto 2 do for i:=1 to k-1 do if (b[i+1]<b[i]) then begin t:=b[i];b[i]:=b[i+1];b[i+1]:=t; end; k:=0; For i:=1 to n do for j:=1 to n do begin k:=k+1;x[i,j]:=b[k]; end; end; for i:=1 to n do for j:=1 to n do z[i,j]:=x[i,j]; end;
это сама прога
program Modul; uses crt,D11D; var A,B,C,A1,B1,C1,T,T1:mat; i,j,n,n11,s,v:integer; ab,ac,ad:string; l:string;