Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 39
Текст из файла (страница 39)
За подробной информацией о каждом параметре следует обращаться к справке Мар)е. Приведем пример, в котором с помощью описанной команды выведем информацию о версии пакета, используемой платформе и максимально возможной мантиссе числа: > Кегпе1оргп(чегаЧоп.р1агпопп,махОЧОЧгп): Мар1е 6, 1ВМ 17ЧТВ(.
>ЧТ, Уап 31 2000 ВиЧЖВ 10 16401, "чч! пч)оччп", 268435448 Команда Кегпе1оргз с параметром ргог!1е вместе с командой ехргог!1е позволяют включить режим профилирования в Мар!е, После включения этого режима возможен просмотр разнообразной информации о сеансе. Приведем пример: > геагагг; > аг-ргос(х) п(п(х)+х епо: Ь:-ргос(х) сов(х)-а(х) епчн > Кегле)оргв(рго!11е-ггче): нгЧгего("онгрчг"); Ы)); Кегпе1 оргп(ргогЧ1е Га1ве); нгЧгеш(гегм1па1); ехрго!ч1е("он!рог",а1рна): 9 сн Лпегепг Гчпсг!оп!.
чп>по 36.)80 песа апс 11994К нагов папе Оса!1п срч Хого5 Ма!п Понг(пе 1 36.163 ()ОО.ОЖ) П 986303 ( 99.9Ж) а 1 .007 ( .ОЖ> )90 ( .ОЖ) Ь ) 0.000 ( О.ОЖ) 295 ( .ОЖ) с05 ) .003 ( .ОЖ> 548 ( .ОЖ) споп 2 0.000 ( О.ОЖ) 336 ( .ОЖ) геачй ЧЬ 3 .007 ( .ОЖ) 364 ( .ОЖ) галс!гоге 3 0.000 ( О.ОЖ) 5842 ( .ОЖ) 5ЧП 1 0,000 ( О.ОЖ) 203 ( .ОЖ> гуре/5умЬо11с!п(чп(гу 1 О ООО ( О.ОЖ> 235 ( .ОЖ) Для профилирования конкретной функции слух(ит команда рго111е. Для сбора информации об интересующей команде достаточно обратиться к рго111е, указав в качестве параметра имя команды.
Для вывода собранной информации используется команда 5Ьоирго111е, а для отмены режима профилирования — опргот!1е. В качестве примера зададим режим профилирования для двух описанных выше процедур а и Ь, обратимся к ним и выведем собранную информацию: > рго111е(а.п>: Ы2): > влоергоГЧ1е(а): гипсг(оп перги са11а г1ве г(пеж ьугеп ьугевж Ф а О.ООО 0.00 8604 30.52 гога1: 2 2 .004 100.00 28188 100.00 > опргот!1е(а.Ь>: Отладка программ 203 Работа с отладчиком программ В состав предыдущих версий пакета входила программа пп пс. ехе, которая позволяла диагностировать написанные программы, анализировать синтаксические ошибки, использование переменных и оптимальность работы процедур, а также задавать точки отладки внутри процедур.
В Марье 6 эти возможности входят в состав ядра пакета. В режиме отладки становится доступным целый ряд команд, часть из которых мы перечислим, а полный их список можно найти в справке по пакету. Для вывода информации об отладке имеются команды: О впомвсас(СОММ) — выводит на экран текст процедуры СОММ с номерами команд; О ейомвсор — выводит информацию о точках отладки во всех процедурах, введенных в текущем сеансе. Для начала отладки команды СОММ необходимо выполнить команду 5(ордт(СЕМИ) Тогда при обращении к команде СОММ пакет переходит в режим, в котором возможно пошаговое выполнение операторов процедуры, просмотр содержимого ее локальных и глобальных переменных и т.
д. Переход к режиму отладки в сеансе обозначается приглашением к вводу О66>. Режим отладки отменяется командой опвторат(СРММ) Если необходимо перейти в режим отладки только при обращении к определенному месту процедуры, то перед нужным оператором в тексте необходимо поставить команду РЕВ06(ттЕХ(") Необязательный параметр "Секс" содержит текстовую строку с сообщением. Если отладка нужна для контроля глобальной переменной тдд, то используется команда втормлеп(ЧАЙ) При этом пакет перейдет в отладочный режим в том месте, где встречается переменная тдй.
В ходе отладки можно использовать следующие команды (полный список см, в справке пакета): с) пехс — выполнение следующей команды текущего уровня; о втер — выполнение следующего шага любого уровня; (Р вопс — продолжение выполнения программы до следующей точки отладки; (у мЬеге — вывод информации о текущем уровне отладки; о ои1С вЂ” выход из отладчика. Приведем пример использования отладчика, Определим процедуру с именем т, задав в ней одну точку отладки (оператор РЕМИ): > т :- ргос(х.у) 1оса) а; 61оЬа) Ь; 1т х к у Ьвеп РЕ806("ветвь Г ): а :- х: Ь : у + а;. е1ее а: у; Ь: х + а: епо тт; 201 Глава 7.
программирование в й)ар)е а+Ь+х+у епе ргос: Используем некоторые из описанных команд для анализа работы этой процедуры. Сначала посмотрим структуру введенной процедуры: > ало>гагат(Г): Г;- ргос(х, у) 1аса1 а: 01оЬа1 Ь; 1 тт х < у спеп 2 ВЕВ06("ветвь 1"): 3 а :- х; 4 Ь :- у+а е1ее 5 а: у; б Ь:- хьа епе тг: У а+Ь. х+у епо' ргос Теперь посмотрим информацию обо всех точках отладки в данном сеансе: > 5попьсор(); ВгеаКро1птв тп: Мо тагтаь)ев Ьетпд патсьес. Мо еггогв пете патсьес. Вызовем процедуру Г, что приведет к переходу в режим отладки при обращении к команде 0Е806Е "ветвь 1" ): > Г(1.2): "ветвь 1" т: 3 а :- х: Последние лве строки вывода указывают место, где остановлен процесс вычислений.
Посмотрим в отладчике содержимое переменной у: ВВ6> у: 2 3 а :- х: Продолжим вычисления: 0В6> солт: 7 Теперь определим режим отладки для всей процедуры Г: > веоравьт): После этого при обращении к Г пакет переходит в режим отладки: > г12.1).' т; Отладка программ 20$ 1* ттх успел е! ае епб 1т: Выполним один гпаг процедуры: ввй атер; г: 5 а =у; А теперь выйдем нз отладчика: ВВВ> о С; магп1пц, сапритамоп 1птеггпртео' Математические библиотеки Мар1е Таблица 9.1. Список пакетов Мар1е Имя пакета, Назначение пакета Алгебраические кривые, см. раздел «Алгебры и Формы» этой главы Оптимизация текстов программ на языке Мар1е и перевод Мар1е-выражений в конструкци» языков программирования, см.
главу 9 «Мар1е и другие программы» Комбинаторика, см. эту главу Комбинаторные структуры,см,эту главу создание контекстных меню для работы'в'диалоговыми режиме, см. справку мар1е Исследование обыкновенных дифференциальных уравнений, см. главу 4 «Решение уравнений в Мар1е» Команды дифференциальной алгебры, си. раздел «Алгебры и формы» этой главы а1дс»пгез содедеп согпЬйпат сопзЬзтпзст солт«хе ОЕСоо1з бгТГ»19 О возможностях пакетов аналитических (символьных) вычислений судят по цх умению решать самые разнообразные математические задачи. Кроме коьгатгд стандартной библиотеки Мар1е оснащен большим количеством команд, организованных в пакеты, специализированные по темам, В предыдущих главах были рассмотрены команды н пакеты, без которых, по нашему мнению, невозможно содержательное введение в пакет Мар!е и квалифицированная работа с ним.
Подробное изложение в рамках данной книги всех команд стандартной библиотеки и наполнения других пакетов не представляется возможным, но информация о инх необходима. Поэтому в атой главе мы опишем некоторые команды стандартной библиотеки, не рассмотренные ранее, и дадим эскизные характеристики большинства пакетов. Напомним, что для обращения к командам пакета с именем расйаде его нужно загрузить при помощи команды »1сщрас«аде) В табл. 8.1 дан перечень математических пакетов Мар1е с указанием глав настоящей книги, в которых имеется описание или приведены обзорные сведения об этих пакетах. Глава 8. Математические библиотеки Мар!е 207 Имя пакета б!Потев Вова!па Ппапсе Баит»Тпг депГипс деоеЗЬ депе«!~у 6Р 6веЬпег дгоир !пйгапз Везуев Нпа!д ггпеагА!дебга гРБгооЬ МаИаЬ пеЬ«огйз пиеарргох вгпеау Оге агдеЬга оггпорогу райс РОБгооЬ ргогз р!оггооЬ рогугооЬ рошзепез ргосеа згвршх зйе Бргеад Назначение пакета Дифференциальные формы, см.
раздел «Алгебры и формы» этой главы Конструирование и анализ сложных алгоритмов, см. зту главу и справку Иарге Финансовая математика. Короткое описание дано в этой главе Работа с Гауссовыми целыми числами, си. Раздел «Теория чисел» данной главы Работа с рациональными производящими функциями, см.
справку Марге Команды трехмерной евклидовой геометрии, см. раздел «Стереометрия» данной главы Команды двумерной евклидовой геоиетрии, си. раздел «Геометрия на плоскости» данной главы Работа с конечными полями Галуа, см. эту главу Работа с полиномамн с использованием базиса Гребнера, см. эту главу Группы перестановок, см. раздел «Комбинаторика» этой главы Интегральные преобразования, см.
главу 3 «Математический анализ е Мар!е» Группы и симметрии Ли, см. данную главу Линейная алгебра, Большая часть команд пакета описана в главе 5 «Алгебра в Иарге» Пакет для решения задач линейнод алгебры, основанный на новых структурах данных Мар!е (ггаите и «пои)е) и использующий алгоритмы ИА6. Большая часть команд пакета описана в главе 5 «Алгебра в Иарге» Работа с линейными рекуррентными уравнениями, см. ваву 4 «Решение уравнений в Марге» Пакет, обеспечивающий связь систем Марге и МАТЬАВ, см.
главу 9 «Иарге и другие программы» Операции теории графов,см. данную главу Приближение функций, си. главу 3 «Математический анализ в Мар!е» Теория чисел, см. эту главу Вычисления в алгебрах линейных операторов, см. эту главу Ортогональные полиномы, см. данную главу Работа с р-адическими числами, см. раздел «Теория чисел» данной главы Исследование уравнений в частных производных, см. главу 4 «Решение уравнений в Иар!е» Двумерная и трехмерная графика, см.
главу б «Графика Марге» Работа с графическими обьектами, см. главу б «Графика Марге» Операции с полиномами, см. главу 2 «Аналитические преобразования в Иарге» Работа с формальными степенными разложениями, см. главу 3 «Математический анализ в Иарге» Функции для создания многозадачных программ Марго. Информацию о нем см. в справке Марге Линейная оптимизация, см. данную главу Решение линейных обыкновенных дифференциальных уравнений в виде формальных рядов, см.