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

For имя переменной цикла in выражение 1 do выражение 2 od;

Здесь тело цикла выражение 2 выполняется, в случае если символьная переменная заданная своим именем последовательно принимает значение каждого из операндов алгебраического выражения 1. Отметим, что работа данной конструкции зависит от внутреннего представления выражения 1. Так в случае если выражение 1 является суммой, то имя переменной цикла принимает поочередно значение каждого слагаемого, если произведение – то каждого сомножителя.

Пример.

[> restart;

[> a:=5*x^2+x+6/x;

[> b:=simplify(%);

[> for m in a do m; od;

[> for m in b do m; od;

10.3. Процедуры-функции

Процедуры-функции в Maple можно задавать двумя способами. Для задания процедур-функций первый способ использует символ () и задается следующей структурой:

имя функции:=(список формальных параметров) выражение;

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

Пример.

[> f1:=(x1,x2)->simplify(x1^2+x2^2);

[> f1(cos(x),sin(x));

1

Второй способ задания процедур-функций использует команду unapply и имеет следующую структуру:

имя функции:=unapply(выражение или операция, список переменных);

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

Пример.

[> f3:=unapply(diff(z(r)^2,r)-2,z);

[> f3(sin);

[> combine(%);

10.4. Процедуры

Любая процедура в Maple начинается с заголовка, состоящего из имени процедуры, за которым следует знак присваивания и служебное слово proc, далее в круглых скобках через запятую указываются формальные параметры. Процедура обязательно заканчивается служебным словом end. Все выражения и команды заключенными между служебными словами proc и end составляют тело процедуры.

имя процедуры := proc (список формальных параметров); команды (или выражения); end;

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

Пример.

[> f:=proc(x,y);x^2+y^2;simplify(%);end:

[> f(sin(x),cos(x));

1

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

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

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

Для выхода из процедуры в любом месте ее тела и присваивания результату ее работы по выполнению нужной команды можно использовать команду RETURN(val), где val – возвращаемое значение, которое может иметь различный тип при выходе из разных мест процедуры.

Для аварийного выхода из процедуры в случае возникновения ошибки и сообщения о случившемся можно использовать команду ERROR(‘string’), здесь string – сообщение, которое выводится на экран монитора в аварийной ситуации. Таким образом, общий вид структуры процедуры можно изобразить следующим образом:

имя процедуры:=proc(список параметров процедуры)localсписок локальных переменных, приведенных через запятую; globalсписок глобальных переменных, приведенных через запятую; RETURN(val); ERROR(‘error in body of procedure’);… end;

Пример.

[> examp:=proc(x) local y,w; global z; if x<0 then RETURN(-x); elif x=0 then ERROR('Variablex=0'); fi;[x,x^2,x^3]; end;

[> examp(-1);

[> examp(0);

Error, (in examp) Variablex = 0

[> examp(2);

11. СПОСОБЫ ВВОДА И ВЫВОДА ИНФОРМАЦИИ

В СРЕДЕ MAPLE

Для сохранения имен (индентификаторов) переменных и их значений во внешнюю память в виде файла с именем name.txt необходимо ввести команду:

save список имен переменных, перечисленных через запятую, “имя файла с расширением txt”;

Если в качестве расширения указан символ m, то файл будет записан во внутреннем Maple-формате, при всех других расширениях в текстовом формате. Для вывода на экран сохраненной в файле информации используется команда

read имя файла”;

Пример.

[> restart;

[> examp:=proc(x) local y,w; global z; if x<0 then RETURN(-x); elif x=0 then ERROR('Variablex=0'); fi; y:=x; w:=x^2; z:=x^3; save y,w,z,"nnn.txt"; close ("nnn.txt"); end;

[> examp(-1);

[> examp(0);

Error, (in examp) Variablex = 0

[> examp(2);

[> read "nnn.txt";

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

Первая команда

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