DRAKON.SU

Текущее время: Среда, 24 Апрель, 2024 11:37

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




Начать новую тему Ответить на тему  [ Сообщений: 196 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 10  След.
Автор Сообщение
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 14:00 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Alexey_Donskoy писал(а):
Оптимизация может заключаться в использовании другой подходящей визуальной конструкции - например, обработки ситуации..

"Нет! Нет! Не дам!"(с)Билли Бонс.

По развилке ветвление происходит в плоскости. На обозримом участке. Выглядит структурно. И GOTO не нужен.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 14:53 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5850
Откуда: Москва
Рэйлвэй Каген писал(а):
...Вы делаете глубокую декомпозицию исходного логического выражения и на этом останавливаетесь. Возможности графической минимизации логической функции-условия в Вашем варианте нулевые...

Полагаю, что глубокая декомпозиция сложных логических выражений прямо в Драконе - тупиковый путь, поскольку сразу перекрываются возможности автоматического контроля, оптимизации, да и визуализированные Драконом кишки логической формулы как-то не способствуют моментальному пониманию полёта мысли предыдущего разработчика.


Уважаемый Рэйлвэй Каген!

Предлагаю Вашеу вниманию доработанную 11 главу (бывшая 10), которую я готовлю для нового издания книги.
Быть может, материал этой главы позволит сблизить наши позиции.
Glava11LogicText..doc


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

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 112
Откуда: Беларусь, Минск
Геннадий Тышов писал(а):
- выходить из процедуры, при достижении цели, а не городить огород добираясь до ее конца
Процедура пишется для достижения цели, поэтому, когда цель достигнута, то и процедура должна бы кончится. : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 16:16 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Уважаемый Владимир Даниелович!
Я всеми руками-ногами "ЗА" преобразование, показанное на рис 113. В дебрях логики почти всегда приходится искать физический смысл производимых действий. А правая часть рис.113 - это то, что надо!

Что касается глубоких декомпозиций логических выражений в Драконе, то я бы их показывал для иллюстрации "как делать не надо". Да, текст из правой части рисунка непосредственно не транслируется в код, нужны некоторые дополнения. Стоит ли их делать в Драконе? Повторюсь, в Драконе нет и быть не может быть графических правил для проверки, минимизации логических выражений. Это должно быть решение с подключаемым модулем.

Можно ли как-нибудь графически привести левый алгоритм к правому? Минимизировать логическую функцию? Вопрос не праздный, поскольку мало кто из программистов сильно задумывается над длинными if'ами.
Вложение:
Комментарий к файлу: эквивалентные логические функции
ba.png
ba.png [ 11.12 КБ | Просмотров: 16728 ]
Если да, то я признаю поражение и необходимость иметь НЕфиксированные выходы развилки.
Если нет, то лучше не вводить подобные техники отображения. Сделать с ними уже ничего нельзя будет. Найти физический смысл - не легче, чем по логическому выражению.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 17:01 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5850
Откуда: Москва
Рэйлвэй Каген писал(а):
Уважаемый Владимир Даниелович!
Я всеми руками-ногами "ЗА" преобразование, показанное на рис 113. В дебрях логики почти всегда приходится искать физический смысл производимых действий. А правая часть рис.113 - это то, что надо!
...
Можно ли как-нибудь графически привести левый алгоритм к правому?...


Уважаемый Рэйлвэй Каген!

Я отвечаю: да, можно. Как именно?
Мой ответ показан на рис. 119, 120, 121.
На рис. 119 введена процедура "Формирование.признака".
Как ее сформировать?
Я предпагаю два разных ответа (рис.120 и рис. 121).

Ответ 1. На рис. 120 формирование упомянутого признака делается с помощью "рамочного логического выражения".

Ответ 2. На рис. 121 формирование упомянутого признака делается с помощью "визуального логического выражения".

Какой ответ выбрать? Такой, какой больше нравится разработчику.

Какой ответ он выберет -- не так уж важно. Важно, что будет достигнута цель, которую Вы поставили в виде вопроса:

Цитата:
Можно ли как-нибудь графически привести левый алгоритм к правому?


Повторяю: да, можно. причем двумя способами.
Способ 1 показан на рис. 120.
Способ 2 показан на рис. 121.

Я отчетливо сознаю, что поставленный Вами второй вопрос (о минимизации логических функций) мои предложения не решают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 18:53 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Спасибо. Прекрасно видно, что вопрос о преобразовании алгоритмов поставлен к моему рисунку. Поэтому объединять в одной цитате первый абзац(о моих впечатлениях от Вашего материала) и третий абзац(содержащий мой графический пример с вопросами) совершенно некорректно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 19:45 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Рэйлвэй Каген писал(а):
Можно ли как-нибудь графически привести левый алгоритм к правому? Минимизировать логическую функцию? Вопрос не праздный,...

Вопрос конечно интересный, но утверждение эквивалентные логические функции ошибочное.
При a=1, b=1, c=0, d=0 : a'd'+c'd+bd'=1, a'+b'c'=0.
Надо другой пример.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 19:51 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5850
Откуда: Москва
Рэйлвэй Каген писал(а):
Спасибо. Прекрасно видно, что вопрос о преобразовании алгоритмов поставлен к моему рисунку. Поэтому объединять в одной цитате первый абзац(о моих впечатлениях от Вашего материала) и третий абзац(содержащий мой графический пример с вопросами) совершенно некорректно.


Уважаемый Рэйлвэй Каген!

Сожалею, что я неправильно Вас понял. Я действительно перепутал две разные вещи:
1) левую и правую части моего рисунка 113;
2)левую и правую части Вашего рисунка.
Приношу свои извинения.

Подтверждаю еще раз, что я уже писал Вам:
      "Я отчетливо сознаю, что поставленный Вами ... вопрос (о минимизации логических функций) мои предложения не решают".
Подтверждаю: я не знаю, как графически преобразовать левую часть Вашего рисунка в правую.

Вместе с тем для меня осталось неясным: как Вы оцениваете мои рассуждения о моих рисунках 119, 120 и 121. Вы считаете, что в них предлагается неудовлетворительное решение? Почему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 20:25 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Valery Solovey писал(а):
Геннадий Тышов писал(а):
- выходить из процедуры, при достижении цели, а не городить огород добираясь до ее конца
Процедура пишется для достижения цели, поэтому, когда цель достигнута, то и процедура должна бы кончится. : )

То что, процедура должна бы кончится, так не об этом речь. Из нее можно выйти (т.е. выполнение процедуры прекратится) при некоторых условиях (при достижении цели) уже в середине процедуры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 23:00 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Геннадий Тышов писал(а):
..Надо другой пример.
Да, каюсь, сам не проверил, отрисовал только. Ляпнул из гугла.. Придётся отработать.
Пример со светофором из 11 главы, как оказалось, минимизируется. Но без исключения переменных. Не очень наглядно получается.

Обозначения:
a - зелёный.сигнал.светофора,
b - желтый.сигнал.светофора,
c - красный.сигнал.светофора,
d - помехи.для.движения,
e - робот.выехал.на.перекрёсток;
Вложение:
Комментарий к файлу: эквивалентные логические функции
ba1.png
ba1.png [ 15.07 КБ | Просмотров: 16424 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 23:27 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
А в чём тут проблема-то? В том, что переменные (вопросы) повторяются?
Так чего ж Вы хотите, для такой задачи адекватна таблица решений, а не блок-схема, которая из таблицы получается механически и как частный случай... с высокой вероятностью ошибок, если рисовать блок-схему без таблицы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 23:30 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Да, это именно таблица решений...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 23:39 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Alexey_Donskoy писал(а):
В том, что переменные (вопросы) повторяются?
Нет, просто некоторые функции 4-х переменных минимизируются до трёх переменных. В смысле, которые изначально избыточны, а графическая форма записи не позволяет понять этого. Подвернётся что-нибудь такое - обязательно выложу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Понедельник, 15 Декабрь, 2008 23:50 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Много хотите. Графическая форма не для этого предназначена ;)
Вообще-то всё это поддаётся автоматизации (оптимизации); человек, смотрящий на графику тут ни при чём...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Вторник, 16 Декабрь, 2008 00:20 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Владимир Паронджанов писал(а):
..для меня осталось неясным: как Вы оцениваете мои рассуждения о моих рисунках 119, 120 и 121. Вы считаете, что в них предлагается неудовлетворительное решение? Почему?
Уважаемый Владимир Даниелович!
Я поддерживаю вынос перегруженных деталями частей алгоритма в отдельную процедуру, на отдельный лист, в отдельный примитив, на другой слой. Это существенно облегчит восприятие основного алгоритма. Укрупненные формулировки, как на рис.113 справа, я тоже приветствую. Но рис.121 - ни в какие ворота.
Как по нему сделать полную проверку логики? Бродить по маршрутам с карандашиком, попутно отписывая на клочке бумаги, что открыжили, а что - нет? Сомнительное развлечение.
Я бы предпочёл на месте кучи развилок таблицу истинности. По принципу рамочного выражения, только в рамке - таблица. У рамки пара выходов - прямой и инверсный. Кто-то другой предпочтёт задание в терминах матлогики. Смысл в том, что с такими представлениями уже можно работать дальше - можно преобразовывать из одного представления в другое(к сожалению не на базе дракон-правил), можно оптимизировать. И всё это быстрее, легче и нагляднее, чем в поразвилочной разблюдовке.
Правда последняя всегда будет понятна людям, умеющим только читать и водить пальцем. Им, надеюсь, понадобится только выходной результат - максимально понятная дракон-схема. Вовлекать такой контингент в процесс разработки, предоставлять им какие-то дополнительные инструменты проектирования скорее всего не придётся. Лучше позаботиться об эргономичном совмещении наработанных технологий представления для квалифицированных специалистов.

по поводу фиксации "Да"/"Нет" на развилке:
Противоречие получается только в бумажном варианте: то, что хорошо для разработчика, для простого юзера - смерть. Не получит он сразу графических логических выражений. Если же позиционировать выход Дракон-редактора для транслятора на целевые языки/платформы, то такого противоречия просто нет. Фиксация выходов развилки существенно облегчит жизнь квалифицированного персонала. (это вроде как дополнение к моим предыдущим аргументам)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Вторник, 16 Декабрь, 2008 05:51 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: "Да"-"нет" в развилках
СообщениеДобавлено: Вторник, 16 Декабрь, 2008 08:37 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Геннадий Тышов писал(а):
со светофором лучше так
И это совершенно справедливо!


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5850
Откуда: Москва
Геннадий Тышов писал(а):
Владимир Паронджанов писал(а):
Имеется в виду доработанная глава книги "Как улучшиь работу ума", которую я готовлю для нового издания
Глава выложена на народе.
Glava10Logic.doc

Интересно познакомиться с новым изложением материала, ранее это была глава 9-я. Что (хотя-бы тема) Вы решили добавить в начало книги?

Ответ. Ничего особенного. Раньше было 3 введения, что выглядит коряво. См. здесь
http://drakon.pbwiki.com/
Что я сделал? Объединил 1 и 2 введение в одно. А третье введение превратил в главу 1. Поэтому нумерация глав сдвинулась.
Цитата:
Вопрос 1. Если в дракон-схеме удаляем текст икон и вписываем туда буквы (A..Z, А..Я), то иконы становятся пустыми, но с идентификаторами. Дракон-схема перестает быть алгоритмом (Алгоритм — точно описанная последовательность человеческих действий. Из книги "Как ..."), а становится объектом математического рассмотрения. Для эргономики такой объект не является предметом рассмотрения.

Ответ. Вы пишете: "Для эргономики такой объект не является предметом рассмотрения".
Это не совсем так. См. Как улучшить работу ума рис. 19, 20, 25, и в особенности 26 и 27 и т. д.
Кроме того, глава 19 посвящена вопросу: "Возможна ли эргномизация мтематики?" Так что математические объекты вполне могут быть предметом эргономического рассмотрения.
Цитата:
Вопрос 2. Что Вы можете сказать о боковых присоединенных комментариях, в книге о них ничего не сказано.

Ответ 2. Это самое обычные комментарии, которые повсюду используются и в пограммировании и в алгоритмах.
Цитата:
Вопрос 3. Название языка ДРАКОН является аббревиатурой "Дружелюбный ...", т.е. имеет эротический оттенок. Разрешите использовать "Дружественный ...", что более нейтрально и общепринято в отношении к характеристике программных средств.

Ответ 3. Пишите, как считаете правильным. Что касатся меня, то я, увы, уже не могу отступать от введенной мной терминологии, так как подобный разнобой вызовет недоумение у читателей.
Кстати, в сети часто используют термин "дружелюбный интерфейс". Чтобы убедиться в этом, сделайте в Гугле запрос "дружелюбный интерфейс". Вы получите множество ответов.
Цитата:
Вопрос 4. При постановке вопроса "Как улучшить работу ума", возникает проблема - как не сойти с него, возникает психологическое напряжение. Ведь ум такой ограниченный! Возможно это рекламный ход. Нужны какие-то профилактические средства со стороны автора для снятия психологического напряжения.

Ответ 4. Постараюсь учесть ваше замечание. Если у Вас есть подсказка, как это сделать, подскажите мне.


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5850
Откуда: Москва
Alexey_Donskoy писал(а):
Владимир Даниелович!

При всём уважении... однако, не надо передёргивать! У меня перед процитированными словами было написано "практически"... специально для такого случая ;) Согласен, конечно, что выражение в целом приобрело математически некорректное звучание ;) буду подбирать слова тщательнее!

Что до while и until, так на их представлении на блок-схеме в обоих случаях из развилки ответ "да" идёт вниз, "нет" - влево (возврат или обход). Что, в общем-то, ещё раз иллюстрирует моё предложение!

Вообще-то мы напрасно прицепились к мелким частным вопросам... Как будто они затрагивают устои, и мир рухнет, если что-то чуть изменится... Нет, не рухнет... просто станет гораздо менее (или более) эргономично. А я так не собираюсь вместо трактора копать гектары лопатой... Жизнь и время гораздо дороже!


Уважаемый Алексей Донской!

Ваша фраза (которую я выделил красным) содержит неточность.

1. :!: Порядок рисования БЛОК-СХЕМ (в части да и нет) не регламентирован никаким руководящим документом. Во всяком случае мне такие документы неизвестны.

Приведу пример (о блок-схемах) из книги
"М.Д. Князева. Алгоритмика. От алгоритма к программе. М.: КУДИЦ-ОБРАЗ, 2006".

На стр. 162 выход из цикла с постусловием идет через "нет".
А на стр. 124 выход из цикла с постусловием идет через "да".
На стр. 26 выход из цикла с предусловием идет через "нет".

А как обстоит дело в настоящих программах на паскале?
Именно так, как я писал в предыдущем сообщении:

в языке Паскаль в цикле while-do выход из цикла соответствует значению false, а в цикле repeat-until применяется диаметрально противоположный принцип: выход из цикла производится, когда логическое выражение принимает значение true.

Если есть сомнения, вот точная цитата:

      "Работает цикл с постусловием следующим образом: "тело цикла повторяется до тех пор, пока логическое выражение не станет истинным". Обратите внимание, что, в отличие от while, цикл repeat в Паскале работает, пока условие ложно".

http://www.ref.uz/download.php?id=15618
см. стр.25

Таким образом, Ваш вывод: "Что, в общем-то, ещё раз иллюстрирует моё предложение!" является неубедительным.

С глубоким уважением к Вашей позиции
несогласный с Вами Владимир Паронджанов


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

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Владимир Паронджанов писал(а):
Таким образом, Ваш вывод: "Что, в общем-то, ещё раз иллюстрирует моё предложение!" является неубедительным.
Да Вы, сударь, опять шутить изволите! Циклы в Паскале выглядят именно так, как Вы и процитировали. Обратите внимание на выходы развилок, при помощи которых делаются эти циклы:
Вложение:
while.png
while.png [ 5.4 КБ | Просмотров: 16470 ]


Последний раз редактировалось Alexey_Donskoy Вторник, 16 Декабрь, 2008 21:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 196 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 10  След.

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


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

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


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

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