DRAKON.SU

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

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




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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дракон и Питон
СообщениеДобавлено: Среда, 15 Февраль, 2017 19:48 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Сергей, я очень рад, что вы появились!
Как ваши дела? Как успехи?

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

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

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

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


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

Зарегистрирован: Среда, 13 Май, 2009 21:05
Сообщения: 153
Откуда: Саратов
Дела нормально, успехов пока особых нет)))
Потихоньку буду делать экспертную систему


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

Зарегистрирован: Среда, 13 Май, 2009 21:05
Сообщения: 153
Откуда: Саратов
Для 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 КБ | Просмотров: 16839 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Питон
СообщениеДобавлено: Четверг, 16 Февраль, 2017 10:58 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Зачем Вам Дракон?

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

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

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


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

Зарегистрирован: Среда, 13 Май, 2009 21:05
Сообщения: 153
Откуда: Саратов
Даже не знаю чего вам сказать...
Я бы хотел по существу вопроса ответ получить - возможно ли так исключения реализовать?


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Сергей, вы посмотрели тему
Java try/catch/finally в Драконе

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


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

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


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

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


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

Зарегистрирован: Среда, 13 Май, 2009 21:05
Сообщения: 153
Откуда: Саратов
LKom писал(а):
Зачем Вам Дракон?

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

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

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


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


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

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

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

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

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

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

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

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

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


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

Зарегистрирован: Среда, 13 Май, 2009 21:05
Сообщения: 153
Откуда: Саратов
А для питона есть настройки языка?


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

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Для Python необходимо использовать 2-й режим.

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


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

Зарегистрирован: Среда, 13 Май, 2009 21:05
Сообщения: 153
Откуда: Саратов
Ну, goto не нужен. Интересно как сделать файл настройки. И еще - работу с классами как организовать


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

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Еще одна статья по использованию GOTO в Питоне.

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Питон
СообщениеДобавлено: Пятница, 03 Март, 2017 13:07 

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Питон
СообщениеДобавлено: Пятница, 03 Март, 2017 13:48 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Rifat писал(а):
В общем случае, эксепшен на Драконе представить нельзя, так как исключения могут возникнуть не только в начале области, где описан try, но и после любого оператора...

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Питон
СообщениеДобавлено: Пятница, 03 Март, 2017 15:11 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Rifat что то не понимает:
Rifat писал(а):
... catch ...
В Питоне нет "catch". Смотрите - здесь.

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

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

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

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


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

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


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

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