![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() вообщем есть табличка(матрица), в каждой ячейке таблички еще одна матрица. да)
Например в одной ячейке такая запись: Код:
8 2 9 4 4 4 а может быть такая: 8 2 5 9 4 4 4 4 8 вообщем задается динамически, но это не важно, за колво отвечает переменная m Мне из ячейки таблицы нужно удалить не эффективные оценки, т.к. если в ячейке такая запись: 8 2 9 4 То должно остаться только 9 4 так как все параметры одного больше другого. Вот мне нужно чтобы меня кто-то на мысль подтолкнул как это сделать, пробовал сделать что-то типа сортировки, но как-то все это не правильно, да и результат не тот: Код:
z = record k: array of array of double; // значения критериев end; t: array of array of z; ..... // тут нужно будет удалить не эффективные оценки for i:=0 to n-1 do // stroki for j:=0 to w-1 do // stolbcy - ves // бежим по матрице, у нас есть ячейка, теперь ломаем ячейку: begin for h:=0 to length(t[i,j].k)-1 do begin for b:=0 to length(t[i,j].k)-1 do begin if (eff(t[i,j].k[b],t[i,j].k[h]) = true) and (h<>b) then // если эффективна begin t[i,j].k[h] := t[i,j].k[length(t[i,j].k)-1]; setlength(t[i,j].k, length(t[i,j].k)-1, m); end; end; end; end; Код:
function eff(a,b:array of double):boolean; // оценка A эффективнее чем оценка B? var i:integer; begin result:=true; if length(a) = length(b) then begin for i:=0 to length(a)-1 do if a[i]>=b[i] then continue else begin result:=false; break; end; end else begin result:=false; //showmessage(' Ошибка! Размерность векторов отличается! '); end; end; ДО: ![]() ![]() Тут как видно удаляется не все. Там где несколько пробелов, а точнее три, это разделение ячеек на одной строке знаете почему внизу эскалатора бабка в будке сидит? она там педальки крутит и лесенка едет! Последний раз редактировалось SerginhoLD, 18.06.2011 в 16:45. |
#2
|
||||
|
||||
![]() эй, народ, как чего потяжелее ответить не можете?
знаете почему внизу эскалатора бабка в будке сидит? она там педальки крутит и лесенка едет! |