ВУЗ:
Составители:
Рубрика:
i
2
è äî îïåðàòîðà end, ñîñòàâëÿþò òåëî ïðîöåäóðû. Ïðîñòåéøàÿ ïðîöåäóðà èìååò âèä: (NAME:=proc(VAR1, VAL2,...); EXPR1; EXPR2;... end proc; Çäåñü (NAME - èìÿ ïðîöåäóðû, VAR1, VAL2,...- èìåíà ôîðìàëü- íûõ ïàðàìåòðîâ, à EXPR1, EXPR2, ... - âûðàæåíèÿ, ðåàëèçóþùèå òåëî ïðîöåäóðû. Òåêñò ïðîöåäóðû äîëæåí áûòü íàáðàí â îäíîé ãðóïïå. Ïî íàæàòèþ êëà- âèøè Enter ïðîèñõîäèò ñèíòàêñè÷åñêèé àíàëèç òåêñòà è â ñëó÷àå îøèáêè âûâîäèòñÿ ñîîáùåíèå î íåé. Ïîñëå òîãî êàê ïðîöåäóðà çàãðóæåíà â ïàìÿòü, ê íåé ìîæíî îáðàùàòüñÿ ïî èìåíè. Âîçâðàùàåìûì çíà÷åíèåì ïî óìîë÷à- íèþ ÿâëÿåòñÿ ðåçóëüòàò ïîñëåäíåãî îïåðàòîðà èç òåëà ïðîöåäóðû, îäíàêî ñóùåñòâóþò è äðóãèå âîçìîæíîñòè, î êîòîðûì áóäåò ñêàçàíî íèæå. Òèï ðåçóëüòàòà ðàáîòû ïðîöåäóðû çàâèñèò îò òèïà âîçâðàùàåìîãî çíà÷åíèÿ. Ôîðìàëüíûé ïàðàìåòð ïðîöåäóðû ìîæíî ÿâíî îïèñàòü, óêàçàâ åãî òèï ïîñëå äâóõ äâîåòî÷èé, ñëåäóþùèõ çà èìåíåì ïàðàìåòðà.  ýòîì ñëó÷àå ïðè îáðàùåíèè ê ïðîöåäóðå Maple ïðîâåðèò òèï ôàêòè÷åñêîãî ïàðàìåòðà è âûâåäåò ñîîáùåíèå îá îøèáêå â ñëó÷àå íåñîâïàäåíèÿ ñ òèïîì ôîðìàëüíîãî ïàðàìåòðà. Ïðèìåð: >f:=proc(i::integer) i2 end proc:f(4);f(-3); 16 9 Åùå îäíèì ñïîñîáîì ïåðåäà÷è äàííûõ èç ïðîöåäóðû ÿâëÿåòñÿ èçìå- íåíèå çíà÷åíèÿ âõîäíûõ ïàðàìåòðîâ. Ïðè ïîìîùè îïèñàíèÿ evalnìîæíî ïðèñâàèâàòü ïåðåìåííûì, âûñòóïàþùèì â êà÷åñòâå âõîäíûõ ïàðàìåòðîâ, çíà÷åíèÿ âíóòðè ïðîöåäóðû. Îòìåòèì, ÷òî ïðèñâàèâàòü ôàêòè÷åñêèì ïà- ðàìåòðàì âîçâðàùàåìûå çíà÷åíèÿ ñëåäóåò òîëüêî ïåðåä âûõîäîì èç ïðîöå- äóðû, ÷òî ñâÿçàíî ñî ñïåöèôèêîé îáðàáîòêè âûðàæåíèé âíóòðè ïðîöåäóð. Ïðèìåð: >f:=proc(x::evaln) x:=10;x end proc:f(a);a; a 10 Ïîñëå çàãîëîâêà ïðîöåäóðû ìîæåò ñëåäîâàòü îïèñàòåëüíàÿ ÷àñòü ïðî- öåäóðû, îòäåëÿþùàÿñÿ îò íåãî ïðîáåëîì.  ýòîé ÷àñòè îïèñûâàþòñÿ ëî- êàëüíûå è ãëîáàëüíûå ïåðåìåííûå, èñïîëüçóåìûå ïðîöåäóðîé. Äëÿ îïðåäåëåíèÿ ëîêàëüíûõ ïåðåìåííûõ ïðèìåíÿåòñÿ îïèñàòåëü local. Ïåðå÷èñëèòü ãëîáàëüíûå ïåðåìåííûå ìîæíî ïðè ïîìîùè îïèñàòåëÿ global. Íåîïèñàííûå ïåðåìåííûå Maple àâòîìàòè÷åñêè îïèñûâàåò êàê ëîêàëüíûå. Ïðèìåð: 34