DRAKON.SU
https://forum.drakon.su/

Язык ДРАКОН и Питон
https://forum.drakon.su/viewtopic.php?f=78&t=5984
Страница 1 из 1

Автор:  Бытко Сергей [ Среда, 15 Февраль, 2017 19:25 ]
Заголовок сообщения:  Язык ДРАКОН и Питон

Всем добрый день!
Возникли такие вопросы
1. как отображать обработку исключений try - except?
2. каким образом делать переносы строк внутри икон, чтобы иконы были компактные, а при генерации кода все было правильно
Например в питоне для переноса используется знак \
Но если я его использую в схеме, например, так:
Код:
age=getRandInt("Возраст \
на момент осуждения",14,100)

то при работе программы выводится так:
Код:
Возраст     на момент осуждения

Вставляются пробелы, соответствующие отступам.

Автор:  Владимир Паронджанов [ Среда, 15 Февраль, 2017 19:48 ]
Заголовок сообщения:  Re: Дракон и Питон

Сергей, я очень рад, что вы появились!
Как ваши дела? Как успехи?

Бытко Сергей писал(а):
1. как отображать обработку исключений try - except?
Предложения внес Олег Гарипов (Olegar) здесь
viewtopic.php?f=62&t=5554

Бытко Сергей писал(а):
2. каким образом делать переносы строк внутри икон, чтобы иконы были компактные, а при генерации кода все было правильно
Например в питоне для переноса используется знак \
Но если я его использую в схеме, например, так:
Код:
age=getRandInt("Возраст \
на момент осуждения",14,100)

то при работе программы выводится так:
Код:
Возраст     на момент осуждения

Вставляются пробелы, соответствующие отступам.
По этому вопросу большой специалист Степан Митькин. Надеюсь, что он вам ответит.

Автор:  Бытко Сергей [ Четверг, 16 Февраль, 2017 10:32 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Дела нормально, успехов пока особых нет)))
Потихоньку буду делать экспертную систему

Автор:  Бытко Сергей [ Четверг, 16 Февраль, 2017 10:49 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Для try-except в питоне, по-моему хорошо подходит case, только нужно какое-нибудь слово в заголовке писать для генератора. Вот пример функции и вариант ее реализации:
Код:
def getRandInt(inText, inMin, inMax):
    #item 57
    done=False
    while not done:
        try:
            rezult=int(input(inText))
            if rezult in range(inMin,inMax+1):
                done=True
            else:
                print ("Число должно быть в диапазоне от ", inMin, " до ", inMax)
        except ValueError:
            print ("Допустимы только числа!")
    return rezult

Графическое изображение:

Вложения:
try-except.png
try-except.png [ 43.34 КБ | Просмотров: 17069 ]

Автор:  LKom [ Четверг, 16 Февраль, 2017 10:58 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Зачем Вам Дракон?

Вы помещаете в иконы программный код. Это всего лишь другая форма записи программного кода.

Проблемного описания алгоритма никто не увидит, этим (из никто) програмный код не нужен.

Для Дракона декларируется функция общения. Программный код для общения не годиться.

Автор:  Бытко Сергей [ Четверг, 16 Февраль, 2017 12:41 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Даже не знаю чего вам сказать...
Я бы хотел по существу вопроса ответ получить - возможно ли так исключения реализовать?

Автор:  Владимир Паронджанов [ Четверг, 16 Февраль, 2017 12:56 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Сергей, вы посмотрели тему
Java try/catch/finally в Драконе

Как ваше мнение о тамошних предложениях?

Автор:  Бытко Сергей [ Четверг, 16 Февраль, 2017 13:07 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Мне понравился первый вариант Эдуарда Ильченко, но слева от шампура, как мне кажется, ничего не надо рисовать. Код после try должен идти по шампуру, в соответствии с требованиями Дракона, как самый благоприятный вариант, а исключения - правее (хуже). Чтобы не путать с case возможно какую-то иконку новую придумать.

Автор:  Владимир Паронджанов [ Пятница, 17 Февраль, 2017 09:12 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Сергей, я послал вам письмо в личку. Посмотрите

Автор:  Бытко Сергей [ Пятница, 17 Февраль, 2017 19:22 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

LKom писал(а):
Зачем Вам Дракон?

Вы помещаете в иконы программный код. Это всего лишь другая форма записи программного кода.

Проблемного описания алгоритма никто не увидит, этим (из никто) програмный код не нужен.

Для Дракона декларируется функция общения. Программный код для общения не годиться.


Я с вами абсолютно согласен. Мне нужно, чтобы и программа и текст были в одной иконе с возможностью переключения вида. Насколько я знаю, ИС Дракон Г. Тышова такую функцию поддерживает.
Хотелось бы узнать- есть ли поддержка python 3?

Автор:  LKom [ Суббота, 18 Февраль, 2017 12:21 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Бытко Сергей писал(а):
Я с вами абсолютно согласен. Мне нужно, чтобы и программа и текст были в одной иконе с возможностью переключения вида. Насколько я знаю, ИС Дракон Г. Тышова такую функцию поддерживает.
В ИС Дракон переключения вида нет.
Икона имеет кроме видимого текста еще 3 текстовых поля - А-текст, Б-текст, П-текст. Поля предназначены для сопровождающей информации, назначение полей не регламентируется и устанавливается пользователем. Одно поле может быть использовано для программного кода.

Еще есть видимый текст - колонтитул иконы для указания исполнителя или его роли к данной иконе. Этим обеспечивается возможность отображать бизнес процессы с несколькими исполнителями.

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

При работе в ИС Драконе для выбранной иконы текст выбранного поля просматривается в окне текстового редактора. Для работы с распечаткой Дракон-листа все тексты можно вывести в текстовый файл и распечатать. Для идентификации и ссылки иконы имеют нумерацию.

Бытко Сергей писал(а):
Хотелось бы узнать- есть ли поддержка python 3?
Для программирования имеется 2 режима:
1. со сборкой программного кода Маршрутным транслятором для языков программирования поддерживающих GOTO,
2. со сборкой программного кода в указанном программистом порядке, для ассемблеров и языков не поддерживающих GOTO (Питон).

В 1-м режиме Маршрутный транслятор настраивается на язык программирования и обеспечивает формирование программного кода в соответствии со связями Дракон-схемы и вставляет соответствующие ключевые слова и метки.

Во 2-м режиме весь программный код должен быть вписан программистом в П-тексты икон.

Использование ИС Дракона не снимает с программиста необходимости знать язык и теорию программирования.

Автор:  Бытко Сергей [ Воскресенье, 19 Февраль, 2017 16:14 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

А для питона есть настройки языка?

Автор:  LKom [ Понедельник, 20 Февраль, 2017 08:49 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Для Python необходимо использовать 2-й режим.

Для использования 1-го режима надо сильно постараться. Освоить работу с GOTO ("Оператор GOTO в Python" - https://tproger.ru/links/python-goto/), сформировать файл описания языка Python, решить вопрос об отступах. Возможно потребуются доработки ИС Дракон.
При этом несколько измениться идеология Python, смотрите как пример - http://forum.drakon.su/viewtopic.php?p=99591#p99591 .

Автор:  Бытко Сергей [ Вторник, 21 Февраль, 2017 13:28 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Ну, goto не нужен. Интересно как сделать файл настройки. И еще - работу с классами как организовать

Автор:  LKom [ Вторник, 28 Февраль, 2017 14:37 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Еще одна статья по использованию GOTO в Питоне.

https://habrahabr.ru/post/140356/ - "Модифицикация байт-кода функции в Python" от 20 марта 2012 в 17:46

Описание для Питона версии 2, хорошо бы проверить с Питоном версии 3.

Применение GOTO соответствует сущности маршрутов языка Дракон - "Пойди по лиане".

Автор:  Rifat [ Пятница, 03 Март, 2017 13:07 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

В общем случае, эксепшен на Драконе представить нельзя, так как исключения могут возникнуть не только в начале области, где описан try, но и после любого оператора.
В принципе, можно было бы провести линии от каждого блока в сторону catch, но это тоже не будет полным решением, так как эксепшен может возникнуть и "по середине" вычисления выражения внутри блока действия.
Допустим, такое выражение:
x := (a + b) + c/d + (e + f);
Если d = 0, то должен возникнуть эксепшен, при этом часть выражения уже может быть вычислена. В данном случае ничего страшного не случится, но если будут функции с побочными эффектами, то часть функций может быть выполнена, а часть нет, например:
x := OpenDoorAndCountSomething(a) + c/d + CloseDoorAndCountSomething(e).
В данном случае, если d = 0, экспешен должен произойти после того, как двери откроются.
И данный случай невозможно изобразить на Драконе, никакими линиями, так как линий из середины блока действие нет.

P.S. Рисунка нет, всё можно понять из слов.

Автор:  Владимир Паронджанов [ Пятница, 03 Март, 2017 13:48 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Rifat писал(а):
В общем случае, эксепшен на Драконе представить нельзя, так как исключения могут возникнуть не только в начале области, где описан try, но и после любого оператора...

Рифат, вы посмотрели тему
Java try/catch/finally в Драконе

Как ваше мнение о тамошних предложениях?

Автор:  LKom [ Пятница, 03 Март, 2017 15:11 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Питон

Rifat что то не понимает:
Rifat писал(а):
... catch ...
В Питоне нет "catch". Смотрите - здесь.

Rifat писал(а):
... но если будут функции с побочными эффектами ...
"функции с побочными эффектами" - в программировании есть дурной тон.

Вложение:
Питон_try.png

В конструкции try все строки с ключевыми словами try, except, else, finally имеют одинаковый отступ. В Дракон-схеме их иконы помещаем на шампуре с try.

Rifat писал(а):
И данный случай невозможно изобразить на Драконе, никакими линиями, так как линий из середины блока действие нет.
"линий из середины блока действие" не требуются.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/