DRAKON.SU

Текущее время: Понедельник, 27 Май, 2019 08:49

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Суббота, 13 Апрель, 2019 00:31 
Аватара пользователя

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Я придумал задание написать простейшую программу, которая определяет находится ли точка внутри прямоугольника, при условии, что прямоугольник не поворачивается, а его стороны параллельны осям координат. Эту задачу я дал на иностранном форуме в виде ДРАКОН алгоритма: ссылка на сообщение форума. Кто-то лайкнул, а авторе темы врединой оказался и попросил закрыть тему. Важно, что я засветил ДРАКОН с правильным посылом. Кто-то наверняка заинтересуется. Посыл в том сообщении был правильный, потому что человек не понимает детектирование коллизий. Лично для меня наиболее важно продолжение моего задания, об это ниже.

Я сам для себя учитель и ученик. Я, как учитель, должен от себя потребовать написать:
  • ДРАКОН алгоритм (на русском и английском)
  • Unit-тесты. ДРАКОН-схемы и unit-тесты гармонично дополняют друг друга. Должно быть 5 unit-тестов: точка внутри, точка снаружи слева, точка снаружи вверху, точка снаружи справа, точка снаружи внизу
  • Решение (веб-приложение или исполняемый файл)
  • Залить решение на GitHub

Я выполнил все пункты в виде веб-приложения здесь в песочнице на языке TypeScript с возможностью запуска самого решение и unit-тестов (кнопка "Run Unit Tests" вверху). Unit-тесты я написал с помощью фреймворка Jasmine.

Исходники на GitHub

Вложение:
20190413011948.png
20190413011948.png [ 46.65 КБ | Просмотров: 336 ]


Вложение:
20190412234905.png
20190412234905.png [ 41 КБ | Просмотров: 336 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 13 Апрель, 2019 07:49 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4171
Откуда: Москва
В сообщении viewtopic.php?p=103026#p103026 Иван Енжаев писал(а):
Язык ДРАКОН и блок-схемы студентов на форумах

Я заметил, что во многих разделах КиберФорума студенты каждый день выкладывают задания с формулировками: "Блок-схема", "Помогите нарисовать блок-схему к программе" и т.д.

Такие темы либо остаются без ответов, либо участники форума ссылаются на ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения», который регулирует способы построения схем и внешний вид их элементов.

Либо участники форума сами рисуют обычные (запутанные) блок-схемы по ГОСТу.

Если здесь есть люди у кого есть свободное время, чтобы ненавязчиво "рекламировать" ДРАКОН-схемы, то давайте это делать на форумах для начинающих, а особенно на КиберФоруме, потому что это самый крупный форум в СНГ.

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


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Владимир Паронджанов писал(а):
Иван, вы занимаетесь чрезвычайно важным и благородным, многообещающим делом.
Ваша инициатива принесет большую пользу.

Приятно, что люди заинтересовываются ДРАКОНом. Я описал случай в сообщении выше. Автор вчерашней темы начал новую тему. Другой человек позвал меня в тему с просьбой описать алгоритм с помощью блок-схемы: ссылка на сообщение на GameDev.net. Есть небольшая проблема. Код автора темы ужасен. Но при этом можно частично ухватить, что он хочет. Я прошу вашего совета по рисованию ДРАКОН-схемы алгоритма, который можно понять из кода ниже. Я хочу, чтобы простая ДРАКОН-схема алгоритма скорректировала автора темы. Любые советы, которые посчитаете нужными.

Код автора темы bug invaders

Код:
int count = 102;
        bool collision = false;
        public void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawImage(ship, 350 + x, 530);
            e.Graphics.DrawImage(bullet, 375 + x, 520 + y);
            if(collision)
            {
                return;
            }
            e.Graphics.DrawImage(bug_one, 120, 0);
            e.Graphics.DrawImage(bug_one, 180, 0);
            e.Graphics.DrawImage(bug_one, 240, 0);
            e.Graphics.DrawImage(bug_one, 300, 0);
            e.Graphics.DrawImage(bug_one, 360, 0);
            e.Graphics.DrawImage(bug_one, 420, 0);
            e.Graphics.DrawImage(bug_one, 480, 0);
            e.Graphics.DrawImage(bug_one, 540, 0);
            e.Graphics.DrawImage(bug_one, 600, 0);
            if (y <= -510 && x >= -15 && x <= 15 && count > 0)
            {
                e.Graphics.DrawImage(coll, 360, 0);
                count = 0;
                collision = true;
            }
            if (y <= -510 && x >= -75 && x <= -45 && count > 0)
            {
                e.Graphics.DrawImage(coll, 300, 0);
                count = 0;
                collision = true;
            }
        }
        public void timer1_Tick(object sender, EventArgs e)
        {
            y -= 5;
            Invalidate();
        }
        public void timer2_Tick(object sender, EventArgs e)
        {
            count--;
            Invalidate();
        }
    }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 13 Апрель, 2019 12:13 

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

Я прошу вашего совета по рисованию ДРАКОН-схемы алгоритма, который можно понять из кода ниже. Я хочу, чтобы простая ДРАКОН-схема алгоритма скорректировала автора темы. Любые советы, которые посчитаете нужными.

Иван, не надо стремиться получить сразу простую дракон-схему.
Это слишком трудно.

Надо действовать методом последовательных приближений.

Нарисуйте любую дракон-схему (какая у вас получится), для этого ужасного кода. И выложите ее на нашем форуме.

Что дальше? Дальше ее можно обсудить и попытаться упростить (если это возможно).


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Цитата:
Нарисуйте любую дракон-схему (какая у вас получится), для этого ужасного кода. И выложите ее на нашем форуме.

Эти мелкие блок-схемы студентов (в том числе и свои мелкие задачи-решения) я буду в данной теме выкладывать. Если я почувствую что проект не мелкий, то создам новую тему. По данному коду выложу свои предположения попозже. Может завтра.

У меня короткий вопрос. У Степана Митькина в редакторе есть "Mind Map". Имеет ли этот тип диаграмм какое-то отношение к ДРАКОНу? Здесь его краткое видео: Как нарисовать mind map ГРАФ в DrakonHub

Тоже очень удобная штука. Я так законспектировал видео по английскому: https://www.youtube.com/watch?v=lH13LFLQ288

Finite Verb: https://drakonhub.com/ide/doc/8observer8/18
Non-finite Verb: https://drakonhub.com/ide/doc/8observer8/19

Вложение:
20190414030351.png
20190414030351.png [ 44.14 КБ | Просмотров: 305 ]


Вложение:
20190414030537.png
20190414030537.png [ 32.48 КБ | Просмотров: 305 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 14 Апрель, 2019 08:04 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4171
Откуда: Москва
Цитата:
У меня короткий вопрос. У Степана Митькина в редакторе есть "Mind Map". Имеет ли этот тип диаграмм какое-то отношение к ДРАКОНу?
Не Mind Map, a ГРАФ.
Нет, прямого отношения не имеет.

ДРАКОН — для процедурных знаний.
ГРАФ — для декларативных знаний.

Язык ГРАФ описан в двух моих книгах:
viewforum.php?f=208
1. "Почему мудрец похож на обезьяну"
2. "Как написать хороший учебник для хороших людей"


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Цитата:
ГРАФ — для декларативных знаний

Я когда услышал слово "граф" на видео Степана я подумал, что он имеет в виду этот граф: Граф (математика) - Википедия. Я не обратил внимания, что слово написано большими буквами. Теперь пазлы сошлись. ГРАФ - это альтернатива Mind Map, как ДРАКОН - альтернатива Flowchart.

Цитата:
Язык ГРАФ описан в двух моих книгах

Я хотел уточнить для себя. Вы же представитель Владимира Даниловича? Я до того как написать первое сообщение на форуме посмотрел много видео на youtube про ДРАКОН. В одном из видео Владимир Данилович сказал, что он много работает, пишет книги и у него нет времени, чтобы писать на форуме. Правда, то видео было записано лет 5 назад.


Последний раз редактировалось Иван Енжаев Воскресенье, 14 Апрель, 2019 14:24, всего редактировалось 1 раз.

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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4171
Откуда: Москва
Иван Енжаев писал(а):
Я хотел уточнить для себя. Вы же представитель Владимира Даниловича?
Почему представитель?
Я и есть Владимир Данилович.
Но вы правы — времени действительно не хватает.


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Владимир Паронджанов писал(а):
Иван Енжаев писал(а):
Я хотел уточнить для себя. Вы же представитель Владимира Даниловича?
Почему представитель?
Я и есть Владимир Данилович.
Но вы правы — времени действительно не хватает.

:shock: Я думаю, что лучшая благодарность от меня будет не лениться и использовать ДРАКОН ежедневно в своей практике и ненавязчиво рекламировать его на русских и зарубежных форумах.

В редакторе Степана есть недостаток в онлайн-редакторе типа "Free-domain diagram". Для UML диаграмм классов отсутствую связи-отношения: наследование, агрегация и композиция. Есть только связь-отношение "зависимость". Но стандарт UML допускает подписывать с помощью текста связь-отношения "зависимость", превращая её в любую связь. Я пока не смотрел, насколько будет удобно рисовать UML диаграммы последовательностей для описания отношения между участниками в паттернах. В общем, я напишу, если будут мысли по этому поводу в процессе изучения 23х паттернов из списка "Банды четырёх", по книге "Design Patterns via C#" Александра Шевчука. Кто начинает изучать паттерны рекомендую его книгу (она бесплатная), а так же его видео курсы по паттернам: Понятие паттерна проектирования. Курс "Шаблоны проектирования" Я считаю, что ДРАКОН-блок-схемы алгоритмов, паттерны на UML и unit-тесты - это три необходимых вещи для ежедневной работы программиста. Про unit-тесты (TDD и BDD) я ещё ни раз упомяну, потому что я уверен, что unit-тесты и ДРАКОН очень тесно связаны. Пока объяснить не могу. Нужно больше практики.

Владимир Паронджанов писал(а):
Язык ГРАФ описан в двух моих книгах:
viewforum.php?f=208
1. "Почему мудрец похож на обезьяну"
2. "Как написать хороший учебник для хороших людей"

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 14 Апрель, 2019 18:57 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4171
Откуда: Москва
Иван Енжаев писал(а):
из списка "Банды четырёх", по книге "Design Patterns via C#" Александра Шевчука. Кто начинает изучать паттерны рекомендую его книгу (она бесплатная)

Иван, а вы приложите эту бесплатную книгу в формате pdf к своему сообщению, и все ее с удовольствием скачают.

Надо писать коротко "дракон-схемы"


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Владимир Паронджанов писал(а):
Иван, а вы приложите эту бесплатную книгу в формате pdf к своему сообщению, и все ее с удовольствием скачают.


Вложение:

DesignPatterns_materials.rar


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 27
Откуда: Саратов
Владимир Паронджанов писал(а):
Нарисуйте любую дракон-схему (какая у вас получится), для этого ужасного кода. И выложите ее на нашем форуме.

Что дальше? Дальше ее можно обсудить и попытаться упростить (если это возможно).

Я использую в комплексе Trello и методику повышения личной эффективности GTD (Getting Things Done - Википедия), поэтому это задание у меня в списке, я про него не забуду. Просто мне нужно сделать рабочие примеры через ООП на C#/OpenGL и TypeScript/WebGL, потому что я привыкаю подтверждать слова своими продуктами в виде кода и схем.

Цитата:
"Как написать хороший учебник для хороших людей"

Эта книга великолепна! Как раз, что я искал в данный момент, то что мне не хватало.

Я параллельно с чтением создаю содержание книги для бесплатной программы STDU Viewer. Выложу позже файл .xml, который можно будет импортировать в STDU Viewer, как Bookmarks.


Вложения:
Boormarks.png
Boormarks.png [ 206.94 КБ | Просмотров: 236 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2

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


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

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


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

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