Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Максимальный, да не тот... [D6, WinME]


DeepProg ©   (2002-08-14 19:52:00) 

Описание:


var Massiv: Array of Double;
a,b:double;
...
a:=MaxValue(Massiv); // присваивается максимальное значения элемента в массиве

b:=MaxValue(Massiv); // должно присваиваться максимальное значение элемента в массиве, но это должен быть элемент отличный от присвоенного к переменной а.


Вопрос: КАК ЭТО СДЕЛАТЬ?


DeepProg   (2002-08-15 19:11:00) [1]

Хе-хе, спасибо, именно так я уже и сделал.


TTCustomDelphiMaster   (2002-08-15 17:32:00) [2]

Тогда уж лучше так

function _MaxValue2(const Data: array of Double; const Max1 :
Double): Double;
var
I: Integer;
begin
Result := Data[Low(Data)];
AIndex := Low(Data);
for I := Low(Data) + 1 to High(Data) do
if (Result < Data[I]) and (Data[I] < Max1) then
Result := Data[I];
end;


Skier   (2002-08-15 17:00:00) [3]

>DeepProg

Можно переписать этот MaxValue
(чтобы он возвращал ещё и индекс)

Как-то так :


function _MaxValue(const Data: array of Double; var AIndex :
Integer): Double;
var
I: Integer;
begin
Result := Data[Low(Data)];
AIndex := Low(Data);
for I := Low(Data) + 1 to High(Data) do
if Result < Data[I] then begin
Result := Data[I];
AIndex := I;
end; //if
end;


Ученик   (2002-08-15 16:58:00) [4]

А использовать TDoubleArray из Mxarrays.pas тут не пойдет (там сортировка есть) ?


DeepProg   (2002-08-15 16:50:00) [5]

Jeer,
если не трудно, напишите код, я об этом уже подумывал, но вот, как раз не дошел до того как конкретно это сделать, ведь чтобы присвоить найденному максимальному значению элемента минимальное значение, я должен знать его индекс в массиве...


Неужели мне только и остается, как сказал TTCustomDelphiMaster, пребирать все элементы вручную? Если это так, то Ваш код, конечно, не потребуется.


Jeer   (2002-08-14 22:58:00) [6]

Временно присвоить найденному максимальному значение минимальное значение, тогда MaxValue даст следующий максимальный элемент.
Шутка, но работает.


TTCustomDelphiMaster   (2002-08-14 20:06:00) [7]

Тогда нужно самому проверять все элементы в цикле. MaxValue как раз так и работает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо