DRAKON.SU

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

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




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

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

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

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

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

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


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


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

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

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

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

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

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

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


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

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

Приятно, что люди заинтересовываются ДРАКОНом. Я описал случай в сообщении выше. Автор вчерашней темы начал новую тему. Другой человек позвал меня в тему с просьбой описать алгоритм с помощью блок-схемы: ссылка на сообщение на 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
Сообщения: 5846
Откуда: Москва
Иван Енжаев писал(а):
Есть небольшая проблема. Код автора темы ужасен. Но при этом можно частично ухватить, что он хочет.

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

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

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

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

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


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

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

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

У меня короткий вопрос. У Степана Митькина в редакторе есть "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 КБ | Просмотров: 9566 ]


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


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

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

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

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


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

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

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

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

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


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

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

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


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

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

: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
Сообщения: 5846
Откуда: Москва
Иван Енжаев писал(а):
из списка "Банды четырёх", по книге "Design Patterns via C#" Александра Шевчука. Кто начинает изучать паттерны рекомендую его книгу (она бесплатная)

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

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


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

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


Вложение:

DesignPatterns_materials.rar


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

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

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

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

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

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

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


Вложения:
Boormarks.png
Boormarks.png [ 206.94 КБ | Просмотров: 9497 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 01 Июнь, 2019 14:35 
Аватара пользователя

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 39
Откуда: Саратов, РСФСР, Советский Союз
Я нарисовал студенту на форуме простейшую ДРАКОН-схему.
Посмотрите, пожалуйста, правильно ли: https://drakonhub.com/ide/doc/8observer8/57


Вложения:
20190601151724.png
20190601151724.png [ 50.53 КБ | Просмотров: 9255 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 05 Июнь, 2019 00:45 

Зарегистрирован: Понедельник, 07 Май, 2018 01:43
Сообщения: 31
Судя по всему, последний блок лишний, так-как в условии стоит ограничение при вводе. Хотя если предполагается, что на это ограничение всё-же забьют, то возможно в нём есть смысл :D


Вложения:
Screenshot_45.jpg
Screenshot_45.jpg [ 69.72 КБ | Просмотров: 9238 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 05 Июнь, 2019 19:04 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Побочное замечание. Исходная схема выше содержит только иконы, образ которых отличается лишь "ломкостью" боковых линий -- ввод/вывод и вопросы. В результате те же вопросы (ромбы) слабо выделяются на фоне "стрелок" (ввод/вывод). Имхо, ввод/вывод в виде старых "непростых" икон (составных как "стрелка" + прямоугольник) получше их отделяют от "ромбиков".


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 39
Откуда: Саратов, РСФСР, Советский Союз
Зуев Александр писал(а):
Судя по всему, последний блок лишний, так-как в условии стоит ограничение при вводе. Хотя если предполагается, что на это ограничение всё-же забьют, то возможно в нём есть смысл :D

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


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

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

Я ни в кратком руководстве, ни в Википедии, ни просто в интернете не нашёл, как пользоваться вторым типом. Прямоугольник можно оставлять пустым при словесных описаний алгоритмов? Или лучше стрелку оставлять пустой?

https://drakonhub.com/ide/doc/8observer8/57

Вложение:
20190605212851.png
20190605212851.png [ 50.37 КБ | Просмотров: 9212 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 06 Июнь, 2019 15:46 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Иван Енжаев писал(а):
Я ни в кратком руководстве, ни в Википедии, ни просто в интернете не нашёл, как пользоваться вторым типом. Прямоугольник можно оставлять пустым при словесных описаний алгоритмов? Или лучше стрелку оставлять пустой?

Видимо, каждый волен определять свой тезаурус для моделирования. Как вариант, например, верхняя надпись (в "стрелке"): ' Вывести сообщение ', нижняя (в прямоугольнике): ' "Суббота" '.

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


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

Зарегистрирован: Воскресенье, 31 Март, 2019 02:55
Сообщения: 39
Откуда: Саратов, РСФСР, Советский Союз
PSV100 писал(а):
Как вариант, например, верхняя надпись (в "стрелке"): ' Вывести сообщение ', нижняя (в прямоугольнике): ' "Суббота" '.

А как быть с комплексной иконой "Ввод" при словесном описании алгоритма в данном примере? Допустимо ли оставлять прямоугольник пустым?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Июнь, 2019 16:46 

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


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

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


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

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


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

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