Robert M. Corless
Department of Applied Mathematics
University of Western Ontario
London, Canada

Copyright 2001 by Robert M. Corless
All rights reserved

Programming in Maple 

Программирование в Maple

Procedures 

Процедуры

> restart;

> Fred := proc( n::integer )
if n mod 17 = 0 then
do_something_17_ish;
do_some_more_stuff;
"The input was divisible by 17"
else
do_something_not_17_ish;
do_some_more_stuff;
"The input was NOT divisible by 17"
end if
end proc;

> subs( 17=15, eval(Fred) );

> subs( 1=2, eval(Fred) );

> Fred( 1 );

> Fred( 17 );

> Fred( -17 );

> Fred( N );
Error, invalid input: Fred expects its 1st argument, n,
to be of type integer, but received N
Ошибка, неверный ввод: в процедуре Фред первый аргумент n должен быть целым числом, а введено N .
> Ginger := proc( x::numeric )
local i, j, k, s;
s := 0;
for i from 0 to 5 while evalb( s >= 0 ) do
for j from -1 to 3 do
for k to 3 do
s := s + x^(i+j-k);
end do
end do
end do
end proc:
> subs(1=2, eval(Ginger) );

> Ginger( 3 );

572572/81

> Ginger( 3. );

7068.790123

> Ginger( 1 );

90

> Ginger( -3. );

-10.54320988

> Ginger(-3.001);

-10.55682503

> Ginger( x );

Error, invalid input: Ginger expects its 1st argument, x,

 to be of type numeric, but received x
Ошибка, неверный ввод: в процедуре Джинджер первый аргумент х должен быть числом, а введено х
> Ginger( infinity );
Error, invalid input: Ginger expects its 1st argument, x,
to be of type numeric, but received infinity

Ошибка, неверный ввод: в процедуре Джинджер первый аргумент х должен быть числом, а введена бесконечность.

> Ginger( NULL );
Error, (in Ginger) Ginger uses a 1st argument, x (of type numeric), which is missing
Ошибка: в процедуре Джинджер первый аргумент х должен быть числом, а оно отсутствует
> Ginger( 0 );
Error, (in Ginger) numeric exception: division by zero
Ошибка, (в Джинджер) численный запрет: деление на ноль .
> tracelast;
 Ginger called with arguments: 0
 #(Ginger,5): s := s+x^(i+j-k)
Error, (in Ginger) numeric exception: division by zero
 locals defined as: i = 0, j = -1, k = 1, s = 0
Ошибка, (в Джинджер) численный запрет: деление на ноль
> 0^(-2);
Error, numeric exception: division by zero
Ошибка, численный запрет: деление на ноль

С официального разрешения                    © 2002 Waterloo Maple, Inc

 
Hosted by uCoz