Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
1-85097
dmtr
2002-08-14 15:34
2002.08.26
Windows 2000 Advanced Server


1-85101
vuk
2002-08-15 00:41
2002.08.26
Вопрос по ToolsAPI


3-84888
vasilly
2002-08-02 17:36
2002.08.26
Как вывести дату без времени(21.01.2002) а не 21.01.2002 18:00:00


1-85060
shubin
2002-08-14 12:28
2002.08.26
Вычислить формулу!


1-85079
Schema
2002-08-14 16:30
2002.08.26
StringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский