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

Вниз

Как проще в массиве найти минимальное и максимальное значение ?   Найти похожие ветки 

 
Кен   (2003-01-18 04:44) [0]

Чую, что есть какая то функция, но как она называется ? Числа - Extended. Массив трёхмерный. Подскажите, пожалуйста !


 
Думкин   (2003-01-18 09:17) [1]

В одномерном случае в модуле Math есть функции MaxValue,MinValue.
Посмотри тамошнюю реализациию - и реализуй свою.


 
Думкин   (2003-01-18 09:39) [2]

Посмотрел.
Реализация оригинальностью не отличается - стандартно.
Поэтому пиши свою - в три цикла. :-)


 
Sha   (2003-01-18 10:45) [3]

> Кен (18.01.03 04:44)
> Как проще в массиве найти минимальное и максимальное значение ?

Проще не искать :). Откуда в нем берутся значения? Если заносишь сам, то по ходу дела и определяй все, что надо.

Если все же надо искать, то напиши свою процедуру, которая за один проход ищет оба значения.

Если массив маленький, а ищешь часто, подумай об отимизации.
Внутренний цикл делай по самому большому измерению, внешний - по самому малому. Еще лучше переопределить массив через absolute и рассчитать все по единственному мзмерению.


> Думкин © (18.01.03 09:39)
> ...Поэтому пиши свою - в три цикла. :-)

В три цикла - не круто, можно в один (пример для целых чисел):

procedure TForm1.Button1Click(Sender: TObject);
type
TMinMaxFunc=function(Data: pointer; Bound: Integer): Integer;
const
m=10; n=10; k=10;
var
f: TMinMaxFunc;
a: array[1..m,1..n,1..k] of integer;
begin
@f:=@MaxIntValue; Showmessage(IntToStr(f(@a[1,1,1],m*n*k-1)));
end;


 
Думкин   (2003-01-18 11:06) [4]


> Sha © (18.01.03 10:45)
> В три цикла - не круто, можно в один (пример для целых чисел):

Иногда важнее не крутота - а понимание того что делаешь. :-)


 
Sha   (2003-01-18 11:09) [5]

> Думкин © (18.01.03 11:06)
> Иногда важнее не крутота - а понимание того что делаешь. :-)

Согласен. Но тут вроде никто не говорил, что у него с этим проблемы. :-)



 
- Tsatur -   (2003-01-19 01:55) [6]

var
a:array[1..10,1..10,1..10] of integer
x:extended;
i,j,k:integer;

begin
x:=0;
for i:=1 to 10 do
for j:=1 to 10 do
for k:=1 to 10 do
if x< a[i,j,k] then x:=a[i,j,k]


 
Кен   (2003-01-19 05:39) [7]

Спасибо за помощь !



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

Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-86629
Explorer
2003-01-10 12:02
2003.01.27
EhDBGrid: сортировка


14-87140
VictorT
2003-01-10 12:34
2003.01.27
Как выразить формулой?


14-87047
Fog
2003-01-11 15:24
2003.01.27
Где...


14-87138
Stexen
2003-01-10 00:35
2003.01.27
Исходники от UPX!!!!!!


6-86990
kalishenko stas
2002-11-28 14:19
2003.01.27
Sockets и Internet





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский