2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Maple как НЕ выводить результат вычисления?
Сообщение04.08.2011, 18:48 
Например, такой код:
Код:
S:=0;
for k from 1 to 1000 do
S:=S+k; // результат выводить НЕ нужно
od;
S;

Как убрать вывод результата вычисления в каждом шаге цикла?
Замена S:=S+k; на S:=S+k: не помогает никак - все равно все выводится.
Поставить двоеточие после od нежелательно - нельзя выводить вообще все внутри цикла.

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение04.08.2011, 19:01 
Во вложенном цикле такого не происходит, поэтому можно просто добавить ещё один внешний цикл типа for i from 0 to 0 do <далее то, что надо> od; Как сделать по-человечески, не знаю, но тоже был бы рад узнать.

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение04.08.2011, 19:04 
nnosipov писал(а):
Во вложенном цикле такого не происходит, поэтому можно просто добавить ещё один внешний цикл типа for i from 0 to 0 do <далее то, что надо> od; Как сделать по-человечески, не знаю, но тоже был бы рад узнать.

Код:
S:=0;
for k from 1 to 20 do
for m from 1 to 1 do
S:=S+k:
od:
k;
od;
S;

тоже не помогло - все равно выводит значения S. :-( Вот козёл! :evil:

(Оффтоп)

мало того, что я 10 дней (вырезано цензурой) пока узнал о printlevel...


help писал(а):
To suppress the output of large computations, place a colon at the end of the Maple command.
> 10000!:

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение04.08.2011, 19:56 
Вот так не печатает:
Код:
S:=0;
for k from 1 to 1000 do
S:=S+k;
od:
S;
S

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение04.08.2011, 20:47 
Vince Diesel в сообщении #473513 писал(а):
Вот так не печатает:
Код:
S:=0;
for k from 1 to 1000 do
S:=S+k;
od:
S;
S


Спасибо, работает, но принцип неясен.
Реальный код такой:
Код:
printlevel := 3;
A:= 2; C:=20; B:=binomial(2*A-3,A-2);
for k from A to C do
for m from 1 to 1 do
B:=B*2*(2*k-1)/k;
od:
if (not isprime(k) and k mod 2 = 1) then
if B mod k = 1 then
k;
fi;
fi;
od;
k;

И вот что мне с вычислением B сделать? :roll: Если я там без ; или : оставлю - не отработает, иначе - выводит.

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение04.08.2011, 22:31 
Как это не ясен, последнее двоеточие убивает весь вывод
и где вы команду od отрыли, понятнее писать end do

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение05.08.2011, 06:35 
mihailm в сообщении #473547 писал(а):
Как это не ясен, последнее двоеточие убивает весь вывод

У меня оно ничего не убивает - выводит как обычно.
mihailm в сообщении #473547 писал(а):
и где вы команду od отрыли, понятнее писать end do

Не помню :-) Где-то отрыл. Мне всяко лучше чем end do.

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение05.08.2011, 09:41 
С двоеточием в последнем od вывода меньше:
Код:
printlevel := 3;
A:= 2; C:=20; B:=binomial(2*A-3,A-2);
for k from A to C do
for m from 1 to 1 do
B:=B*2*(2*k-1)/k;
od:
if (not isprime(k) and k mod 2 = 1) then
if B mod k = 1 then
k;
fi;
fi;
od:
k;

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение05.08.2011, 11:48 
А! Понял! Вы все обворачиваете двоеточием, а то, что нужно выводить пишете отдельно внизу? Попробую...

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение05.08.2011, 16:40 
Нет, не выводит :-(, выводит лишь последнее $k$, а должен выводить значения $k$ внутри цикла (здесь должен вывести $9$)

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение05.08.2011, 18:58 
У меня выводит вот что:
Код:
                                      3
                                      2
                                     20
                                      1
                                     21

девятки нет.

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение05.08.2011, 20:26 
Vince Diesel в сообщении #473705 писал(а):
Код:
У меня выводит вот что:
Код:
                                      3
                                      2
                                     20
                                      1
                                     21

девятки нет.


И я про то же: не выводит, но должен.
Я может непонятно сформулировал :roll: ?

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение06.08.2011, 08:26 
Ну, можно по-простому поставить print:
Код:
printlevel := 3;
A:= 2; C:=20; B:=binomial(2*A-3,A-2);
for k from A to C do
for m from 1 to 1 do
B:=B*2*(2*k-1)/k;
od:
if (not isprime(k) and k mod 2 = 1) then
if B mod k = 1 then
print(k);
fi;
fi;
od:
k;

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение06.08.2011, 14:22 
Vince Diesel в сообщении #473775 писал(а):
Ну, можно по-простому поставить print:

Вот! Про print-то я и не знал! :lol: Спасибо! Теперь можно работать!

 
 
 
 Re: Maple как НЕ выводить результат вычисления?
Сообщение15.03.2023, 11:01 
Перед оператором с нежелательным выводом информации поставьте команду

printlevel := 0;

Для восстановления статуса-кво поставьте команду

printlevel := 1;

Вообще полезно изучить действия операторов

printlevel:=; printlevel:=1; printlevel:=2; printlevel:=3; ...

 
 
 [ Сообщений: 15 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group