Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2009-08-24 14:54:31 ЛС | профиль | цитата
Сравнивает множество аргументов по маске, данные записывать в виде "(аргумент 1231) = (авыва) = %1; %2 = %3", где %# - данные с точки, (*) - внутренние данные, ; - конец блока. Результат выдается в формате "%1, ...", где %# - результат операции сравнения(1 или 0) в блоке #.
Пример использования в архиве
  
Спасибо, Dilma, помог
If-Else Multi:
[burl=http://www.hiasm.com/xf//getfile/14791]Скачать последнюю версию[/burl]
карма: 10
0
файлы: 1if_else_multi.rar [2.7KB] [408]
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-08-25 16:37:47 ЛС | профиль | цитата
Оптимизировал код, убрал ненужные моменты, устранил неточность в сравнении двух и более аргументов
Теперь компонент работает безотказно!
------------ Дoбавленo в 18.38:
Хихи! Безотказно, но долга, вычисление операндов никуда не годится Можете посоветовать что-нибудь
карма: 10
0
файлы: 1if_else_multi.rar [2.8KB] [261]
Разработчик
Ответов: 4698
Рейтинг: 426
#3: 2009-08-27 15:57:23 ЛС | профиль | цитата
If_Else_Multi v2.0, совместимость конечно потеряна, да только скорость работы увеличена в разы, по сравнению с предыдущим(цикл в 100000 интеграций If_else_multi ~ 24.000 секунды, If_Else ~ 0.370сек, If_Else_Multi v2.0 = 4.890сек, If_Else = 3.780сек, в архиве схема XXX_SpeedTest.sha).
Преимущества:
    1. Вставка внутренних переменных(#1 = #my <> #pi...), задающихся в свойстве Args(1=mytext
    my=mytext
    pi=3.14...).
    2. Увеличена скорость работы(лишь в 1.2-1.3 раза дольше, чем If_Else выполнит те же действия!!!).
    3. Изменено формирование маски строки(пример %1 >= #1 = %2 <> %3; #pi = %4 <> %5; ... и т.д).
Недостатки:

карма: 10
0
файлы: 1if_else_multi.rar [4.5KB] [314]
Гость
Ответов: 17029
Рейтинг: 0
#4: 2009-08-27 20:39:42 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-06-22 14:32:58
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#5: 2009-08-27 20:40:03 ЛС | профиль | цитата
Выкинуло что-то
карма: 10
0
Разработчик
Ответов: 4698
Рейтинг: 426
#6: 2009-08-30 12:26:40 ЛС | профиль | цитата
До конца оптимизированная версия + примеры(работа с МТ, основной пример). Обнаружите баги, пишите сюда
карма: 10
0
файлы: 1if_else_multi.rar [6.1KB] [447]
Разработчик
Ответов: 26160
Рейтинг: 2127
#7: 2009-08-30 12:34:12 ЛС | профиль | цитата
Assasin, ты мне объясни, а вот зачем тут integer, разве функция Round не целочисленная

tp := integer(round(tp * 2.3));
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#8: 2009-08-30 12:40:29 ЛС | профиль | цитата
Просто осталась с другого раза, там не было round, вот я и забыл про нее
Поправил, есть что-нибудь еще?
карма: 10
0
Разработчик
Ответов: 26160
Рейтинг: 2127
#9: 2009-08-30 12:44:29 ЛС | профиль | цитата
Assasin писал(а):
есть что-нибудь еще?

Глубоко не вникал, так, глянул синтаксис
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#10: 2009-08-30 13:30:23 ЛС | профиль | цитата
Assasin писал(а):
Сравнивает множество аргументов по маске
а зачем
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26160
Рейтинг: 2127
#11: 2009-08-30 13:36:15 ЛС | профиль | цитата
Tad писал(а):
а зачем

Видимо, тяжело использовать MathParse, супер-пупер сложная логика сравнений у него
Но я могу и ошибаться
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#12: 2009-08-30 13:46:22 ЛС | профиль | цитата
Разве MathParse сравнивает "аврп" и "прав" ? или "1в" и "1в"
карма: 10
0
Ответов: 16884
Рейтинг: 1239
#13: 2009-08-30 13:48:13 ЛС | профиль | цитата
А поставить несколько обыкновенных If_Else
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 4698
Рейтинг: 426
#14: 2009-08-31 08:59:30 ЛС | профиль | цитата
По той же причине я не хочу ставить несколько If_Else, что и несколько Math вместо MathParse, скорости не выиграю, зато маской напишу, приятней на восприятие, есть маска ((%1 + 3) / 4 - 120), мне не хочется заменить ..Parse простыми 3-мя Math, так как удобнее и нагляднее действия + меньше компонентов в схеме. А с IF_ELSE_Multi, так по сравнению со штатным(одинарным) он может сравнивать по блокам и выдавать результат сравнения по блокам, чего нет в MathParse, а с штатным If_Else это еще больше компонентов + если первый же If-Else даст False в первом блоке, то придется еще строить систему хабов, чтобы продолжать сравнение по блокам -- одним словом в сто раз сложнее и медленнее(преувеличил конечно)
Подпись: Assasin, доклад на тему "Почему я не хочу использовать простые If_Else за место одного If_Else_Multi?"
карма: 10
0
Ответов: 373
Рейтинг: 108
#15: 2009-09-01 00:23:05 ЛС | профиль | цитата
Assasin, иконка
предлагаю сменить на эту
--------
http://www.hiasm.com/forum_serv.php?q=56&id=479
http://www.hiasm.com/forum_serv.php?q=56&id=478
карма: 0

1
Голосовали:Assasin
Сообщение
...
Прикрепленные файлы
(файлы не залиты)