Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: CL | DM;

Вниз

Максимальный, да не тот...   Найти похожие ветки 

 
DeepProg ©   (2002-08-14 19:52) [0]

Описание:


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

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


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


 
TTCustomDelphiMaster ©   (2002-08-14 20:06) [1]

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


 
Jeer ©   (2002-08-14 22:58) [2]

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


 
DeepProg ©   (2002-08-15 16:50) [3]

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


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


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

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


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

>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;


 
TTCustomDelphiMaster ©   (2002-08-15 17:32) [6]

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

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;


 
DeepProg ©   (2002-08-15 19:11) [7]

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



Страницы: 1 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-85059
Bart
2002-08-14 13:34
2002.08.26
Реестр в 2000


14-85220
VEG
2002-07-29 18:49
2002.08.26
Куда катимся?


1-85093
lime
2002-08-14 22:58
2002.08.26
Символы в строках


14-85164
Mihail
2002-07-29 13:27
2002.08.26
Мастера, ПОМОГИТЕ, не могу установить.


1-85009
lovres
2002-08-15 16:59
2002.08.26
Как в DBNavigator е повесить свои картинки вместо - , + и т.д.