Программа по моей схеме с кольцеванием работает, только с небольшим количеством строк.
--- Добавлено в 2019-08-17 18:23:37
Ясно с кольцеванием нормально не работает.
Редактировалось 1 раз(а), последний 2019-08-17 18:23:37
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 44
Рейтинг: 0
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Мозг на 80% состоит из жидкости.
Мало того, что у многих она тормозная, так некоторым конкретно не долили... |
|||
карма: 25 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Tad, я тебе один умный вещь скажу, только ты не обижайся...
Примеры, как можно сделать, вместо объяснения причин почему не работает по другому -- вовсе не свидетельствуют о высоком качестве жидкости в головах, дающих эти примеры. Таки ТС сказал, что таковые примеры ему известны (тот же Enum). И задал прямой вопрос: почему? Процитирую, однако, из вышеуказанного мной топика (пост #16): Galkov писал(а): НО -- продвинутые юзеры занимаются трепом НИ О ЧЕМ. Вместо того, чтобы научить пользователя, ХОТЯ БЫ -- чем ЦИКЛ отличается от КОЛЬЦЕВАНИЯ. И почему второе в HiAsm, в общем случае - недопустимо. Мне просто любопытно уже, этого что - никто кроме меня не умеет на форуме Типа - утерянные знания предыдущих цивилизаций... --- Добавлено в 2019-08-18 09:06:05 Кстати говоря, последний мой вопрос не потерял актуальности. Редактировалось 6 раз(а), последний 2019-08-18 09:06:30 |
|||
карма: 9 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Проект HiAsm.NET унаследовал проблему вызова бесконечной рекурсии при "кольцевании" схемы программы: события с выхода элемента на вход этого же элемента, который вызовет тоже самое событие. Проблема решается на уровне реализации самого элемента с помощью дополнительного кода, что не всегда может быть оправдано. Версия среды номер 4 уже никогда не избавится от этой проблемы. Может быть в будущем кто-нибудь решит эту проблему "в принципе".
|
|||
карма: 6 |
|
Ответов: 44
Рейтинг: 0
|
|||
Ну я говорю, что не разбираюсь в программировании.
--- Добавлено в 2019-08-18 12:48:23 Выбрал я среду программирования, как раз потому что плохо разбираюсь в программировании. Редактировалось 1 раз(а), последний 2019-08-18 12:48:23 |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Nic писал(а): Проект HiAsm.NET унаследовал проблему вызова бесконечной рекурсии при "кольцевании" схемы программыNic, вынужден возразить Вам дважды. 1) Кольцевание и рекурсия - это разные вещи. Рекурсия - это создание нового объекта (как некой копии оригинала) и применение к нему некого метода, с последующим его удалением. Исторически термин рекурсия возник еще до ООП. Однако и там, при всяком рекурсивном обращении создавался объект в стеке, состоящий из входных аргументов и локальных переменных. А последующий код можно интерпретировать как некий метод этого объекта (EBP - указатель внутрь этого объекта). Вспомните еще, что возможна иная, более эффективная генерация кода (передача аргументов через стек не есть догма). Можно в каком-нибудь регистре передавать адрес некой структуры в памяти, в которой нужные данные уже подготовлены. Типа, нафига десятками раз пихать в стек почти одни и те же данные в run-time. Так вот, если вы не будете при каждом рекурсивном обращении создавать такую структуру заново -- фиг вам, а не рекурсия. Фортран, кстати говоря, так и делал, и, можете себе представить - не допускал рекурсий. Можем ли мы решать рекурсивные задачи в HiAsm, запрещая (например, на уровне среды) кольцевания? Конечно, если правильно понимаем, что такое рекурсия. У нас есть мультик в динамическом режиме, который создает экземпляр объекта при обращении, и удаляет экземпляр по окончании Грубо говоря, я - могу. Показывал пример в виде сортировки (там ссылки на контейнер Sort - так это он и нарисован) Рекурсивная сортировка 2) Кольцевание - если это и проблема, то больше семантическая. У нас просто нет договоренности как понимать некоторые вертиплясы с этим кольцеванием. А так - ну нет этой проблемы. Например, такой вертипляс:
Опять же среда (не эта, а некая перспективная) должна распознавать ситуацию кольцевания, и ставить вместо HubEx этот системный элемент без названия... Looper - как-то неприлично звучит. Вот и все. Главное - у нас нет общей семантической договоренности. Если бы была - остальное не более чем технические вопросы. Редактировалось 4 раз(а), последний 2019-08-18 13:01:10 |
|||
карма: 9 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Galkov, в #4: 2019-08-17 13:02:09 было всё сказано.
Дальнейший разговор на эту тему - пустая трата времени. ИМХО. |
|||
карма: 25 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Galkov, Решение проблемы для конкретного элемента есть и неважно, что это за элемент. Пока нет решения для любого элемента, который "запускает свой паравозик", который может к нему же и вернуться с тем же результатом. У меня есть возможность в проекте HiAsm.NET попытаться реализовать обход элементов схемы с разрешением конфликтов кольцевания. А 4-я версия среды уже никогда не будет обновлена. Это и хотел выразить в предыдущем своём сообщении.
|
|||
карма: 6 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Nic писал(а): Решение проблемы для конкретного элемента есть и неважно, что это за элемент. Пока нет решения для любого элемента, который "запускает свой паравозик", который может к нему же и вернуться с тем же результатомNic писал(а): У меня есть возможность в проекте HiAsm.NET попытаться реализовать обход элементов схемы с разрешением конфликтов кольцеванияА разрешать-то как. Какова семантика этого разрешения. Насколько я помню, моя семантика была отвергнута под девизом "ай-я-яй, а как же тогда рекурсию делать" Неужели что-то изменилось с тех очень уже давних пор |
|||
карма: 9 |
|
Ответов: 44
Рейтинг: 0
|
|||
А если реализовать оператор goto в элементах.
|
|||
карма: 0 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Galkov писал(а): А разрешать-то какNic писал(а): ...попытаться реализовать обход элементов схемы с разрешением конфликтов кольцевания.Не знаю пока ничего про твоё предложение Galkov писал(а): моя семантика была отвергнутаЕсли поможешь найти - попытаюсь её понять Galkov писал(а): Неужели что-то изменилось с тех очень уже давних порДумаю, что в то "доброе и старое" время "пехотных мин ещё не было": Анекдот Идёт Ахмед по дороге, а жена его перед ним. Друзья ему говорят: — Эй Ахмед как Аллах нас в коране учит! Жена должна идти после мужа... А Ахмед говорит: — Когда писали коран не делали противопехотных мин... — Вперёд Фатима, вперёд... |
|||
карма: 6 |
|
Ответов: 8918
Рейтинг: 823
|
|||
Igor08 писал(а): В чем может быть ошибкаНасчёт программирования у меня тоже туго Но понятие "поток", что в HiAsm, что в самой Win, одинаковы (на мой взгляд дилетанта). Запущенный поток заканчивается, когда выполнены ВСЕ действия по всей цепочки событий. Если же последним действием является запуск нового потока, то это глупая система в отличии от умного программиста, не считает ОКОНЧАНИЕМ потока, новый запускается, а не оконченный записывается в стек, и так происходит до переполнения стека, о чём система и сообщает в виде окошка с ошибкой. На моём компьютере происходит на ~5800 шаге по вашей схеме. Для остановки потока надо разорвать его, от своего события поток НЕ останавливается. Вот пример: Пример
|
|||
карма: 19 |
|
Ответов: 44
Рейтинг: 0
|
|||
Ладно. Я не разбираюсь в программировании хорошо, не занимаюсь профессиональным написанием программ. Мой мозг уже глюканул, я всякую фигню уже сюда пишу.
|
|||
карма: 0 |
|
Ответов: 758
Рейтинг: 112
|
|||
Igor08, Может я чего не понял. Но "Перебор строк StrList с помощью ArrayRW" можно сделать так
|
|||
карма: 1 |
|
Ответов: 44
Рейтинг: 0
|
|||
Здравствуйте. Так можно выполнить программу? Если нет, то как по другому, подскажите пожалуйста.
|
|||
карма: 0 |
|