<stateq> # Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ β ΡΠ΅Π»ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
end; (ΠΈΠ»ΠΈ end:) # ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
ΠΡΠ° ΡΠΎΡΠΌΠ° ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΠ°ΡΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. Π§ΠΈΡΠ°ΡΠ΅Π»ΡΠΌ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΡΡΠΎΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΠΎ ΡΠΏΡΠ°Π²ΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ use β¦ in β¦ end use.
10.4. Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
10.4.1. Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ
ΠΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°Π΄ΠΎ ΡΠΌΠ΅ΡΡ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΡ ΡΠ΅ΠΊΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, ΡΠ»ΡΠΆΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°
print(name);
Π³Π΄Π΅ name β ΠΈΠΌΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅, Π½Π°Π΄ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
> interface(verboseproc=2,prettyprint=1,version);
1, 3, Classic Worksheet Interface, Maple 9.50, Windows, Aug 9 2004 Build ID 163356
ΠΠ΅ ΡΠΌΡΡΠ» Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ½Π΅Π½ Π½ΠΈΠΆΠ΅. ΠΠΎΠΊΠ° ΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π΅ Π½Π° Maple-ΡΠ·ΡΠΊΠ΅, Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ. ΠΠΎΡΡΠ½ΠΈΠΌ ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ:
> print(evalf);
proc() option builtin, remember; 171 end proc
> print(erf);
proc(x::algebraic)
local Re_x, Im_x, sr, si, xr, xi;
option `Copyright (c) 1994 by the University of Waterloo. All rights reserved.`;
if nargs <> 1 then error "expecting 1 argument, got %1", nargs
elif type(x, 'complex(float)') then evalf('erf'(x))
elif x = 0 then 0
elif type(x, 'infinity') then
if type(x, ' cx_infinity') then undefined + undefined*I
elif type(x, 'undefined') then NumericTools:-ThrowUndefined(x)
elif type(Re(x), 'infinity') then CopySign(1, Re(x))
elif type(x, 'imaginary') then x
else infinity + infinity*I
end if
elif type(x, 'undefined') then NumericTools:-ThrowUndefined(x, 'preserve' = 'axes')
elif `Symbolic/Sign`(x) = -1 then -erf(-x)
else 'erf'(x)
end if
end proc
ΠΠ΄Π΅ΡΡ Π²Π½Π°ΡΠ°Π»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π»ΠΈΡΡΠΈΠ½Π³Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π² ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ evalf, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½ΡΠΉ Π»ΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ erf. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ β ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ. ΠΡ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ β Π»ΠΈΡΡΠΈΠ½Π³ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Maple ΡΠ²Π»ΡΡΡΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ interface. ΠΠ½Π° ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅
interface(arg1, arg2, β¦)
Π³Π΄Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π²Π΅Π½ΡΡΠ² Π²ΠΈΠ΄Π° name=value ΠΈ ΡΠ»ΠΎΠ²-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ:
ansi autoassign echo errorbreak errorcursor
imaginaryunit indentamount labelling labelwidth latexwidth
longdelim patchlevel plotdevice plotoptions plotoutput
postplot preplot prettyprint prompt quiet
rtablesize screenheight screenwidth showassumed verboseproc
version warnlevel
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ verboseproc=n Π·Π°Π΄Π°Π΅Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π»ΠΈΡΡΠΈΠ½Π³Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ. ΠΡΠΈ n=0 ΡΠ΅ΠΊΡΡ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ, ΠΏΡΠΈ n=1 Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π° ΠΏΡΠΈ n=2 β Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π½Π° Maple-ΡΠ·ΡΠΊΠ΅. ΠΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ» Π΄Π°Π½ Π²ΡΡΠ΅. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ prettyprint=0 ΠΈΠ»ΠΈ 1 ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ plotdevice=string ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π³ΡΠ°ΡΠΈΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ plotdevice=gif ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ .gif.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ trace(name). ΠΠ΅ΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ printlevel (ΡΡΠΎΠ²Π΅Π½Ρ Π²ΡΠ²ΠΎΠ΄Π°). ΠΡΠΈ printlevel:=n (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ n=1 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ k-Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ 5*k Π΄ΠΎ 5*(k+1). Π’Π°ΠΊ, ΠΏΡΠΈ n ΠΎΡ 1 Π΄ΠΎ 5 Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΏΡΠΈ n ΠΎΡ 6 Π΄ΠΎ 10 Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈ Ρ.Π΄. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ n β 100 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎΠ²Π½ΡΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ name.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ int(x^n,x):
> printlevel:=5;
printlevel := 5> trace(int);
{--> enter trace, args = int
<-- exit trace (now at top level) = int}
int
> int(x^n,x);
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΡΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ untrace:
> untrace(int);
{--> enter untrace, args = int
<-- exit untrace (now at top level) = int}
int
> int(Ρ ^n,x);
> enter int, args = x^n, x <-- exit int (row at top level) = x^(n+1)/(n+1)}
> printlevel:=1;
printlevel := 1> int(x^n,x);
ΠΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π°Π΄ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² Maple ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ traceerr ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ lasterr, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ tracerr ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ lasterr ΠΎΡΠΈΡΠ°Π΅ΡΡΡ:
> 2/0;
Error, numeric exception: division by zero
> 2/4;
1/2> 2/.3;
6.666666667> lasterror;
"division by zero"> traperror(3/4);
3/4> lasterror;
lasterror> traperror(5/0);
Error, numeric exeption: division by zero
> lasterror;
"numeric exception: division by zero"ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Ρ ΠΎΠ΄Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Maple ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΈΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ.
10.4.2. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ²
Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ CodeGenetarion ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Maple-ΠΊΠΎΠ΄ΠΎΠ² Π² ΠΊΠΎΠ΄Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
> with(CodeGeneration);
Warning, the protected name Matlab has been redefined and unprotected
[C, Fortran, IntermediateCode, Java, LanguageDefinition, Matlab, Names, Save, Translate, VisualBasic]ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Maple-ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ mode Π² ΠΊΠΎΠ΄Ρ ΡΠ·ΡΠΊΠ° MATLAB ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
> Matlab(mode);
Warning, the function names {Im, Re} are not recognized in the target
language
function modcreturn = modc(z)
modcreturn = (sqrt(Re(z) ^ 2 + Im(z) ^ 2));
ΠΠ· ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Maple, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΉΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π½Π΅ΠΉ, ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π»Π΅Π³ΠΊΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π»ΠΈΡΡΠΈΠ½Π³Π°ΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Maple, Π΄Π° ΠΈ Π½Π° ΡΡΠ΄Π΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π·Π°Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ, Ρ ΠΎΡΡ ΠΎΠ½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Maple ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.
10.4.3. Π Π°Π±ΠΎΡΠ° Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠΎΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (ΠΏΡΠΎΡΠ΅Π΄ΡΡ) ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠ±Π΅Π³Π°ΡΡ ΠΊ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠ΅. Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΉ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΡΠΆΠ΅ Π² Maple ΡΠ°Π·Π²ΠΈΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΡΠ²Π»ΡΡΡ Π³ΡΡΠ±ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ ΠΏΡΠΈ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ½ΠΎΠ³Π΄Π°, ΠΏΡΠ°Π²Π΄Π°, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ Β«ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡΒ» ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π½Π°ΡΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΡΠ»ΡΠΆΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ (debugger). ΠΠΏΠΈΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ demo, Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΡΡΠΌΠΌΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² ΡΠΈΡΠ΅Π» (1^2+2^2+...+n^2):
> demo:=proc(n::integer) local y,i:
> Ρ:=3:
> for i to n do y:=y+i^2 od
> end;
demo := proc(n::integer) local y,i; y: = 0; for i to n do Ρ:=i^2 end do end proc> demo(3);
14Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π² ΡΠ°Π±ΠΎΡΡ, Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ stopat:
> stopat(demo);
[demo]> demo(3); demo:
1* y := 0;
DBG>
ΠΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΊ Π²Π²ΠΎΠ΄Ρ ΡΠΎ Π·Π½Π°ΠΊΠ° > Π½Π° DBG> (ΠΊΠ°ΠΊ Π½Π΅ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, DBG ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ debugger). Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠΎΠ΄Π°Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ next (ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ), step (ΡΠ°Π³) ΠΈ stop (ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
DBG> next
0
demo:
2 for i to n do
...
end do
DBG> step
0
demo:
3 y := y+i^2
DBG> step
1
demo:
3 y := y+i^2
DB3> step
5
demo:
3 y := y+i^2
DBG> step
14Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎ ΡΠ°Π³Π°ΠΌ Π΄ΠΎΡΠ»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ; Π½Π° ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠ° ΡΠΎΠ±ΠΎΠΉ.
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²Π΅ΡΡΠΈ Π»ΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ showstat: