Цитата:
Сообщение от ayPinki
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;
|
Всё это вместе - реализация упорядочения одномерного массива так называемым "методом пузырька". Попробуйте разобраться в нем самостоятельно: представьте себе наглядно всю процедуру.
Цитата:
Сообщение от ayPinki
X2s:=XX; //вот это не понятно
|
Суть вот в чем.
Внутри процедуры мы вводим вспомогательный массив ХХ того же типа, что и входной (и выходной) массивы X1s и X2s. В начале процедуры мы копируем в этот ХХ входной массив X1s (тут Вы абсолютно правы), а потом начинаем этот самый ХХ всяко-разно курочить, в данном случае, заменять в нем диагональ. А уже преобразовав его к нужному виду, мы копируем его в выходной массив X2s. Возникает вопрос: можно ли обойтись без вспомогательного массива и работать непосредственно с выходным? А пёс его знает, может быть и можно, просто я нарывался на глюки некоторых трансляторов, и во избежание предпочитаю работать со вспомогательными параметрами, а выходным присваивать значения только в самом конце.