Мегаобучалка Главная | О нас | Обратная связь


Методы программирования



2020-02-03 177 Обсуждений (0)
Методы программирования 0.00 из 5.00 0 оценок




 

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

Фактически, основой системы Mathematica является проблемно-ориентированный на математические расчеты язык программирования сверхвысокого уровня. По своим возможностям этот язык намного превосходит обычные универсальные языки программирования, такие как Фортран, Бейсик, Паскаль или С.

Важно подчеркнуть, что здесь речь идет о языке программирования системы Mathematica, а не о языке реализации самой системы. Языком реализации является универсальный язык программирования C++, показавший свою высокую эффективность в качестве языка системного программирования.

 

Как и всякий язык программирования, входной язык системы Mathematica содержит операторы, функции и управляющие стриктуры. Основные операторы и функции этого языка и относящиеся к ним опции мы фактически уже рассмотрели. Набор описанных ранее типовых операторов и функций характерен для большинства современных языков программирования. Мощь системы Mathematica как средства программирования решения математических задач обусловлена необычно большим (в сравнении с обычными языками программирования) набором функций, среди которых немало таких, которые реализуют сложные и практически полезные математические преобразования и современные вычислительные методы (как численные, так и аналитические).

Число этих функций только в ядре и библиотеках приближается к тысяче. Среди них такие операции, как символьное и численное дифференцирование и интегрирование, вычисление пределов функций, вычисление специальных математических функций и т. д. — словом, реализации именно тех средств, для создания которых на обычных языках программирования приходится составлять отдельные, подчас довольно сложные программы. Почти столько же новых функций (или модернизированных старых) содержат пакеты расширения (Add-on Packages).

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

Это язык вобрал в себя лучшие средства ряда поколений языков программирования, таких как Бейсик, Фортран, Паскаль и С. Благодаря этому он позволяет легко реализовывать все известные типы (концепции) программирования: функциональное, структурное, объектно-ориентированное, математическое, логическое, рекурсивное и т. д. К примеру, вычисление таких функций, как факториал, в Mathematica можно запрограммировать в виде функции пользователя целым рядом способов:

 

f[n_] =n!

 

f[n_] =Gamma[n-l]

 

f [n_] =n*f [n-1] ;f [0]=l;f [1]=1;

 

f[n_] =Product[i/i,n]

 

f [n_] =Module[t=l,Do[t=t*i,i,n] ;t]

 

f [n_] =Module [ { t=l } , For [ i=l , i<=n , i++ , t*=i ] ; t]

 

f[n_] =Fold [Times,1, Range [n] ]

 

Все их можно проверить с помощью следующего теста:

 

{f[0],f[1],f[5],f[10]}

 

{1, 1, 120, 3628800}

Как отмечалось, внутреннее представление всех вычислений базируется на применении полных форм выражений, представленных функциями. И вообще, функциям в системе Mathematica принадлежит решающая роль. Таким образом, Mathematica. фактически, изначально реализует функциональный метод программирования — один из самых эффективных и надежных. А обилие логических операторов и функций позволяет полноценно реализовать и логический метод программирования. Множество операций преобразования выражений и функций позволяют осуществлять программирование на основе правил преобразования.

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

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

С понятием объекта тесно связаны три основных свойства, перечисленные ниже:

инкапсуляция — объединение в одном объекте как данных, так и методов их обработки;

наследование — означает, что каждый объект, производный от других объектов, наследует их свойства;

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

Приведенный ниже пример объектно-ориентированного программирования дает три определения, ассоциированные с объектом h:

 

h/ : h [x_] +h [y_] : =hplus [х , у]

 

h/:p[h[x_],x]:=hp[x]

 

h/:f_[h[x_]] :=fh[f,x]

 

В принципе, язык программирования системы Mathematica специально создан для реализации любого из перечисленных подходов к программированию, а также ряда других — например, рекуррентного программирования, при котором очередной шаг вычислений базируется на данных, полученных на предыдущих шагах. Наглядным примером этого может служить вычисление факториала рекуррентным методом. Возможно также создание рекурсивных функций (с обращением к самим себе) и, соответственно, использование рекурсивного программирования. Оно, кстати, играет большую роль в осуществлении символьных преобразований.

Средства языка Mathematica позволяют осуществить и визуально-ориентированное программирование. Его смысл заключается в автоматической генерации программных модулей путем визуального выбора интуитивно понятного объекта — чаще всего путем щелчка на кнопке. Mathematica позволяет создавать палитры и панели с различными кнопками, позволяющими управлять программой или вводить новые программные объекты. Однако визуально-ориентированное программирование не является основным. В основном оно ориентировано на создание палитр пользователя с нужными ему функциями.

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

 

III. Заключение

Система Mathematica 4 относится к программным продуктам, которым крайне трудно найти достойного конкурента. Пожалуй, лишь система компьютерной ма­тематики Maple V R5 способна всерьез претендовать на эту роль. Эти две систе­мы напоминают двух спортсменов, заметно оторвавшихся от своих соперников'и попеременно обгоняющих друг друга. Каждая из систем имеет свое лицо и мо­жет решать самые серьезные математические и научно-технические задачи.

Высочайшая эффективность решения численных задач, превосходная графика и постоянно совершенствующиеся возможности символьной (аналитической) ма­тематики — это и есть лицо новейшей системы Mathematica 4. Да и одежка - пользовательский интерфейс под стать «Мисс Мира» — Mathematica.

Оторвавшись от эпитетов, можно сказать, что Mathematica 4 (как и ее предшест­венница Mathematica 3, отставшая по скорости вычислений) действительно пред­ставляет собой самую современную систему искусственного интеллекта, ориен­тированную на выполнение разнообразных математических вычислений — от простейших до самых сложных, достойных ума и пера математиков-аналитиков.

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

Более миллиона пользователей системы Mathematica (всех версий) и сотни опуб­ликованных книг о ней (в том числе множество вышедших уже в 1999 г., лишь в середине которого четвертая версия системы появилась) говорят сами за себя. Mathematica 4 — это продукт широкого потребления, с которым можно достой­но войти в третье тысячелетие новой эры в истории Человечества. Будучи по своей сути профессиональными инструментами для математиков, системы Mathe­matica 3/4 сделали решительный шаг в сторону массового пользователя. Не слу­чайно на Западе эти системы используются не только в крупнейших научных центрах и ведущих университетах, но и в обычных вузах и даже школах. Приме­чательно, что сейчас Mathematica все чаще применяется представителями гума­нитарных наук, а также специалистами в области экономики и финансов.

 

IV . Список использованной литературы

 

 

1. Дьяконов В.П. Mathematica 4: учебный курс – СПб: Питер, 2001.

2. Акритас А. Основы компьютерной алгебры/ Пер. с англ. – М.:

Мир, 1994.

3. Капустина Т.В. Компьютерная система Mathematica 3.0 для пользователей – М.: Солон-Р, 1999.

4. Дьяконов В.П. Mathematica 3/4 с пакетами расширений – М.:

Нолидж, 2000.

 



2020-02-03 177 Обсуждений (0)
Методы программирования 0.00 из 5.00 0 оценок









Обсуждение в статье: Методы программирования

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (177)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)