![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
sage |
![]()
Сообщение
#11
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 12.11.2008 Из: Украина, Киев Пользователь №: 418 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А я предложение дописал
но язык вобщем-то может быть любой. ![]() ДРАКОН задаёт лишь управляющие конструкции, а наполнение блоков может быть осуществлено на любом языке ![]() Таким образом, если нам необходима трансляция в С++, убираем из С++ все управляющие конструкции if, switch/case, while, и т.д. Их заменит графика! ![]() Если ещё и унифицировать синтаксис для наполнения блоков можно прийти к универсальному графическому представлению алгоритмов. Похожая идея была у авторов сайта alglib, но там использованны морально устаревшие блок-схемы. И что-бы не сложилось впечатление будто-бы это уход от темы ветки... Конечный автомат в полной мере реализуется схемой типа "силует" в ДРАКОНе ![]() |
|
|
AD |
![]()
Сообщение
#12
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Конечный автомат в полной мере реализуется схемой типа "силует" в ДРАКОНе ![]() Можно вопрос? А каким образом пользователь, особенно такой "дубовый", как я, поймет, что слово "силует"("силуэт" возможно ?????) подразумевает конечный автомат? ![]() Сообщение отредактировал AD - 13.11.2008, 9:30 |
|
|
sage |
![]()
Сообщение
#13
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 12.11.2008 Из: Украина, Киев Пользователь №: 418 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Можно вопрос? А каким образом пользователь, особенно такой "дубовый", как я, Да, точно "силуэт", Вы правы поймет, что слово "силует"("силуэт" возможно ?????) подразумевает конечный автомат? ![]() Насчёт "автоматности" "силуэта" шли жаркие дебаты. Но, на мой взгляд, тежело не увидеть очевидного... поскольку многие убедились на практике (в том числе и я), что "автоматные" задачи с помощью "силуэта" выражаются и успешно решаются. Что ещё нужно? ![]() |
|
|
AD |
![]()
Сообщение
#14
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Да, точно "силуэт", Вы правы ![]() Насчёт "автоматности" "силуэта" шли жаркие дебаты. Но, на мой взгляд, тежело не увидеть очевидного... поскольку многие убедились на практике (в том числе и я), что "автоматные" задачи с помощью "силуэта" выражаются и успешно решаются. Что ещё нужно? ![]() Вопрос не в том! просто где-то из программы, в которой есть этот элемент, не читая тонны документации, можно узнать что с помощью СИЛУЭТА можно описать конечный автомат? Как это сделать прочитав КРАТКУЮ справку, предположим где-то в инете, можно "чайнику" создать этот автомат? Или же перед этим требуется хорошо разобраться в программе? ![]() |
|
|
sage |
![]()
Сообщение
#15
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 12.11.2008 Из: Украина, Киев Пользователь №: 418 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
не читая тонны документации Документации вобщем-то не тонны ![]() Есть книга В.Д. Паронджанова "Как улучшить работу ума? Алгоритмы без программистов -- это очень просто! М.: Дело, 2001. --360 стр" |
|
|
kwisp |
![]()
Сообщение
#16
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
меня коллега ткнул носом на следующий способ реализации конечного автомата когда мой swich/case вырос до громадных размеров
1. создаешь енум, где элементы состояния автомата. 2. создаешь где быто нибыло (в классе в основном) статический массив указателей на функции обработчики. 3. меняешь состояние тут же проверяешь если есть обработчик в массиве вызываешь его. и быстрее в общем случае чем switch/case и меньше места занимает и модульность и гибкость. можно обработчики менять и обнулять если надо. коллега сказал что подсмотрел в ядре линукса основную идею. если кому интересно выложу пример. П.С. кажется где то я уже это писал ![]() |
|
|
AD |
![]()
Сообщение
#17
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
меня коллега ткнул носом на следующий способ реализации конечного автомата когда мой swich/case вырос до громадных размеров 1. создаешь енум, где элементы состояния автомата. 2. создаешь где быто нибыло (в классе в основном) статический массив указателей на функции обработчики. 3. меняешь состояние тут же проверяешь если есть обработчик в массиве вызываешь его. и быстрее в общем случае чем switch/case и меньше места занимает и модульность и гибкость. можно обработчики менять и обнулять если надо. Может быть лучше с помощью паттерна Состояние/State? Не реализовывал, но, думаю, стоит попробовать. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 5:13 |