Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MAPLE.doc
Скачиваний:
221
Добавлен:
24.03.2015
Размер:
1.52 Mб
Скачать

19. Процедуры функции. Процедуры. Средства отладки процедур, их сохранение и использование (подключение).

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

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

Простейшая форма задания процедуры следующая:

name := proc(Параметры)

Тело процедуры

end;

Параметры процедуры задаются перечислением имен переменных, например proc(х) или proc(x,y,z). С помощью знака :: после имени переменной можно определить ее тип, например в объявлении prog(n::integer) объявляется, что переменная n является целочисленной.

При вызове процедуры выражением вида

name(Фактические_параметры)

фактические параметры подставляются на место формальных. Несоответствие фактических параметров типу заданных переменных ведет к сообщению об ошибке и к отказу от выполнения процедуры.

В качестве примера ниже приведена процедура вычисления модуля комплексного числа z — в данном случае это единственный параметр процедуры (файл р4):

> mode:=рroc(z)

> evalf(sqrt(Re(z)^2+Im(z)^2))

> end;

modc := proc(z) evalf (sqrt((z)^2 + (z)^2)) end proc

После ввода заголовка процедуры под строкой ввода появляется сообщение: «Warning, premature end of input». Оно указывает на то, что ввод листинга процедуры не закончен и должен быть продолжен до тех пор, пока не будет введено завершающее слово end листинга процедуры. Если после этого слова поставить символ точки с запятой, то листинг процедуры будет выведен на экран дисплея.

Теперь для вычисления модуля достаточно задать обращение к процедуре modc(z), указав вместо z конкретное комплексное число:

> mode(3.+I*4.);

5.0000000000

Нетрудно заметить, что при знаке ; после завершающего слова end текст процедуры повторяется в строке вывода (в общем случае в несколько ином виде).

Если это повторение не нужно, после слова end надо поставить знак двоеточия. Обратите также внимание на то, что для обозначения действительной и мнимой частей процедуры в ее тексте появились готические буквы.

Графические процедуры

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

> mob := proc(width)

> plot3d([(5+cos(1/2*t)*u)*cos(t),

(5+cos(1/2*t)*u)*sin(t),sin(1/2*t)*u], t=0..2*Pi,

> u=-width/5..width/5, gnd= [60,10] ,

> scaling=UNCONSTRAINED, orientation= [0,140]);

> end:

Запуск этой процедуры командой

> mob(5);

строит фигуру, показанную на рис. 10.4.

Рис. 10.4. Кольцо Мебиуса, построенное графической процедурой

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]