![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
скажем, есть 10-20 переменных в программе.
есть ли какой(я)-нибудь способ-фунция найти максимальное, 2ое значение из этих (списка) переменных без всяких циклов и сравнений? если нет то какой способ самый быстрый и лучший? еще бы неплохо было б запомнить какая именно переменная больше всех... |
|
#2
|
||||
|
||||
|
10-20 переменных похожего смысла надо объединять в массив. Тогда и не будет вопросов, как найти наибольшее. Иначе будет громадный и дико медленный алгоритм на пару листов кода.
Насчет "без всяких циклов и сравнений" вообще не понял - само слово "наибольшее" означает, что оно больше других, то есть его сравнение с остальными. Как можно сравнить с остальными, не сравнивая? И чем циклы не угодили - тоже вопрос.Если очень надо без циклов и без массива - то как-то так: Код:
var a,b,c,d,e,f,........:word;
max:integer;
...
max:=0;
if a>max then max:=a;
if b>max then max:=b;
if c>max then max:=c;
.........Последний раз редактировалось Bargest, 08.02.2012 в 15:48. |
|
#3
|
|||
|
|||
|
ну я думал как то так:
Код:
var a,b,c,d,e,f,........:word;
max:integer;
max:= какая то функция (a,b,c,d,e,f,........) |
|
#4
|
||||
|
||||
|
В таком случае
max:= max(a,max(b,max(c,max(d,max(..,..))))); Но, думаю, циклы и массивы лучше... |
|
#5
|
||||
|
||||
|
Код:
//-------finction----------- function MaxValue(ar: array of integer): Integer; var i: Itneger; begin Result := Low(ar); for i := Low(ar) to High(ar) do if Result > ar[i] then Result := ar[i]; end; //-------usage----------- ShowMessage(IntToSrt(MaxValue(a, b, c, d...,y,z))); |
|
#6
|
|||
|
|||
|
существуют Math.MaxValue(array):double, Math.MaxIntValue(array): int
|
|
#7
|
||||
|
||||
|
Не IntToSrt а floatToStr
Параметры нужно в квадратные скобки взять MaxValue([a, b, c, d...,y,z])) Но это все-равно и цикл, и массивы... |
|
#8
|
||||
|
||||
|
Цитата:
2. я указал, что писал на коленке. Про квадратные скобки просто забыл. Бывает. |