Показать сообщение отдельно
Старый 09.05.2012, 14:18   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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. Возникает вопрос: можно ли обойтись без вспомогательного массива и работать непосредственно с выходным? А пёс его знает, может быть и можно, просто я нарывался на глюки некоторых трансляторов, и во избежание предпочитаю работать со вспомогательными параметрами, а выходным присваивать значения только в самом конце.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070