Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#16: 2010-09-21 19:37:35 ЛС | профиль | цитата
login писал(а):
Вот это, довольно, серьезное ограничение, в максе работа идет именно с потоками - генерируются условные события.

Почему ограничение? А если на этом одном выходе будет выдаваться 1 в случае истинности выражения, а 0 в противном случае, а на этот выход подключаем IndexToChanel, вот тебе и два события
карма: 10
0
Ответов: 1429
Рейтинг: 50
#17: 2010-09-21 19:39:02 ЛС | профиль | цитата
И два элемента..
Я же говорю, можно поразному, но люди сделали один элемент! И поэтому я сказал, что это круто.

(нет ну Вы конечно правы, забыл я подумать про IndexToChanel сходу)
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#18: 2010-09-21 19:39:05 ЛС | профиль | цитата
К тому же можно сделать и парсер строки-выражения, и указывать точки-выходы и точки-взятия-данных, только эти точки тебе придется вписывать в свойствах самому и все это будет медленно работать
карма: 10
0
Ответов: 1429
Рейтинг: 50
#19: 2010-09-21 19:41:34 ЛС | профиль | цитата
Та я в жизни не возьму мат парсер, мне нельзя по специфике задач. Скорость не та. Мне или IC или FTCG только подходит.

(ой опять забыл, есть же фаст мат-парсер, уже 17 часов не сплю, нельзя в таком виде говорить)
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#20: 2010-09-21 19:52:51 ЛС | профиль | цитата
login писал(а):
ой опять забыл, есть же фаст мат-парсер

Он с логикой не дружит.

А вообще, идея интересная -- что-то типа текстового поля, в котором пишешь текст условия и или математическую формулу, а оно генерирует на его основне IC элемент c нужным количеством точек и готовым кодом на целевом языке. Мечты...
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#21: 2010-09-21 19:55:56 ЛС | профиль | цитата
nesco писал(а):
А вообще, идея интересная -- что-то типа текстового поля, в котором пишешь текст условия и или математическую формулу, а оно генерирует на его основне IC элемент c нужным количеством точек и готовым кодом на целевом языке. Мечты...

Хы, а тогда и контейнеры будут по другому выглядеть (в коде), если каждый элемент перевести в такой режим "формула->код" (ФОРКОД если взять пример с ФОРТРАНа ), то в принципе и памяти меньше стало бы занимать и быстрота бы подскочила в разы...
nesco писал(а):
Мечты...

карма: 10
0
Ответов: 1429
Рейтинг: 50
#22: 2010-09-21 19:59:08 ЛС | профиль | цитата
Assasin писал(а):
и памяти меньше стало бы занимать и быстрота бы подскочила в разы...

Я этим работал. Я знаю насколько это лучше.
(я ушел отдыхать, всем пока)
карма: 0

0
Ответов: 3349
Рейтинг: 233
#23: 2010-09-21 20:04:04 ЛС | профиль | цитата
Тогда еще бы добавить в ic свойства, и иконку.
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#24: 2010-09-21 20:34:20 ЛС | профиль | цитата
Так на чем порешили?
[vote=Мне делать компонент If_Else_Multi?]
[answer=Да]
[answer=Нет]
[answer=Я томат]
[/vote]
карма: 10
0
Ответов: 16884
Рейтинг: 1239
#25: 2010-09-21 21:19:28 ЛС | профиль | цитата
Assasin писал(а):
Мне делать компонент If_Else_Multi?
И "многоэтажное" Case
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8928
Рейтинг: 823
#26: 2010-09-21 21:28:37 ЛС | профиль | цитата
Assasin, лучше добавить ИИ компилятору, чтобы он цепочки If оптимально перевёл в машинные команды
карма: 19

0
Ответов: 215
Рейтинг: 45
#27: 2010-09-21 22:47:07 ЛС | профиль | цитата
Я когда-то рисовал "многоэтажный" Case для vbs пакета, но не стал включать. Т.к. у меня при добавлении точек OnElse оставался на своём месте, а точки шли после него - некрасиво как-то, а отладку не осилил.
В общем, в аттаче то, как я себе его представлял на тот момент.
ps схема в примере под старый пакет vbs, но поправить несложно.
карма: 0

0
файлы: 1case.rar [1.4KB] [71]
Ответов: 1429
Рейтинг: 50
#28: 2010-09-22 05:22:21 ЛС | профиль | цитата
Еще немножко информации:

1. В максе, так же, работают формулы с константами строк и чисел:
if $i1 or $i2 = 'сто рублей' then $o1 (элемент с двумя входами и одним выходом)

2. Так же формат обозначения точки влияет на ее параметры, например $i1 - integer вход, $r1 - real вход, $s1 - string вход и т. д. (но там это редко нужно)

А для HiAsm можно этим же способом обозначить тип точки - передняя она или верхняя для входа, и задняя или нижняя - для выхода. Поскольку очень важно реагировать не только на верхние точки но и на входные потоки со значениями.

3. Для case там используется, предельно, простой код

Пишем:
route 'сто рублей' 'двести рублей' 'n рублей'
Пробел между данными - разделитель (если без кавычек - это integer, если есть точка, это real)

Появится элемент с одним входом и 4мя выходами, четвертый, из которых, будет выводить все не совпадающие, ни с одним из условий, значения.

4. Там есть и иной "роутинг", а именно, если на нулевую точку роутера приходит строка: route 1-3 2-8 5-7
То роутер соеденит входы с соответствующими выходами, затем можно "на лету" послать строку: route 1-0 2-0 7-3
И 1 2 входы заблокируются, а 7-3 соеденятся. и т. д.

п.3. и п.4 я часто использовал в связке, когда по условию выдавалась команда полной перекомутации десятков кабелей, потом обратно.
Без усложнения схемы на листе. п.4, наверное, невозможно сделать быстрым, в отличие от пунктов 1,2,3 поэтому, думаю, не стоит.

Для всего этого не надо искать элементы на палитре, код пишеш в любой, неграфический элемент, и он становится тем что ты написал.

карма: 0

1
Голосовали:olDjeka
Администрация
Ответов: 15295
Рейтинг: 1519
#29: 2010-09-22 13:13:10 ЛС | профиль | цитата
подобное кодирование это все же шаг в сторону от чистого визуального программирования. Кроме того все выше описанное делать нужно в рамках FTCG, который имеет возможность в Design time перестраивать логику элемента. В прочих пакетах это будет либо слишком громоздко, либо тормозно.
карма: 27
0
Ответов: 1429
Рейтинг: 50
#30: 2010-09-22 13:48:19 ЛС | профиль | цитата
Dilma писал(а):
подобное кодирование это все же шаг в сторону от чистого визуального программирования


if $i1 or $i2 or $i3 = 0 then $o1 - это сравнимо с визуальным программированием, и с заполнением палитры свойств, только с выигрышем скорости работы, и простотой схемы.

Интуитивно понятно, что:
i - input
o - output
Операторы if, then, else, - это все, что нужно знать. Пробелы ставить все умеют. Лишнего синтаксиса нет.
Все визуально (цитирую внутренний голос юзера): "инпут такой-то, плюс инпут такой-то, тхен аут такой-то". Это на уровне деревени. Ума тут не требуется.

Но щас мы имеем,примерно ,такое скопление элементов, вокруг примитивной задачи:
code_20732.txt
И вот тут, уже приходится думать. И еще лазить в две палитры (элементов и их свойств) и езе и в мультик это все потом засунуть для большего счастья, тоесть, чтобы убрать лишнее с глаз.
карма: 0

0
файлы: 1code_20732.txt [2.8KB] [163]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)