DRAKON.SU

Текущее время: Понедельник, 19 Февраль, 2018 16:35

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




Начать новую тему Ответить на тему  [ Сообщений: 76 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 10 Февраль, 2018 14:06 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 102
Степан Митькин писал(а):
Владимир Паронджанов писал(а):
1) как передавать данные между ветками?

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


Можно пример? Мне пока не понятно.


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

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 447
Владимир Невзоров писал(а):
Можно пример? Мне пока не понятно.

Я понял суть ваших затруднений!
Вы не поняли, что такое силуэт, и уже начали его применять.
Разберитесь, что такое силуэт.
Посмотрите силуэты из статей и книг В.Д. Паронджанова.
Посмотрите вот этот пример
https://drakon-editor.com/ide/doc/examples/57

Потом уже можно будет задавать вопросы и обсуждать.
А то получается вот как здесь.
https://www.youtube.com/watch?v=pQHX-SjgQvQ


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

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 646
Степан Митькин писал(а):
... получается вот как здесь.
https://www.youtube.com/watch?v=pQHX-SjgQvQ
на русском
https://www.youtube.com/watch?v=ha260Kb8GrY - "Техподдержка в средневековье"


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

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 108
Владимир Невзоров писал(а):
Степан Митькин писал(а):
Данные между ветками передаются так же, как между двумя иконами Действие.

Можно пример? Мне пока не понятно.

Тут ответ очень простой: в Драконе вообще никак не отражается передача данных. Считается, что вообще все данные передаются при переходе от одной иконе к другой, поэтому никаких действий и "не нужно" осуществлять для того, чтобы что-то передать.

Из-за этого и возникают конструкции вида " индекс := 1 ", которые как бы работают с данными, но при этом невозможно сказать кто воспользуется (и воспользуется ли) этой переменной "индекс"


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

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 102
Степан Митькин писал(а):
Посмотрите силуэты из статей и книг В.Д. Паронджанова.
Посмотрите вот этот пример
https://drakon-editor.com/ide/doc/examples/57

В данной схеме веточный переход я воспринимаю как "человек переходит из одного состояния в другое".
Только что он разговаривал. Был занят одним делом. Теперь начинается переход в состояние "Перекуси". Он как бы идет в столовую по этим линиям перехода :) Или заканчивает обсуждение с коллегами, поворачивается на стуле и переходит в состояние "Перекуси". И после этого уже достает пирожок и т.д.
Я воспринимаю этот переход как переход человека из одного состояния в другое. Т.е. имеем дело с тем же человеком.

У меня же в схеме алгоритм тоже как бы переходит в определенное состояние. Но в этот переход нужно затолкнуть еще "пирожок"(или колбасу), а не взять его когда уже перешли.

Степан Митькин писал(а):
Потом уже можно будет задавать вопросы и обсуждать.
А то получается вот как здесь.
https://www.youtube.com/watch?v=pQHX-SjgQvQ

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

Владимир Ситников писал(а):
Тут ответ очень простой: в Драконе вообще никак не отражается передача данных. Считается, что вообще все данные передаются при переходе от одной иконе к другой, поэтому никаких действий и "не нужно" осуществлять для того, чтобы что-то передать.

Из-за этого и возникают конструкции вида " индекс := 1 ", которые как бы работают с данными, но при этом невозможно сказать кто воспользуется (и воспользуется ли) этой переменной "индекс"

Как же мне быть? Подскажите, пожалуйста.

Мне что - переходить на подобную нотацию и отбить привлекательность приятного визуального восприятия алгоритмов, т.к. так только глаза сломаешь?
Вложение:
c-search-and-sorting-exercise-7.png
c-search-and-sorting-exercise-7.png [ 23.3 КБ | Просмотров: 161 ]


Я уж думал, что переплюну эту графику(одну из немногих в интернете) понятной ДРАКОН схемой. А, получается, что нормально выразить "Быструю Сортировку" в принципе не возможно, даже ДРАКОНом?


Последний раз редактировалось Владимир Невзоров Суббота, 10 Февраль, 2018 19:00, всего редактировалось 1 раз.

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

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 108
Владимир Невзоров писал(а):
Владимир Ситников писал(а):
Из-за этого и возникают конструкции вида " индекс := 1 ", которые как бы работают с данными, но при этом невозможно сказать кто воспользуется (и воспользуется ли) этой переменной "индекс"

Как же мне быть?

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

Я, например, посматривал на Дракон для АСУТП, но как раз неясно как в Драконе всё это представлять, т.к. передавать данные всё-таки нужно.

Владимир Невзоров писал(а):
Я уж думал, что переплюну эту графику(одну из немногих в интернете) понятной ДРАКОН схемой. А, получается, что нормально выразить "Быструю Сортировку" в принципе не возможно, даже ДРАКОНом?
Можно, например, выразить QuickSort на языке Haskell:
Код:
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
    where
        lesser = filter (< p) xs
        greater = filter (>= p) xs

Первая строка говорит о том, что в результате сортировки пустого списка получается пустой список
Вторая строка говорит, что результатом сортировки списка является "сортировка элементов меньших p", потом сам элемент p, потом сортировка элементов больших либо равных p. В данном случае, p это "первый элемент списка", а xs -- все остальные.

Без всяких квадратиков понятна суть алгоритма.


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

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 102
Смотрится довольно аккуратно :)

В принципе, я и на С++ подобный лаконичный вариант реализации находил, где используется уже имеющейся алгоритм из стандартной библиотеки. Просто, другое дело, что, чтобы понять этот самый центровой алгоритм, который и делает основную работу, надо лезть в документацию. И получаем опять "перелистывание страницы"/разрыв визуального восприятия. А ДРАКОН, по моему мнению, тем и хорош, что позволяет держать всё основное для понимания в поле зрения реализуя принцип "Посмотрел и понял!". Этого бы хотелось достичь :)


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

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

Владимир, я считаю, что вы на правильном пути.
Вы правильно ставите задачу и хорошо формулируете цель.

Предложения об использовании традиционных текстовых языков программирования для вашей задачи малоинтересны.

Вы привели блок-схему (которая вам понравилась).
Попробуйте перевести ее на ДРАКОН.
Постарайтесь "переплюнуть эту графику", как вы планировали.

Выложите одно или несколько решений, которые вы считаете правильными.


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

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 108
Владимир Невзоров писал(а):
Смотрится довольно аккуратно :)

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

Документацию на что?

В приведённом примере из стандартной библиотеки это функция filter (которая фильтрует список по определённому условию), оператор ++ (обозначает объединение списков).
Т.е. как раз описан именно алгоритм, а не "вызов библиотечной функции quicksort". Это именно реализация.

Владимир Невзоров писал(а):
И получаем опять "перелистывание страницы"/разрыв визуального восприятия

Можете ткнуть где именно в quickSort на Haskell у вас возникает "перелистывание страницы"?
Даже если на простом русском написать, то будет очень и очень похоже на Haskell код.
"Для сортировки массива нужно взять его первый элемент, отсортировать те, что меньше этого элемента, потом добавить сам элемент, потом добавить отсортированные остальные"
Но Haskell код это не просто словоблудие, а прямо реально работающий код. И алгоритм quicksort он описывает гораздо понятнее/компактнее.


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

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

В приведённом примере из стандартной библиотеки это функция filter (которая фильтрует список по определённому условию), оператор ++ (обозначает объединение списков).
Т.е. как раз описан именно алгоритм, а не "вызов библиотечной функции quicksort". Это именно реализация.

Можете ткнуть где именно в quickSort на Haskell у вас возникает "перелистывание страницы"?

Это даже не про Haskell. Я имел ввиду найденную мною реализацию. Приведу её, чтобы не было недоразумений о чем я пишу.

Реализация алгоритма "Быстрой сортировки" на языке С++ с использованием:
1) Библиотечного алгоритма nth_element для разбиения диапазона на поддиапазоны, в одном из которых элементы меньшие опорного, в другом - большие;
2) Рекурсии - для сортировки получившихся поддиапазонов;
3) Шаблонов - для работы с любым контейнером.

Код:
template<class FwdIt, class Compare = std::less<>>
void quickSort(FwdIt first, FwdIt last, Compare cmp = Compare{})
{
    auto const N = std::distance(first, last);
    if (N <= 1) return;
    auto const pivot = std::next(first, N / 2);
    std::nth_element(first, pivot, last, cmp);
    quickSort(first, pivot, cmp);
    quickSort(pivot, last, cmp);
}

Для меня - человека заинтересованного в теме "Алгоритмы" и в их реализации с использованием возможностей языка С++ - этот код стал понятным после пару дней копаний. Вроде бы всё понятно. Для меня.

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

Приведенный на Haskell'e код мне достаточно понятен. Немного глазу привыкнуть к синтаксису(я не знаток множества языков) и, действительно, очень лаконично смотрится! Единственное - для меня, все же, были очень важны Ваши комментарии по поводу строчек - что какая делает и что при этом происходит. Их вышло меньше, чем в приведенном мною описание.

Вот и раскрывается моя мечта - очень хочется понизить порог вхождения в тему начинающих программистов которые, возможно, не знают что такое шаблоны, nth_element(в случае реализации С++), что такое xs, filter(в случае Haskell), а просто бы посмотрели на какую-то магическую схему, где видна суть алгоритма и сказали бы "А, тут же всё понятно! Пф!".


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

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 108
Владимир Невзоров писал(а):
Вот и раскрывается моя мечта - очень хочется понизить порог вхождения в тему начинающих программистов которые, возможно, не знают что такое шаблоны, nth_element(в случае реализации С++), что такое xs, filter(в случае Haskell), а просто бы посмотрели на какую-то магическую схему, где видна суть алгоритма и сказали бы "А, тут же всё понятно! Пф!".

Ну, мечта интересная. Пару недель назад было похожее обсуждение при переводе терминологии Git. Там тоже товарищ хочет сделать программу Git более понятной для новичков (предлагал разнообразные варианты перевода для слова commit), но нюанс в том, что далеко не всегда оно реально нужно.

Так и тут. Да, какие-то алгоритмы можно оформить на Драконе так, что посмотришь и прямо понятно что из себя представляет алгоритм.
Но есть и такие алгоритмы, которые нет никакого смысла рисовать на Драконе.

Взять, например, алгоритмы работы с кучей Фибоначчи

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


Или, например, дерево Фенвика. Там картинка полезна, но вовсе не блок-схема, а заштрихованные квадратики на двумерной сетке. И что? Код на текстовом языке вообще простейший:
Код:
function modify(i, d):
   while i < N
       t[i] += d
       i = i | (i + 1)

Для описания того "как же дерево Фенвика умудряется работать" картинка полезна. Но, повторюсь, не блок-схема и не Дракон-схема.


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

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

Может, тогда вариант применения ДРАКОН в описание алгоритмов действительно не всеобъемлющ, а для него просто стоит выделить определенную область.
Тогда можно выдвинуть такой тезис:

Польза от ДРАКОН-схемы лишь в легком знакомстве с алгоритмом.
Поясню. Есть тема на нашем форуме, где Степан Митькин создавал схему на алгоритм Луна.

Вложение:
last ned.png
last ned.png [ 66.57 КБ | Просмотров: 129 ]

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

Получилось, что вместо:
Код:
sum += d3
- реализации, зависимой от языка программирования, в первой схеме автора,
вышло:
Код:
"Рассчитать сумму цифр последовательности после изменений"
- словесное описание на русском - что уже каждый программист переведет на свой используемый язык.

Моё впечатление.
Ради чего я это привел. А суть в том, что когда листая темы на форуме я увидел эту симпатичную для глаза реализацию - мне понравилось! Я увидел суть! Я бы вообще не полез вдруг интересоваться алгоритмом Луна на википедию или куда-то там еще. А тут схема меня заинтересовала и я полез.

Что я увидел в статье? Увидел я там разную информацию:
1) Словесную в виде определений, пунктов и т.п.;
2) Нагромождение цифр, которые должны показать как работает алгоритм;
3) Определение работы алгоритма словесно по пунктам.

В общем, много разношерстной информации. Но так, наверное, и должно быть! Эта же статья чтобы лучше понять алгоритм. Да, я согласен! Но теперь(после схемы) мне не страшно туда смотреть. Конечно же, я сморщил лоб когда открыл описание, т.к. в деле алгоритмов я новичок и делаю так практически каждый раз когда вижу новый алгоритм. Но у меня не было в голове "Паника! This is unpossible! Shut it and get relax!", - извините за мой французский.
Может быть, в этом ДРАКОН и силен? Что он не всеобъемлющ, но для знакомства с чем-то он хорош?


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

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 108
Владимир Невзоров писал(а):
Тогда можно выдвинуть такой тезис:
Польза от ДРАКОН-схемы лишь в легком знакомстве с алгоритмом.

С алгоритмом рыбалки? Возможно.

Если же тезис не только к рыбалке относится, то он ломается на алгоритме "дерева Фенвика". 4 строки кода всего, и Дракон-схема бесполезна для пояснений. Пояснять суть нужно текстом/картинками.


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

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 646
Владимир Ситников писал(а):
... 4 строки кода всего, и Дракон-схема бесполезна для пояснений.
Это ошибочное утверждение.

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


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

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


Выкладываю очередное решение. Поясню ниже что сделал.
Вложение:
Quick sort v3.png
Quick sort v3.png [ 823.21 КБ | Просмотров: 93 ]


1. Словесное описание.
Пришел к словесному описанию знаков "<", "=". Причем вместо "<=" написал не "меньше, либо равно", а сделал два вопроса. Возможно, это повысит читаемость.

2. Перенос данных между ветками.
В С++ есть понятие области видимости переменных. Это когда, к примеру, в новом цикле объявили переменную(локальную) и она живет только там. Есть переменные выше этого цикла. Они буду жить дольше.

Код:
  int bigLife = 0;            // bigLife живет все время выполнения данного кода

  for(int i = 0; i < 5; i++)  // i живет во время исполнения всех итераций цикла
  {
     int smalLife = 3 + i;    // smallLife живет во время одной итерации цикла
  }
  smalLife = 4;               // ОШИБКА! smalLife уже не существует

  bigLife = 3;                // Хорошо, bigLife всё еще существует


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

Самым малым временем жизни обладают переменные "Текущий левый индекс" и "Текущий правый индекс". Они создаются в ветке "Разбиения" и живут только во время исполнения этой ветки.

3. Сложности рекурсии.
Что имеем в итоге. Вроде бы взаимодействие между локальными переменными и глобальными имитирует перенос данных между ветками. Но я попытался подумать про второй или третий вызов рекурсии - и у меня голова чуть не закружилось :)
Там уже ломаются данные. Да и не понятно как эту рекурсию показать. Как понять, что вот сейчас мы вышли из той самой рекурсии, подразумеваем данные более верхние(по стеку), т.е. надо как-то помнить те данные на том шаге рекурсии. Ветки те же самые, но из-за рекурсии алгоритм в них же всё больше и больше погружается. Как контролировать этот процесс?
Это, вообще, решаемо?

P.S. Какие могут быть рекомендации по самой схеме?


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

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 102
Приведу еще пример. Возможно, стоит сделать отдельную ветку на форуме. Но, пока сделаю пост здесь.

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

Сейчас подаю этот алгоритм "Алгоритм добавление вершины в АВЛ-дерево" под соусом новой мысли - сопряжение анимаций:
1) Действия над данными;
2) Прохода по ДРАКОН-схеме.

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

Сейчас же выложу материал последовательно.
1) Вот анимация вставки:
(почему-то с форума не проигрывается, нужно специально нажать)
Вложение:
AVLinsert.gif
AVLinsert.gif [ 6.29 МБ | Просмотров: 71 ]


2) Вот созданная Ильченко Эдуардом схема:
(Не получить нормально вставить ссылку. Тема - viewtopic.php?f=78&t=4003&hilit=вставка+в+дерево )
Изображение

Много было обсуждений схемы. И про уход от языка реализации говорилось и про ту самую рекурсию. Пока оставим это.
И представим как бы круто это смотрелось при синхронном выполнение анимации над данными и прохода в ДРАКОН схеме!
Чтобы глаза одновременно видели и процесс над данными и исполняемый алгоритм - шаги, проверки и т.п.!

P.S. Кому интересно поиграться с алгоритмами - вот ресурсы с анимациями:
1) Usfca
2) visualgo - даже показывает код!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Февраль, 2018 03:56 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 35
Прилагаю пример совместного динамического показа данных и алгоритмов:

https://www.youtube.com/watch?v=0qjcKfDCdGI

Это иллюстрация к https://en.wikipedia.org/wiki/Euclidean ... ed_example


Вложения:
euclid 2 OG 20180213.gif
euclid 2 OG 20180213.gif [ 2.48 МБ | Просмотров: 50 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Февраль, 2018 06:50 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 102
Olegar писал(а):
Прилагаю пример совместного динамического показа данных и алгоритмов:

Плюсую двумя руками!

Это то, что у меня было в голове!
А благодаря столбцу "step" можно будет за уровнями рекурсии следить отображая данные на каждом вхождение!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 15 Февраль, 2018 02:56 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 35
Алгоритм Евклида в рекурсивном исполнении: https://www.youtube.com/watch?v=M_wk2QxRM4w


Вложения:
euclidrec OG 20180214.gif
euclidrec OG 20180214.gif [ 1.46 МБ | Просмотров: 30 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 15 Февраль, 2018 09:55 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3534
Откуда: Москва
Олег, зеленые стрелки, демонстрирующие рекурсию, желательно улучшить.

1. Надо сделать их не прямыми, а криволинейными.
2. Кривая не должна пересекать линии.
3. Начало кривой (зеленый кружок) должно исходить из крайней правой точки фигуры (по горизонтали) вправо.
4. Стрелка кривой должна вонзаться в крайнюю правую точку фигуры (по горизонтали) справа.

Как вы считаете?


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

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


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

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


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

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