DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 16:39

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 376 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 19  След.
Автор Сообщение
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 13:04 

Зарегистрирован: Вторник, 25 Март, 2008 23:04
Сообщения: 5
Откуда: Львів
Владимир Паронджанов писал(а):
Цитата:
Пункт 2. Исчисление икон, шампур-метод и т.д. (Отрывок из книги Паронджанова стр. 271—281).

Было б логично представить правила в виде ДРАКОНа :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 15:16 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Сообщаю ссылку реального Дракон-Редактора:
http://narod.ru/disk/55428000/DRT.rar
Все (почти) по книге В.Д. Паронджанова "Как улучшить работу ума".
Имеется ряд дополнений для полноты функционирования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 18:25 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Геннадий Тышов писал(а):
Сообщаю ссылку реального Дракон-Редактора:

Очень интересно. Даже многое работает.
Не могу сообразить, как организовать цикл WHILE (с предусловием). ДЛЯ - не то, "Обычный цикл" - это REPEAT..UNTIL (с постусловием). "Перекл. цикл" вообще пока не понимаю, но не похож совсем. Подскажете?

Если делать через IF + REPEAT..UNTIL, то условие дублировать приходится, что совсем не хорошо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 19:25 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Прикреплён пример алгоритма поиска символа в строке (1.jpg). Для завершения алгоритма нехватает перехода после INC (i) к проверке условия (s [i] = ch). Пытаюсь делать "Пересадку лианы" - редактор рисует 2.jpg. Судя по тому, что условие (s [i] = ch) перечёркнуто вертикальной линией, пересадка прошла успешно, но что при этом нарисовано - грубое нарушение: пересечение линий.


Вложения:
Комментарий к файлу: Алгоритм поиска символа в строке
1.JPG
1.JPG [ 37.17 КБ | Просмотров: 28324 ]
Комментарий к файлу: После пересадки появляется пересечение
2.JPG
2.JPG [ 37.62 КБ | Просмотров: 28320 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 19:56 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Понял, это делается "Обычным циклом", но редактор опять подводит. Схема 3.jpg приводится к нужному виду пересадкой лианы после INC (i) на одну ступеньку выше, перед проверкой (s [i] = ch). Однако, редактор рисует 4.jpg.


Вложения:
Комментарий к файлу: Почти получилось...
3.JPG
3.JPG [ 37.4 КБ | Просмотров: 28312 ]
Комментарий к файлу: Эх, опять не то!
4.JPG
4.JPG [ 37.79 КБ | Просмотров: 28308 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 20:00 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Эх, сделал опечатку в INC (i) - i заглавную написал. После исправления редактор вдруг показал вот такую схему: 5.jpg.
Вопрос к автору редактора: не поделится ли он исходниками? Чтобы можно было доработать до кондиции...
Очевидно, нужно по-особому обрабатывать стрелки, идущие вверх, исключать их при топологической сортировке схемы.


Вложения:
Комментарий к файлу: Ой, а как попасть в (s [i] = 0X)?!
5.JPG
5.JPG [ 37.6 КБ | Просмотров: 28309 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 20:50 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Прочитав Тезис 28 "Пересадка лианы" я подумал, что, наверное, хочу невозможного.
С одной стороны, структурность кода в желаемом мной варианте сохраняется: пересечений нет. С другой стороны, обычным WHILE это уже не выразить. Для обычного WHILE нужна конъюнкция как в 6.jpg.
Хотелось бы увидеть мнение Владимира Паронджанова: почему нельзя вход в цикл перенести повыше, на родительскую ветку, не создавая пересечений (то, что я выше хотел сделать с рисунком 3.jpg)? Или это возможно? Если возможно, то где это описано в тезисах?
Я считаю, что это возможно в рамках примечания к Тезису 28: "Однако разрешается строить новый путь из середины обычного цикла к единственному входу в этот цикл, создавая визуальный эквивалент оператора continue языка СИ".


Вложения:
Комментарий к файлу: Получилось, но с дополнительной проверкой (s [i] = ch).
6.JPG
6.JPG [ 37.47 КБ | Просмотров: 28298 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 21:00 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Для Александра Ильина

ПоискСимволаВСтроке:
http://narod.ru/disk/57588000/%D0%9F%D0 ... %D0%BA.JPG

http://narod.ru/disk/57586000/%D0%9F%D0 ... %D0%BA.drt
Файл для Дракон-Редактора. Здесь есть последовательность формирования ДРАКОН-схемы с примечаниями.

У меня нет опыта общения в Интернете.
При первом знакомстве с программой, рано разбираться в исходных текстах.
Познакомтесь с сообщением "О программе". там кратко все написано,
обращайте внимание на строку сообщений.
Так же: ДРАКОН - язык алгоритмический, а не программирования.
Программируют после получения ДРАКОН-схемы в среде программирования.


Последний раз редактировалось ==== Воскресенье, 06 Апрель, 2008 23:35, всего редактировалось 13 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 21:02 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Впечатление: более громоздко получается, но и более эргономично, верифицируемо - это чувствуется.
Вот пока не представляю себе большой проект из таких схем : )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 21:09 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Геннадий Тышов писал(а):
Для Александра Ильина

Ага, значит это таки возможно! : )
Вопрос: как в редакторе создать ветку "Нет" из "Строка [Позиция] = Символ", ведущую в начало цикла? Какова должна быть последовательность действий для создания такой схемы? Созданием цикла с последующей пересадкой лианы у меня не получилось.
PS: Публикуйте, пожалуйста, файлы, прикрепляя их прямо к сообщениям на данном форуме. Вам мои картинки видно сразу, а мне приходится вводить циферки на narod.ru.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 21:34 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Геннадий Тышов писал(а):
У меня нет опыта общения в Интернете.
В таком случае, огромное вам спасибо за то, что дали посмотреть ваш редактор. И за то, что отвечаете на мои вопросы.
Геннадий Тышов писал(а):
При первом знакомстве с программой рано разбиратся в исходных текстах.
Согласен, поторопился.
Геннадий Тышов писал(а):
Познакомтесь с сообением "О программе". там кратко все написано, обращайте внимание на строку сообщений.
Познакомился, и на строку смотрю. Но на конкретный свой вопрос из предыдущего сообщения пока не нахожу ответа: как стрелочку завести наверх?
Вот иллюстрация: 7.jpg. Как ветку "Нет" из "///-9" присоединить ко входу в "///-2"? Нужны пошаговые инструкции, какие пункты меню выбирать и куда мышью кликать. Или такое преобразование невозможно?
Если преобразование не возможно, то как получить такую схему с чистого листа?


Вложения:
Комментарий к файлу: К вопросу
7.JPG
7.JPG [ 16.33 КБ | Просмотров: 28255 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Апрель, 2008 23:54 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Спасибо! С трудом, но разобрался. Один из камней преткновения - не ясно, что для операции "Узел: объединенить лини" нужно выбирать соседний узел на той же линии, рядом с тем, для которого вызвано меню. В строке подсказки написано "Выбери соседний узел на второй линии". Что ещё за вторая линия? Не понятно. Тем более не понятно, если ещё только пытаешься понять, что же такое это "объединение линий" и зачем оно нужно.

Благодаря вашему объяснению понял, что циклы нужно "выращивать" из базовой конструкции, а саму стрелочку перенацеливать нельзя.

Получилось создать свою схему: FindChar.jpg
Вложение:
Комментарий к файлу: Получилось!
FindChar.JPG
FindChar.JPG [ 71.24 КБ | Просмотров: 28231 ]
Схема очень легко и быстро позволяет ответить на вопросы:
- какие два вида значений возвращает процедура?
- в каком случае происходит повтор цикла?


Последний раз редактировалось Александр Ильин Понедельник, 07 Апрель, 2008 00:23, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 00:05 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Хорошо, что файл drt - текстовый. Если подразобраться в формате, то можно написать конвертор в исходник на Обероне. Потом это дело автоматизировать через командную строку и добавить в makefile для сборки проекта. По крайней мере часть программы можно будет писать прямо в ДРАКОН-Редакторе, а со временем и полностью перейти.

Геннадий Тышов писал(а):
Программируют после получения ДРАКОН-схемы в среде программирования.
Какой смысл составлять программу в ДРАКОН-Редакторе только для того, чтобы её потом вручную переписывать на языке программирования? Тогда схема получится как графическая документация, подспорье хорошее, конечно, но слишком уж легко устаревающее при правке исходника (а ведь именно с ним ведётся основная работа при таком подходе). К тому же, нет страховки от ошибок при переводе схемы в текст. Если переводчиком выступает человек, то теряется часть эргономики, опять приходится анализировать текст программы, чтобы удостовериться в его соответствии графической схеме. Перевод должен быть автоматизирован, чтобы схема стала центральным и единственным местом записи алгоритма.

Согласен, что редактор позволяет писать алгоритмы и не на языке программирования, а на обычном русском. Мне просто больше интересна возможность именно программирования, так что эту возможность я и изучаю в первую очередь.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 00:19 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Ещё раз огромное спасибо за возможность посмотреть Редактор в действии и "пощупать" ДРАКОНа!
Вопрос о публикации исходников не снимаю, в Редакторе можно много над чем поработать для повышения удобства.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 10:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 10
Откуда: Россия, Нижний Новгород
В начале цикла написать "Позиция := -1" это конечно мощно... Видимо, никакой ДРАКОН редактор не заменит старой доброй дисциплины программирования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 12:05 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Ну, ничего страшного я здесь не вижу. Просто инвариант цикла включает "каретка стоит перед очередным символом последовательности, подлежащим обработки". Утверждение строится относительно следующего символа, а не относительно текущего (который нам параллелен и может не существовать, как на первом витке цикла).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 12:28 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 10
Откуда: Россия, Нижний Новгород
Илья Ермаков писал(а):
Ну, ничего страшного я здесь не вижу.

Я вижу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 12:34 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Просто не вписывается в обычную схему?
Ну так это фактически эквивалентное преобразование алгоритма на WHILE в алгоритм на UNTIL. Только и всего. Со "сдвигом инварианта". Ничего криминального...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 19:03 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Сергей Губанов писал(а):
В начале цикла написать "Позиция := -1" это конечно мощно... Видимо, никакой ДРАКОН редактор не заменит старой доброй дисциплины программирования.


Уважаемый Сергей!

Вы - опытный специалист. И я склонен относиться к Вашим замечаниям со всей серьезностью. Вместе с тем хотелось бы обратить Ваше внимание на один важный момент. В моей книге описан ГРАФИЧЕСКИЙ СИНТАКСИС языка Дракон.

При этом подразумевается, что ТЕКСТОВЫЙ СИНТАКСИС может быть самым разнообразным. А теперь вопрос: на что напрвлена Ваша критика? На ГРАФИЧЕСКИЙ синтаксис? Или на ТЕКСТОВЫЙ?

Мне кажется, Ваше замечание относится к ТЕКСТОВОМУ (а не ГРАФИЧЕСКОМУ) синтаксису. Следвательно, оно не является критикой ядра идеи - ГРАФИЧЕСКОГО СИНТАКСИСА.

Если я прав, если ГРАФИЧЕСКИЙ синтаксис нас с Вами устраивает (а ТЕКСТОВЫЙ не устраивает), давайте попытаемся изменить именно то, что Вам не нравится. Давайте изменим ТЕКСТОВЫЙ синтакис. Мы имеем право менять его ЛЮБЫМ СПОСОБОМ, который сочтем подходящим (в пределах разумного).

В связи с этим обращаюсь к Вам с просьбой. Нарисуйте свою собственную дракон-схему, которая была бы лишена отмеченного Вами недостатка. То есть в максимальной степени соответствовала "старой доброй дисциплине программирования".

Я обращаюсь также ко всем участникам форума: давайте пойдем навстречу Сергею Губанову. И построим такую дракон-схему, которая удовлетворяла бы его требованиям (то есть не содержала деталей, которые он склонен рассматрвать как недостаток).

Мне кажется, двигаясь таким путем, мы сможем достичь желанного консенсуса.

С уважением Владимир Паронджанов


Последний раз редактировалось Владимир Паронджанов Вторник, 08 Апрель, 2008 16:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 07 Апрель, 2008 20:11 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 10
Откуда: Россия, Нижний Новгород
Владимир Паронджанов писал(а):
Нарисуйте свою собственную дракон-схему

Её нарисовал Александр Ильин: Вс апр 06, 2008 11:54 pm.

Владимир Паронджанов писал(а):
А теперь вопрос: на что напрвлена Ваша критика?

Да не критика, а так ворчание по поводу того, что инварианты циклов/предусловия/постусловия -- это отдельная дисциплина независящая от того как выражать мысли: в текстовом виде или в графическом. В данном случае, я был несогласен с выбором в качестве предусловия несуществующее значение позиции "минус один" когда ясно что должен быть ноль.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 376 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 19  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB