DRAKON.SU

Текущее время: Среда, 21 Февраль, 2018 20:07

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




Начать новую тему Ответить на тему  [ Сообщений: 77 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Среда, 01 Ноябрь, 2017 13:00 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
В предыдущей версии сортировки выбором не хватает общего цикла.
Вот новая версия:

Вложение:
selection sort2.png
selection sort2.png [ 39.3 КБ | Просмотров: 547 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Ноябрь, 2017 13:42 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3535
Откуда: Москва
Заливка фона украшает схему и облегчает ее понимание.

Причина в том, что благодаря заливке фона фигура отделяется от фона и внимание читателя (акцент) переносится на фигуру.

В данном случае термином "фигура" обозначена целостная дракон-схема.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Ноябрь, 2017 16:07 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
Владимир Паронджанов писал(а):
Заливка фона украшает схему и облегчает ее понимание.

Причина в том, что благодаря заливке фона фигура отделяется от фона и внимание читателя (акцент) переносится на фигуру.

В данном случае термином "фигура" обозначена целостная дракон-схема.


Спасибо за пояснение!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Ноябрь, 2017 16:41 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
Insertion sort
(сортировка вставкой)

1. Суть алгоритма
Данный алгоритм сортировки двигается по элементам в одном направление и
вставляет значение текущего элемента в подходящее место.

Вложение:
insertion-sort-1_modified2.png
insertion-sort-1_modified2.png [ 25.92 КБ | Просмотров: 529 ]

2. Дракон-схемы
Представляю две версии ДРАКОН-схем.
Почему две - объясню ниже.

Вложение:
Insertion sort variant 1 and 2.png
Insertion sort variant 1 and 2.png [ 88.54 КБ | Просмотров: 529 ]

3. Возникшие трудности
Хотел сделать схему чтобы читалась сверху вниз как предыдущие, без распуханий в стороны.
Изначально делал внутренний цикл с помощью иконок "Вопрос".
Но мне нужна была ветка:

Вложение:
insertion-sort-add.png
insertion-sort-add.png [ 17.13 КБ | Просмотров: 529 ]

которую ДРАКОН запрещает.
Поэтому и сделал другие варианты.

Считаю, что у схемы с "Вопросами" недостаток в разбухание вправо.
У схемы с иконой "ДЛЯ"... наличие цикла "ДЛЯ", который, как я понял, снижает понимаемость схемы.
К сожалению, в используемом редакторе не увидел возможность увеличить поля иконы "ДЛЯ"(что предложил Владимир Паронджанов), поэтому выделил отступами.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Ноябрь, 2017 17:46 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 448
Владимир Невзоров писал(а):
Хотел сделать схему чтобы читалась сверху вниз как предыдущие, без распуханий в стороны.

Не вижу проблем с подобным "распуханием". Задействуем два измерения!
Вот чего делать нельзя, это в одну икону две мысли пихать.

Сортировку вставками в вашем исполнении так и не понял.
"Shift current to the next position" - что это? Двигаем вперёд индекс или значение (меняем местами)?

Насчёт английского. Много ошибок. Я не англичанин, а всё равно глаз режет.
Лучше хорошо по-русски, чем плохо по-английски.
Как быть? Почитайте тексты на английском про сортировку. Там возьмёте обороты, идиомы и т.п.
Например "больше, чем" надо переводить как "greater than", а не "more than". "Sort over" означает не то, что вы думаете. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Ноябрь, 2017 18:06 

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 108
Степан Митькин писал(а):
Лучше хорошо по-русски, чем плохо по-английски.

Если есть желание прокачаться в английском, то наоборот. Нужно хоть как, но писать/говорить по-английски.

"observed element is a current element". Смысл непонятен.
"Previous element exists?" -> Does previous element exist?
"Is observed element less than previous?". По-моему, сама формулировка (слово observed) неудачная.
"Current is the last?" -> Is current element the last one? Are there more elements?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Ноябрь, 2017 09:05 

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

Причина в том, что благодаря заливке фона фигура отделяется от фона и внимание читателя (акцент) переносится на фигуру.

В данном случае термином "фигура" обозначена целостная дракон-схема.


Спасибо за пояснение!

Подробности можно найти в книге:
Цитата:
Грановская Р.М., Березная И.Я., Григорьева А.Н. Восприятие и признаки формы. — М.: Наука, 1981. — 208 с.

См. главу 2. "Взаимодействие фона и фигуры".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Ноябрь, 2017 11:17 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 153
"Лучше хорошо по-русски, чем плохо по-английски" - выход за границу эргономической необходимости, избыточность.
Лучше плохо по-русски, чем плохо по-английски.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Ноябрь, 2017 16:05 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
Спасибо за русский, за английский, постарался учесть. Спасибо за книгу. Это, наверное, то, к чему подсознательно шел.

После дня периодических размышлений над терминологией в иконках пришел к такой схеме:
Вложение:
Insertion sort variant 3.png
Insertion sort variant 3.png [ 120.26 КБ | Просмотров: 475 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Ноябрь, 2017 20:29 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
Quick sort
(Быстрая сортировка)

Скоро... как только пойму как она работает :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Ноябрь, 2017 21:02 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
Итак, выкладываю.

1. Сложности
Признаюсь, что пока не понимаю как можно выразить этот алгоритм качественно в ДРАКОН-схеме.
Даже побаивался выкладывать, так как "всё не то".
Не:
-понятно
-легко
-доступно
Но, лучше с чего-то начать.
Обо всем по порядку.

2. Суть алгоритма
Алгоритм выбирает какое-то отправное значение(pivot value) где-то в массиве.
Отправное значение делит массив на две части.
Значения слева, которые больше отправного, алгоритм меняет со значениями справа, которые меньше отправного.
Таким образом, после одного прохода, слева будут меньшие значения, справа большие.
Теперь применяем алгоритм к каждой части.

Вот варианты реализации с помощью кода:
Вложение:
quick sort code.png
quick sort code.png [ 34.77 КБ | Просмотров: 410 ]

Разница не в языке программирования, а в реализации.
В ДРАКОН-схеме повторял реализацию С++ варианта.

Картинка работы алгоритма:
Вложение:
quick sort picture.png
quick sort picture.png [ 58.83 КБ | Просмотров: 410 ]


3. ДРАКОН-схема(сырая!):
Вложение:
quick sort.png
quick sort.png [ 313.91 КБ | Просмотров: 410 ]

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

У кого есть идеи, пожалуйста, высказывайте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Ноябрь, 2017 21:09 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 647
Владимир Невзоров писал(а):
У кого есть идеи, пожалуйста, высказывайте.

1. Смени инструмент. Данный не отмечает веточные циклы.
2. Перепиши на русском.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 10 Ноябрь, 2017 08:21 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3535
Откуда: Москва
Владимир Невзоров писал(а):
У кого есть идеи, пожалуйста, высказывайте.

Попробуйте:
разрезать длинную колбасу на смысловые части и каждую часть изобразить как отдельную ветку силуэта.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Февраль, 2018 09:04 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
LKom писал(а):
Владимир Невзоров писал(а):
У кого есть идеи, пожалуйста, высказывайте.

1. Смени инструмент. Данный не отмечает веточные циклы.
2. Перепиши на русском.


1. Нашел эту возможность. Правда, пока не пойму как её применить в данной схеме.
2. Задумался над советом. Решил последовать. Стал переписывать, затем стал читать статьи про алгоритм на русском. Стало понятней! Думаю, по терминологии сейчас лучше получилось, хотя и не идеал.

Владимир Паронджанов писал(а):
Владимир Невзоров писал(а):
У кого есть идеи, пожалуйста, высказывайте.

Попробуйте:
разрезать длинную колбасу на смысловые части и каждую часть изобразить как отдельную ветку силуэта.


Разрезал. Решил реализовать схему, опираясь на код в столбце "Java" - там, где есть отдельная функция "Разделения", которая постоянно вызывается в главной функции.

Возникли сложности.
1. Реализация ставки
По идеи отдельную функцию надо бы сделать вставкой. Но не пойму как в онлайн дракон-редакторе Степана Митькина реализовать вставку. Иконка "вставка" есть(ей воспользовался для вызова функции), а её реализацию(отдельный блочок около силуэта) не знаю как вставить.
2. Передача параметров.
Не зная как сделать вставку, реализовал код функции "Разбиения" в отдельной ветки. Даже если была бы вставка, в которой находится реализация функции - всё равно не знаю как передать туда нужные параметры.
Поэтому сэмулировал передачу параметров в функцию "Разбиение" с помощью иконки "комментарий" и сделал небольшие отступы показывая что это один логический кусок - вызов функции с нужными параметрами, получение результата.

Возможно есть другая концепция по реализации того что хочу, но пока уперся в эти сложности.

Вот текущая реализация.
Вложение:
Quick sort.png
Quick sort.png [ 718.95 КБ | Просмотров: 142 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Февраль, 2018 16:56 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 448
Владимир Невзоров писал(а):
Владимир Паронджанов писал(а):
Попробуйте:
разрезать длинную колбасу на смысловые части и каждую часть изобразить как отдельную ветку силуэта.

Разрезал.

По-моему, разрез прошёл не лучшим образом.
Задача веток силуэта — показать смысловые части.
Таких частей в быстрой сортировке две:
1. Разбиение массива на 2 части.
2. Рекурсивный вызов функции по этим двум частям.
Это не очевидно из вашей диаграммы.

В диаграмме это должно быть. Ещё нужна проверка на тривиальные случаи: 0, 1 и 2 элемента.
Это можно вынести в отдельную функцию.

Владимир Невзоров писал(а):
Возникли сложности.
Иконка "вставка" есть(ей воспользовался для вызова функции), а её реализацию(отдельный блочок около силуэта) не знаю как вставить.

Икона Вставка содержит название другой диаграммы.
Эта другая диаграмма не обязана присутствовать как блочок около силуэта.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Февраль, 2018 18:58 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
1. Вынес часть "Разбиение" отдельной вставкой.
2. По поводу проверок на тривиальные случаи - эти проверки реализуются в основном в части "Разбиение". Я там поменял местами некоторые "да" и "нет" так, чтобы стало видно, что при определенных проверках мы вообще ничего не делаем, а просто идем по шампуру сверху вниз - "пролетаем свободно" весь алгоритм.
3. Изменил передачу и прием параметров в "Разбиение". Пожалуйста, оцените.

Вложение:
Quick sort v2.png
Quick sort v2.png [ 535.04 КБ | Просмотров: 116 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Февраль, 2018 22:12 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3535
Откуда: Москва
С какой целью вы выделил вставку? получились два крохотных алгоритма.
При этом Целостная картина утеряна.

Мне кажется, лучше не вырывать вставку из контекста.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Февраль, 2018 07:01 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 103
Владимир Паронджанов писал(а):
С какой целью вы выделил вставку? получились два крохотных алгоритма.
При этом Целостная картина утеряна.

Мне кажется, лучше не вырывать вставку из контекста.


Хорошо. Допустим, я вернусь к варианту помещения алгоритма "Разделения" просто в отдельную ветку и вместо использования иконы "вставка" будет переход на созданную ветку.
Но, я до сих пор не пойму как:
1) Туда перейти и дать входные параметры;
2) Возвращаясь дать выходные параметры.

Т.е. основной вопрос - как передавать данные между ветками?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Февраль, 2018 09:13 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3535
Откуда: Москва
Владимир Невзоров писал(а):
вместо использования иконы "вставка" будет переход на созданную ветку...
не пойму как:
1) Туда перейти и дать входные параметры;
2) Возвращаясь дать выходные параметры.

Т.е. основной вопрос - как передавать данные между ветками?
Владимир, спасибо за ответ.

Вы поставили новый вопрос, который ранее не обсуждался.
1) как передавать данные между ветками?
2) И нужно ли это делать?

Это очень интересные вопросы.

Уважаемые коллеги!

Какие будут мнения по поводу вопросов Владимира Невзорова?


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

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 448
Владимир Паронджанов писал(а):
1) как передавать данные между ветками?

Никак не передавать. В этом прелесть веток силуэта.
Не нужно ничего делать. Не требуется связывание через параметры, возвращаемые значения.
Данные между ветками передаются так же, как между двумя иконами Действие.


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

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


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

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


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

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