![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Максимальный, да не тот... [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 как раз так и работает.