Присутсвие метки в Mapl

Форум пользователей пакета Maple

Модератор: Admin

SergM
Сообщения: 2
Зарегистрирован: Чт мар 08, 2007 4:57 pm

Присутсвие метки в Mapl

Сообщение SergM » Вс мар 18, 2007 2:24 pm

Всем здравствуйте. Потихоньку осваиваю программу mapl ( ранее для института делали вычисления в бэйсике) вот здесь сталкнулся с проблеммой что нет оператора go to . Есть ли такой оператор в данной программе. Всем заранее благодарен.

xyz
Сообщения: 202
Зарегистрирован: Чт мар 24, 2005 3:42 pm

Сообщение xyz » Вс мар 18, 2007 5:33 pm

Встроенная функция goto в Maple есть, но она не документирована. Детально вопросы использования goto и вопросы, сопутствующие ему, рассмотрены в книгах проф. Аладьева, например, http://www.aladjev-maple.narod.ru/ (бесплатная) или http://www.lbz.ru/index.php?div=shop&vi ... ffsetback=.

Aivar
Сообщения: 48
Зарегистрирован: Вт июл 13, 2004 4:00 pm

Сообщение Aivar » Чт июн 14, 2007 10:36 am

Вопросы программирования в Maple прекрасно изложены в книге Аладьева, доступной к скачиванию с

http://www.aladjev-maple-book.narod.ru

Там же есть полная информация и новые средства по работе с GOTO.

Aivar
Сообщения: 48
Зарегистрирован: Вт июл 13, 2004 4:00 pm

Сообщение Aivar » Вт июн 26, 2007 9:44 am


Андрей М.
Сообщения: 239
Зарегистрирован: Чт апр 21, 2005 3:15 pm

Сообщение Андрей М. » Вт июн 26, 2007 1:21 pm

Отнесение монографии проф. Аладьева с соавторами

http://www.maplesoft.com/books/books_se ... ortby=date

к конкретной рубрике Engineering оворит о том, что это не уровень хэлпа, посему требуется определенные и навык, и опыт в Maple.

Aivar
Сообщения: 48
Зарегистрирован: Вт июл 13, 2004 4:00 pm

Сообщение Aivar » Ср июл 04, 2007 1:30 pm

Библиотеку проф. Аладьева можно скачать здесь

http://freesoft.ru/?id=672524

xyz
Сообщения: 202
Зарегистрирован: Чт мар 24, 2005 3:42 pm

Сообщение xyz » Чт июл 05, 2007 1:14 pm

Библиотеку проф. В.З. Аладьева и ее демо можно теперь бесплатно скачивать и с его сайтов:

http://www.aladjev.newmail.ru
http://www.aladjev-maple.narod.ru
http://www.aladjev-maple-book.narod.ru

Aivar
Сообщения: 48
Зарегистрирован: Вт июл 13, 2004 4:00 pm

Сообщение Aivar » Ср авг 29, 2007 10:17 am

Лучше всего библиотека Аладьева скачивается с сайта

http://www.download.com/Aladjev-s-Libra ... 716687.htm

Проверено лично.

Mapler
Сообщения: 28
Зарегистрирован: Пт окт 27, 2006 11:31 pm
Контактная информация:

Сообщение Mapler » Сб сен 01, 2007 4:52 pm

Довольно странная вещь - go to. Интересный код какой-то, наверное. Неужели обойти нельзя.

Андрей М.
Сообщения: 239
Зарегистрирован: Чт апр 21, 2005 3:15 pm

Сообщение Андрей М. » Сб сен 01, 2007 7:58 pm

goto - встроенная функция MapleБ а не странная вещь. В целом ряде случаев очень удобнаю Не документирована, описана в книгах проф. Аладьева, там же приведены рекомендации по ее использованию, особенно при погружении в Maple-среду программ, содержащих безусловные переходы, расширенные средства для работы с ней представлены в библиотеке тог же же автора.

Mapler
Сообщения: 28
Зарегистрирован: Пт окт 27, 2006 11:31 pm
Контактная информация:

Сообщение Mapler » Вс сен 02, 2007 3:15 am

Ну на вкус и цвет... Вот пакет мой Mechanics of Materials содержит порядка 15000 строк Maple кода и обошелся без goto.
http://www.maplesoft.com/products/third ... index.aspx

Я очень хорошо отношусь к книгам проф. Аладьева, тем более, что они лучшие источники по Maple, пожалуй, в мире (из тех, что доводилось видеть). Но Вы так часто упоминаете его библиотеку и имя, что аж передергивает.

Кстати, хорошо бы для пытливой публики профессор взял бы да и написал книгу про механизм внешних вызовов External Calling и OpenMaple. Нет, Maplets - это одно из самых неудачных средств Maple среды, ему бы я не стал уделять место. (Читая книгу, изданную в Гродно). А то сколько можно одно и то же мусолить...

Я бы сам с удовольствием написал бы такую книгу, но совершенно некогда. Разве что с Аладьевым в паре.

Aivar
Сообщения: 48
Зарегистрирован: Вт июл 13, 2004 4:00 pm

Сообщение Aivar » Вс сен 02, 2007 9:43 am

Ув. Mapler! Насчет вкуса и цвета вполне с вами согласен, а вот что касательно объема наработок, то нет. Можно писать объемные и не столь сложные аогритмически приложения в Maple, имеющие строго последовательную структуру, где действтительно goto не требуется. Но можно создавать относительно небольшие, но сложные процедуры, эффективно реализуемые именно с goto. Более того, мне лично приходилось погружать в Maple ранее созданные программы на FORTTAN'е и без goto это было бы сделать очень сложно, ибо потребовало бы приводить их алгоиммы к структурированному виду, т.е. перепрограммировать.

Рад, что ваше мнение о книгах Аладьева совпадает с моим собственным и не только. Что до лучших в мире, то не знаю. Работал я и с другими, изданными в США и Германии – встречал тоже весьма приличные, не хуже Аладьевских. Правда, глубже проработки собственно программирования, чем у него, действительно не встречал. Что же касается частых упоминаний его книг и библиотеки, то ведь вы же сами сказали – «они лучшие источники по Maple, пожалуй, в мире». Да и сами разработчики отмечают их на своем сайте

http://www.maplesoft.com/books/books_de ... 1596820004
http://www.maplesoft.com/books/books_de ... 1596820802
http://www.maplesoft.com/books/books_se ... ortby=date

Так что насчет «передергивает» вы, вежливо говоря, несколько преувеличиваете.

Относительно вашего пожелания «для пытливой публики профессор взял бы да и написал книгу про механизм внешних вызовов External Calling и OpenMaple.», то это стоит адресовать непосредственно проф. Аладьеву, чай координаты его хорошо известны. Правда, из введения его последней книги, скачанной из его сайта, можно узреть, что

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

И последнее относительно «Я бы сам с удовольствием написал бы такую книгу, но совершенно некогда. Разве что с Аладьевым в паре.». Также не по адресу. Во-первых, не думаю, что Аладьев занят менее вашего. Будучи математиком, работающим в фундаментальных областях, он и математические пакеты использовал то на уровне вроде хобби. Основные же его работы совершенно в ином направлении. Это мне известно от людей, хорошо его знающих. Впрочем, попроюбуйте предложить Аладьеву свое соавторство, может что и выйдет. Что особо мне импонирует у Аладьева, так это его разумное бескорыстие – видно неплохо заработал на своих книгах и библиотеке (особенно за бугром) и выложил их для бесплатного доступа. Вот такое можно только приветствовать! Очень хорошее подспорье для наших бедных студентов и аспирантов, да и не только.

Андрей М.
Сообщения: 239
Зарегистрирован: Чт апр 21, 2005 3:15 pm

Сообщение Андрей М. » Вс сен 02, 2007 10:09 am

Относительно goto можно найти справку в уже упомянутой книге Аладьева. Привожу ее полностью.

Наконец, Maple-язык допускает использование и безусловных переходов на основе встроенной функции goto, кодируемой в виде goto(<Метка>). Данная функция по вполне понятным причинам, обусловленным структурным подходом к программированию, недокументирована. Однако, в целом ряде случаев использование данного средства весьма эффективно, например, при необходимости погрузить в Maple-среду программу, использующую безусловные переходы на основе goto-предложения. Типичным приме-ром являются Fortran-программы, широко распространенные в научных приложениях. Из нашего опыта следует отметить, что использование функции goto существенно упростило погружение в Maple целого комплекса физико-технических Fortran-программ, использующих goto-конструкции. Между тем, goto-функция имеет смысл только в теле процедуры, обеспечивая в точке вызова goto(<Метка>) переход к Maple-предложению, перед которым установлена указанная Метка. При этом, в качестве метки выступает не-который идентификатор, как это иллюстрирует следующий простой фрагмент:
> A:= proc(x) `if`(x > 64, goto(L1), `if`(x < 59, goto(L2), goto(Fin)));
L1: return x^2;
L2: return 10*x + 17;
Fin: NULL
end proc:
> A(350), A(39), A(64), A(10), A(17), A(64), A(59);
122500, 407, 117, 187
При использовании вызовов goto(<Метка>) следует иметь в виду, что Метка является глобальной переменной, что предполагает ее выбор таким образом, чтобы она не пересекалась с переменными текущего сеанса, находящимися вне тела процедуры, использующей goto-переходы. Нами была определена процедура isplabel [41,103], использующая простой подход защиты goto-меток, который состоит в следующем. Если процедура использует, например, метки L1, L2, ..., Ln, то в начале исходного текста процедуры коди-руется вызов unassign('L1', 'L2', ..., 'Ln'). Это позволяет обеспечивать ошибкоустойчивость всех меток процедуры. Однако данный подход требует определенной уверенности, что отмена значения L-метки не будет отрицательно сказываться на выполнении документа текущего сеанса, если он использует одноименную переменную L вне тела процедуры. Процедура uglobal [103] позволяет в Maple-процедуре работать с глобальными перемен-ными, не заботясь о возможности нежелательных последствий такого решения на глобальном уровне текущего сеанса пакета. Детальнее вопросы использования goto-функции Maple-языка и средства, сопутствующие ее использованию, рассматриваются в рамках нашей Библиотеки [103].

Mapler
Сообщения: 28
Зарегистрирован: Пт окт 27, 2006 11:31 pm
Контактная информация:

Сообщение Mapler » Вс сен 02, 2007 10:40 pm

Очень, очень рад общению с Вами, коллеги. Спасибо, что откликнулись. Отдельное спасибо за подробную информацию по goto Андрею М.
Конечно, применение этого безусловного перехода может сильно упростить программирование. Общие рекомендации производителей как бы отклоняют такой конструктор.
С другой стороны, когда я начинал с OpenMaple под Visual Basic 6.0, то обнаружил, что написание подобных интерфейсов (OpenMaple API) сплошь и рядом состоит из недокументированных возможностей. Нет, наверное, неправильно так их называть. Понятно, чего опасаются производители. Но это, знаете ли, напоминает предостережение на упаковке с кофе "Не хватайте горячую чашку и не лейте кипяток на кожу." Или "Не сушите домашних животных в микроволновке".

Мне, кстати, удалось написать интерфейс под Visual Basic NET. Неограниченные возможности программирования самых сложнейших классов задач.


Весьма интересно узнать, какими проектами заняты Вы, уважаемые коллеги, с реализацией на Maple платформе.