Сообщение об ошибке об идентификаторах в процедурах mupad

Я пытаюсь писать функции на мупаде, но, кажется, я не понял, как работают процедуры и идентификаторы. Я получаю каждый раз сообщение «Ошибка: Неожиданный идентификатор». Первый пример: я попытался изменить первую строку данной матрицы на [1 1 ... 1]. Я написал следующий код:

shibutz:=proc(B)
begin
cons:=Dom::Matrix():
l:=max(cons::matdim(B));
for k from 1 to l do
B[1,k]:=1;
end_for
print(B);
end_proc

Второй пример: другой код, который выдает ту же ошибку, — это написанная мной процедура, проверяющая теорему Гольдбаха о том, что каждое четное число является суммой двух простых чисел:

golbach:=proc(n)
begin
flag=bool(9<8);
theprimes:=select([$2..n-1],isprime);
for k from 1 to nops(theprimes) do
if(isprime(n-k)=TRUE) then
flag=bool(1>0);
end_if
end_for
return (flag);
end_proc

Что я делаю не так? каких идентификаторов мупад не ожидал?


person Danis Fischer    schedule 25.06.2013    source источник
comment
Что вы пробовали с точки зрения отладки? Я сам не использовал mupad, но когда я попробовал ваш первый фрагмент кода (shibutz), я получил ошибку в line 8, который является вашим оператором print. Я знаю, что сам print должен работать, поэтому предполагаю, что что-то в цикле пошло не так. Являются ли значения для cons и l такими, как вы ожидаете?   -  person Schorsch    schedule 25.06.2013


Ответы (1)


Я просто забыл; в конце цикла (это должно было быть end_for;), и, кроме того, я забыл : перед = (так что это должно было быть :=, а не =). Извините за тупой вопрос.

person Danis Fischer    schedule 25.06.2013