09.05.2012, 14:01
|
#4 (permalink)
|
Member
Регистрация: 27.11.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
Сообщение от Vladimir_S
Ну вот Вам полное решение второй задачи:
Код:
const
nmax=10;
type
matr=array[1..nmax,1..nmax] of integer;
var
x1,x2:matr;
i,j:Integer;
procedure Sort(X1s:matr; var X2s:matr);
var
k,m,temp:integer;
XX:matr;// - не пойму что это
z:array[1..nmax] of integer;
begin
for k:=1 to nmax do
z[k]:=X1s[k,k]; //перезапись главной диагонали в дополнительную одномерную матрицу
for k:=1 to nmax do
for m:=1 to nmax-k do // зачем от максимального значение кол-ва столбцов(основной матрицы) отнимать размерность дополнительной матрицы? - зачем нам вложенный цикл. V ниже мы же оперируем только одномерной дополнительной матрицей.
if z[m]>z[m+1] then
begin
temp:=z[m];
z[m]:=z[m+1];
z[m+1]:=temp;
end;
XX:=X1s; // матрица хх становится копией Х1s?
for k:=1 to nmax do //заменяем в главной диагонали
XX[k,k]:=z[k];
X2s:=XX; //вот это не понятно
end;
begin
Randomize;
for i:=1 to nmax do
begin
for j:=1 to nmax do
begin
x1[i,j]:=50-Random(100);
write(x1[i,j]:4);
end;
writeln;
end;
writeln;
Sort(x1,x2);
for i:=1 to nmax do
begin
for j:=1 to nmax do
write(x2[i,j]:4);
writeln;
end;
readln
end.
|
комментарии корректны? поясните пожалст.
|
|
|