Вверх ↑
Этот топик читают: Гость
Ответов: 1379
Рейтинг: 86
#1: 2010-05-27 01:48:44 ЛС | профиль | цитата
Задача: нужно вычислить из нескольких чисел максимальное. Напр., 2 и 5 = 5 макс.
С двумя числами я решение нашел,
Add(Math,8432892,182,182)
{
OpType=39
}
а вот уже для больше не нашел. а надо вычислить из 4 чисел максимальное. и минимальное.
Может MathParse для этого нужен? Только вот какая формула туда нужна

Да, конечно, можно поставить три Math и считать по очереди, но может есть решение полегче?
карма: 0

0
Ответов: 3349
Рейтинг: 233
#2: 2010-05-27 08:34:14 ЛС | профиль | цитата
Можно попробовать так
code_18522.txt
------------ Дoбавленo в 08.29:
вот с парсером, лучше работает
Add(MainForm,2953706,21,105)
{
}
Add(Memo,10982409,112,91)
{
Left=145
Top=35
Width=185
Height=210
}
Add(Button,12264411,-14,203)
{
Left=15
Top=30
Width=95
Caption="максимальное"
link(onClick,13655480:doEnum,[])
}
Add(ArrayEnum,13655480,126,203)
{
link(onItem,3120774:doString,[])
link(onEndEnum,16600033:doReplace,[(230,216)(230,279)])
link(Array,10982409:Array,[])
}
Add(MathParse,5865038,539,266)
{
MathStr="max(1, 2 , 5, 99)"
Point(doMathStr)
link(onResult,9879602:doMessage,[])
}
Add(Message,9879602,623,266)
{
}
Add(FormatStr,3120774,196,203)
{
DataCount=1
Mask="%1, "
Point(FString)
link(onFString,7319067:doAdd,[])
}
Add(StrList,7319067,301,203)
{
}
Add(Replace,16600033,301,273)
{
SubStr="
"
link(onReplace,2574842:doTrim,[])
link(Str,7319067:Text,[])
}
Add(Trim,8843756,392,273)
{
Char=","
link(onTrim,13227665:doString,[])
}
Add(Hub,2043937,497,273)
{
link(onEvent1,5865038:doMathStr,[])
link(onEvent2,5865038:doCalc,[(525,286)(525,272)])
}
Add(FormatStr,13227665,434,273)
{
DataCount=1
Mask="max(%1)"
Point(FString)
link(onFString,2043937:doEvent1,[])
}
Add(Trim,2574842,343,273)
{
Char=" "
link(onTrim,8843756:doTrim,[])
}


------------ Дoбавленo в 08.34:
МАХ замени на Min и он тебе самое маленькое найдет.
карма: 1

0
файлы: 1code_18522.txt [2KB] [142]
Разработчик
Ответов: 26151
Рейтинг: 2127
#3: 2010-05-27 10:13:09 ЛС | профиль | цитата
Ivann писал(а):
Можно попробовать так

Хм... Маразм крепчал.

petrocan писал(а):
Может MathParse для этого нужен?

Может


Add(MathParse,2751500,287,168)
{
DataCount=4
MathStr="min(%1,%2,%3,%4)"
}

Ну не судьба, видимо, в справку заглянуть

Ivann писал(а):
вот с парсером, лучше работает

Действительно, лучше. Вот только остальное там зачем

Задача-то конкретная была

petrocan писал(а):
надо вычислить из 4 чисел максимальное. и минимальное

карма: 22

0
Ответов: 1379
Рейтинг: 86
#4: 2010-05-27 10:18:23 ЛС | профиль | цитата
nesco писал(а):
Ну не судьба, видимо, в справку заглянуть

а где там описание этого? в упор не вижу MathParse
------------ Дoбавленo в 10.18:
блин, на сайте в вики есть
вопрос: а почему нет в локальной справке?
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#5: 2010-05-27 10:30:05 ЛС | профиль | цитата
petrocan писал(а):
а где там описание этого? в упор не вижу

Плохо смотришь -- 34-й и 35-й пункты в локальной справке по F1, вот только что по ней пересчитал пункты
------------ Дoбавленo в 10.30:
Ravilr, это ты косячный пример по max, min с примером применения совсем других компонентов засунул, пришлось править
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#6: 2010-05-27 10:47:01 ЛС | профиль | цитата
nesco,
Задача: В схеме есть три счетчика. Нужно определить номер счетчика с максимальным результатом.
Применил MathStr="((%1>%2)*(%1>%3))*1 + ((%2>%1)*(%2>%3))*2 + ((%3>%1)*(%3>%2))*3"
Больше ничего в голову не пришло
Может посоветуешь что-то попроще ?


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4641
Рейтинг: 334
#7: 2010-05-27 10:56:21 ЛС | профиль | цитата
nesco писал(а):
Ravilr, это ты косячный пример по max, min

nesco, там были два примера, сейчас уже и не вспомню какие. Все добавления примеров туда были согласованы с тобой.
------------ Дoбавленo в 10.56:
а все нашел. Да...пример с не теми компонентами там оказался почему то...
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3349
Рейтинг: 233
#8: 2010-05-27 11:39:41 ЛС | профиль | цитата
Ravilr, твой пример работает только с 4 значениями, а мой сколько угодно, он список цифр форматирует.
Так :

    1
    2
    3
    4
    5
    6
    7
    8
    9
Преобразует в

    Max(1, 2, 3, 4, 5, 6, 7, 9)
карма: 1

0
Ответов: 970
Рейтинг: 270
#9: 2010-05-27 11:45:48 ЛС | профиль | цитата
Можно и с doSort - и максимальное и минимальное вычислить из любого количества цифр.

code_18524.txt
карма: 0

0
файлы: 1code_18524.txt [1KB] [152]
Ответов: 3349
Рейтинг: 233
#10: 2010-05-27 11:51:53 ЛС | профиль | цитата
Можно, но с MathParse лучше.
Сортировка не поможет при сравнение выражений.
карма: 1

0
Ответов: 8926
Рейтинг: 823
#11: 2010-05-27 15:35:25 ЛС | профиль | цитата
Tad, хоть попроще, хоть посложнее code_18529.txt
карма: 19

0
файлы: 1code_18529.txt [8.9KB] [122]
Разработчик
Ответов: 26151
Рейтинг: 2127
#12: 2010-05-27 15:41:12 ЛС | профиль | цитата
Леонид писал(а):
хоть попроще, хоть посложнее

Офигеть. Нет слов, одни эмоции. А все говорят, что я тут гигант (по размерам схем) мысли
карма: 22

0
Ответов: 8926
Рейтинг: 823
#13: 2010-05-27 15:50:05 ЛС | профиль | цитата
nesco, [flood]Предполагал такую реакцию, поэтому специально "леща" подкинул в схеме [/flood]
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#14: 2010-05-27 16:02:59 ЛС | профиль | цитата
Леонид, ну даёшь
nesco, ты прав - я офигел.
решил вот так. (ничего более умного не придумал )
Оказывается всего 12-ю вопросами можно коечто определить .
------------ Дoбавленo в 16.02:
nesco, всё время хочу спросить, где хранишь свою аватарку - появляется секунд через 3-5 после отрисовки странички (я уже сообщения три успеваю прочитать - читаю я очень быстро.)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1lich.rar [4.6KB] [92]
Разработчик
Ответов: 26151
Рейтинг: 2127
#15: 2010-05-27 16:19:34 ЛС | профиль | цитата
Tad писал(а):
где хранишь свою аватарку

На форуме, в своей личке
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)