DRAKON.SU

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

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




Начать новую тему Ответить на тему  [ Сообщений: 70 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 19 Апрель, 2008 16:31 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Axcel писал(а):
Что касается цикла, может лучше так?
Это будет неправильно, поскольку в вашем варианте проверка IdentChar выполняется перед ReadPrev, а не после. Прокрутите мысленно первую итерацию цикла: IdentChar выполняется два раза подряд, без ReadPrev между вызовами. Это значит, что r.ch не меняет значение. Кроме того, по этой же причине в id.name может быть записан лишний символ, не удовлетворяющий условию IdentChar.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 19 Апрель, 2008 18:07 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 28
Откуда: Ленинград, Емельянов Алексей Николаевич
Да, действительно. Тогда, если следовать схеме с LOOP, то
Код:
      LOOP
         IF (IdentChar (r.ch))
         THEN id.name [i] := r.ch END 
         ELSE EXIT END;;
         DEC (i);
         IF (i >= 0)
         THEN  r.ReadPrev  END 
         ELSE EXIT END
       END
   END

Ну, с циклом Вы наверно сами разберетесь. Или Вы хотите сказать, что имено Дракон-схема обеспечила Вам "глубокое понимание".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 19 Апрель, 2008 18:33 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
И таки задачка автоматная. И нечего тут мудрить с циклами :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 19 Апрель, 2008 20:42 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Уважаемый Геннадий Тышов!

Вы сделали великое дело. Создали дракон-редактор. И смело показали его в открытом доступе. Вы сделали это ПЕРВЫМ. Огромное Вам спасибо.

Благодаря Вам появилась возможность превратить Дракон из туманной абстракции в конкретный факт. Попробовать его на зуб. Пощупать руками. Попинать ногами. Более тщательно выявить его недостатки. И обрушить на него новую волну критики. А критика — это величайшая ценность, которая позволяет двинуть дело вперед.

Ваш редактор в некоторых отношениях ПРЕВОСХОДИТ наш редактор. Ваш редактор имеет БОЛЕЕ РАЗВИТУЮ СИСТЕМУ РАБОТЫ С УЗЛАМИ И ЛИНИЯМИ.
У нашего, конечно, тоже есть достоинства — он полностью отработан, вылизан и работает, как часы. Но это мелочь.

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

Но есть одно замечание, которое мне хотелось бы высказать уже сейчас.

Отвечая Александру Ильину, Вы сказали (Пятница, 18 Апрель, 2008 21:42):

    «Вы успешно осваиваете Дракон-редактор. Надо освоить объединение линий, икона "Конец" должна находиться на одной вертикали (шампуре) с заголовком».
Конечно, Вы правы. Правило шампура — важное правило языка Дракон. И его, конечно, надо соблюдать.

Однако здесь есть одно «но». Причем очень важное.

Александр Ильин — это ЦАРЬ. Не царское это дело — помнить и соблюдать дурацкие правила. ЦАРЬ должен МЫСЛИТЬ. А помнить и соблюдать правила должен НЕГР. Негром является дракон-редактор.

Задача состоит в том, чтобы воспитать такого негра. Беда в том, что ваш негр — большой либерал. Он дает царю слишком много свободы. Позволяет ему делать явные глупости. В результате царь оказывается в неудобном положении. Это плохо. Это неуважение к царю. Потому что царь не должен ошибаться. Ведь он — царь. Цари не ошибаются.

Негр должен быть не либералом, а цербером. Допустим, царь по забывчивости или по другой причине собирается совершить ошибку. Цербер должен в зародыше пресекать такие попытки. То есть полностью исключать возможность ошибочных действий (ошибок графического синтаксиса).
В частности, любые попытки царя нарушить «правило шампура» НЕ ДОЛЖНЫ исполняться. Независимо от того, что хочет или не хочет царь, правило шампура должно соблюдаться АВТОМАТИЧЕСКИ.
К сожалению, для примитива Ваш редактор эту задачу не решает. А он обязан ее решать.

Ни в коем случае нельзя загружать ЦАРЯ подобной черновой работой.
Повторю еще раз: не царское это дело! Надо создать для царя по-настоящему ЦАРСКИЕ условия. То есть обеспечить для него максимальный интеллектуальный комфорт.

Таким образом, либерализм вашего негра уменьшает степень автоматизации работы пользователя. Что, конечно, плохо.

Это с одной стороны. А с другой, либерализм вашего негра — большое достоинство. Например, Илья Ермаков хочет разместить элементы так, как ему нужно для наглядности. Негр не повинуется — Илья недоволен. Цитирую (Илья Ермаков Пятница, 18 Апрель, 2008 21:00):

    «Позиции элементов не сохраняются (не могу выровнять операторы в разных ветках относительно друг друга — всё равно сбрасываются)».

Илья прав — негр должен исполнять РАЗУМНЫЕ приказы царя.
Так что задача существенно усложняется: с одной стороны негр должен быть цербером, с другой — либералом. Это не так просто. Можно ли этого добиться? Полагаю, да. Но как это сделать?

Рискуя ошибиться, изложу свое понимание проблемы. In my humble opinion, решение состоит в следующем. Редактор должен работать в двух режимах. Назовем их:
    • цербер-режим,
    • либерал-режим.

На первом этапе по умолчанию выбирается цербер-режим. В чем его суть? Редактор работает как цербер-автомат. Либерализм категорически запрещен. Шаг налево, шаг направо — расстрел. На этом этапе пользователю запрещено работать с узлами и линиями.
Но! Это вовсе не значит, что каких-то узлов и линий не будет. Вовсе нет. В цербер-режиме формируется ПОЛНОСТЬЮ ЗАКОНЧЕННАЯ дракон-схема. Которая полностью соответствует правилам языка Дракон, описанным в моей книге.
Если речь идет о программировании, формируется ПОЛНОСТЬЮ ЗАКОНЧЕННЫЙ код программы. (Например, в том смысле, как это делает Александр Ильин).

В конце исполнения цербер-режима формируется логически правильная, но, возможно, недостаточно удобная дракон-схема. Которую, надо подправить вручную с помощью дракон-редактора. Например, сделать некоторые предусмотренные у Тышова операции с узлами и линиями. Чтобы сделать схему «покрасивее», чем это сделал цербер. Или, например, расположить элементы так, как хочет Илья Ермаков.

Для этой цели следует перейти в либерал-режим.

В либерал-режиме изменяется (улучшается) только графика. Алгоритм и программный код на выходе редактора НЕ МОГУТ ИЗМЕНЯТЬСЯ. Такие изменения блокируются.

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

Сказанное мною следует воспринимать с осторожностью по следующим причинам.
    1. Геннадий Тышов выбрал непривычный для меня алгоритм работы дракон-редактора. Анализируя этот новый для меня стиль, я мог что-то не понять и ошибиться в суждениях.
    2. Наш редактор работает только в цербер-режиме. Он не умеет делать либерал-операции.
    3. В моей книге описан только цербер-режим работы дракон-редактора. В ней, насколько я помню, ничего не говорится о либерал-операциях (в явном виде).
    4. Я давно мечтал о либерал-операциях, но по разным причинам мне не удалось добиться их реализации в нашем редакторе.
    5. Поэтому мои рассуждения о либерал-операциях не опираются на опыт практической работы. И следовательно, могут содержать ошибки.
    6. Геннадий Тышов продемонстрировал, что его редактор умеет выполнять некоторые либерал операции. Этот неожиданный для меня факт является воплощением моей старинной мечты. Но Тышов заплатил за либерализацию неоправданно высокую цену — он ухудшил характеристики цербер-режима. В результате этого некоторые операции, которые должны выполняться автоматически, возлагаются на пользователя, что провоцирует ошибки.
    7. Терминологию я выдумывал на ходу. Извините, если коряво получилось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 19 Апрель, 2008 21:40 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
Владимир Паронджанов писал(а):
Наш редактор работает только в цербер-режиме. Он не умеет делать либерал-операции.
Я думал, что ваш редактор сам располагает элементы схемы по таким правилам, что дальше красоту наводить не надо. Если схемы из Вашей книги сделаны в вашем редакторе, то, мне кажется, либерал режим и не нужен...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 19 Апрель, 2008 22:01 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Axcel писал(а):
Или Вы хотите сказать, что имено Дракон-схема обеспечила Вам "глубокое понимание".
Формат работы с Дракон-схемой одновременно и вынудил, и помог мне избежать дублирования логических блоков кода (будь то проверки или другие элементарные действия). При записи алгоритма в линейный текст выяснилось, что приходится дублировать, "зеркалить" некоторые элементарные блоки, тем самым "замыливая", делая менее отчётливой логическую структуру алгоритма. Дракон помог мне записать алгоритм в более свободной форме, ближе соотносящейся и точнее отражающей моё внутреннее представление.

А LOOP я вообще не использую, равно как и FOR. Недавно в чужом коде натолкнулся на вот такой LOOP:
Код:
LOOP
   IF WinEvent.GetModal (App.objEditWin) # Commands.Ok THEN EXIT END;
   IF App.obj.classId = -1 THEN App.objEditWin.Hide; Template.Show (App.obj.name); RETURN;
   ELSE Classes.CreateObject (App.objScrollWin, App.obj.classId, itm, po); EXIT END;
END; (* loop *)
Выполняется этот LOOP, как можно понять, только один раз, а первый EXIT - ни что иное как GOTO, перепрыгивающее второй IF. По моим наблюдениям, в подавляющем большинстве случаев благодаря использованию LOOP достигается мизерная экономия вычислительных ресурсов (чаще - чуть уменьшается объём кода или сокращается текст программы), но всегда ценой существенного понижения читабельности и ясности структуры алгоритма.


Последний раз редактировалось Александр Ильин Воскресенье, 20 Апрель, 2008 10:31, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Воскресенье, 20 Апрель, 2008 10:23 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Евгений Темиргалеев писал(а):
Владимир Паронджанов писал(а):
Наш редактор работает только в цербер-режиме. Он не умеет делать либерал-операции.
Я думал, что ваш редактор сам располагает элементы схемы по таким правилам, что дальше красоту наводить не надо. Если схемы из Вашей книги сделаны в вашем редакторе, то, мне кажется, либерал режим и не нужен...
О либерал-операциях в Дракон-редакторе:
В выбранной схеме, взаимное размещение элементов относительно друг друга (по критерию: левее, правее, выше, ниже) можно изменить вручную. Для этого выбирается и сдвигается (клавишами Ctrl+стрелки) элемент или узел и соответственно вся вертикаль или горизонталь. Потом выполните коррекцию: пункт меню "Обновить схему". Коррекция выполняется неявно при выполнении других операций.

При коррекция взаимное размещение не изменяется. Программно устраняются наложения элементов и линий различных вертикалей или горизонталей путем их сдвига. Сокращаются или увеличиваются промежутки между элементами и линиями до установленной величины. Коррекция производится сначало для всех вертикалей, потом для всех горизонталей. Для схемы "Силуэт", иконки "Заголовок" выравнивается по верхней линии, "Адрес" выравнивается по нижней линии.

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


Последний раз редактировалось ==== Воскресенье, 20 Апрель, 2008 15:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Воскресенье, 20 Апрель, 2008 10:48 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Геннадий Тышов писал(а):
В выбранной схеме, взаимное размещение элементов относительно друг друга (по критерию: левее, правее, выше, ниже) можно изменить вручную....
При коррекция взаимное размещение не изменяется.
Вот вам пример из приведённого в первом сообщении алгоритма - процедура SkipBack. Я уже писал, что самое лучшее, что я обнаружил для себя в Драконе, - это однозначное отображение структуры аглоритма без дублирования блоков. Так вот, в процедуре SkipBack я продублировал вызов r.ReadPrev только потому, что редактор не позволил мне создать корректную схему. Вот так она должна была бы выглядеть по первоначальной задумке (данная картинка получена ручным перемещением элемента "SkipSquareBrackets" налево, а элемента "r.ReadPrev" - направо):
Вложение:
Комментарий к файлу: Отлично, будет работать! Пересечений и наложений нет
SkipBackGood.PNG
SkipBackGood.PNG [ 5.66 КБ | Просмотров: 20989 ]
А вот, что редактор делает при выборе пункта "Обновить" в контекстном меню (либо автоматически при дальнейшей работе со схемой):
Вложение:
Комментарий к файлу: Ой, блоки поменялись местами, и появились пересечения
SkipBackRefreshed.PNG
SkipBackRefreshed.PNG [ 5.51 КБ | Просмотров: 20987 ]
Выходит, что при коррекции взаимное размещение элементов всё-таки меняется?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Воскресенье, 20 Апрель, 2008 11:58 

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

Вложение:
.drt


Сообщение поправлено администратором.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Воскресенье, 20 Апрель, 2008 18:19 

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

О! Совсем другое дело. Хотя я и не изучал Дракон. Мне кажется, что главное отличие - видимая структура.


Уважаемый Vlad!

Существует возможность "изучить" Дракон всего за 20 минут.
См. Паронджанов В.Д. Занимательная информатика. М.: Дрофа, 2007.
В книге дано упрощенное описание Дракона для детей. Есть в продаже.
Аннотацию можно посмотреть в сети.

P.S. С Вашей оценкой полностью согласен. Считаю ее очень меткой.
"Видимая структура" - очень хорошо сказано!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 11:46 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 112
Откуда: Беларусь, Минск
Код:
   i := LEN (id.name);          (* текущий символ переменной *)
   (* r.ch                         предыдущий символ текста *)
   WHILE (i > 0) & IdentChar (r.ch) DO
      DEC (i);                  (* предыдущий символ переменной *)
      id.name [i] := r.ch;      (* присвоить предыдущему символу переменной предыдущий символ текста *)
      r.ReadPrev                (* символ перед предыдущим символом текста *)
   END;
А такой вариант подходит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Понедельник, 21 Апрель, 2008 17:17 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Valery Solovey писал(а):
А такой вариант подходит?


Вот!
Только помогает ли его найти графическое представление?
Что-то не пойму я, в чем преимущество по сравнению с хорошей индентацией.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Вторник, 22 Апрель, 2008 13:09 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Уважаемые коллеги!

До сих пор комментарии были посвящены тщательному анализу и шлифовке решений, предложенных Александром Ильиным. Но есть иной подход, предложенный Ильей Ермаковым. У меня просьба: высказать свое мнение (желательно с аргументацией) по поводу идеи (схемы) Ермакова.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Вторник, 22 Апрель, 2008 19:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 24
Владимир Паронджанов писал(а):
Существует возможность "изучить" Дракон всего за 20 минут.
См. Паронджанов В.Д. Занимательная информатика. М.: Дрофа, 2007.
В книге дано упрощенное описание Дракона для детей. Есть в продаже.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Вторник, 22 Апрель, 2008 23:58 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Valery Solovey писал(а):
А такой вариант подходит?

Да! Отличный вариант! : ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Среда, 23 Апрель, 2008 00:05 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Геннадий Тышов писал(а):
Надо получить Ваш файл и проверить его.
Я сформировал такой же и все нормально.

Вот, попробовал воспроизвести.


Вложения:
Комментарий к файлу: См. процедуру SkipBack
BadSkipBack.drt [8.45 КБ]
Скачиваний: 854
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Среда, 23 Апрель, 2008 06:59 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Valery Solovey писал(а):
А такой вариант подходит?

Но все равно что-то тут не то в этом цикле:
слишком хитроумная синхронизация хода по i и обратного хода по литерам.
Тупее должно быть.
Но надо объемлющую задачу смотреть.


Последний раз редактировалось Info21 Четверг, 24 Апрель, 2008 04:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Среда, 23 Апрель, 2008 21:49 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Александр Ильин писал(а):
Геннадий Тышов писал(а):
Надо получить Ваш файл и проверить его.
Я сформировал такой же и все нормально.

Вот, попробовал воспроизвести.
Александр, выполнил эквивалентные пребразования Ваших алгоритмов в соответствии с правилами ДРАКОНА (в моем понимании):
1. В схемах вида "Примитив" иконку "Конец" расположил на 1-й вертикали (шампуре) с иконкой "Заголовок".
2. Объединил линии приходящие в общие точки.
3. Соседние иконки "Действие" объединил в более крупные.
4. Логические выражения с несколькими переменными разнес в отделные иконки "Вопрос". В книге "Как ...." этому посвещена глава "ВИЗУАЛИЗАЦИЯ ЛОГИЧЕСКИХ ФОРМУЛ".
5. Для анализа нескольких значений переменной, использовал "Переключатель", аналог оператора CASE.
6. У Вас, процедура SkipBack непонятна:
- или имеется внутренний цикл, при этом должно быть 2 стрелки,
- или имеется вход в середину цикла от 2-й иконки "Вопрос", что недопускается.

Извините если, что неправильно понял или сказал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Суббота, 26 Апрель, 2008 22:29 

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

Проверка i является аномалией, поскольку это второстепенный элемент алгоритма. Гораздо удобнее (и правильнее) было бы опираться только на проверку символа (может быть частью имени или нет). Но для этого требуется заранее знать длину идентификатора в тексте и быть уверенным в том, что он не превышает длины id.name. В случае, когда длина идентификатора в тексте превышает длину поля id.name, выскочит трап. Этот факт повышает приоритет i.

Насколько я понимаю задачу Александра, по каким-то причинам нет хорошего способа определения длины. Проще совмещать это с распознаванием идентификатора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пример алгоритма на ДРАКОНе
СообщениеДобавлено: Воскресенье, 27 Апрель, 2008 08:08 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Valery Solovey писал(а):
Насколько я понимаю задачу Александра, по каким-то причинам нет хорошего способа определения длины. Проще совмещать это с распознаванием идентификатора.
Да, длина идентификатора выясняется именно в процессе прохода. Собственно, для этого проход и нужен: найти идентификатор либо констатировать его отсутствие по какой-либо причине (в том числе - чрезмерная длина).


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

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


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

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


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

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