Цикл for

Форум пользователей пакета Maple

Модератор: Admin

acc313R4Tion
Сообщения: 2
Зарегистрирован: Пн мар 13, 2017 9:00 am

Цикл for

Сообщение acc313R4Tion » Вт мар 21, 2017 9:27 am

Всем привет! Думаю, вопрос простой, т.к. мэйплом недавно пользуюсь. Есть такой вот цикл суммирования чисел от 1 до 10

> Q := 0;
> for i from 1 to 10 by 1 do
Q"i" := i;
Q := Q + Q"i";
print(Q"i");
end do:

Команда print показывает все промежуточные значения Q"i", но после окончания цикла эти значения не сохраняются, сохраняется только сумма Q. Каким образом можно вывести значение Q1, Q2 ... Q10 вне цикла? Они нужны для дальнейших расчетов. Подскажите, как сохранить все промежуточные значения в таком случае?

И еще сопутствующий вопрос. Можно ли узнать значение функции в точке по заданным координатам? Функция зависит от многих переменных, в т.ч. от х и у координат
Последний раз редактировалось acc313R4Tion Вт мар 21, 2017 10:25 am, всего редактировалось 1 раз.

Kitonum
Сообщения: 2035
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Цикл for

Сообщение Kitonum » Вт мар 21, 2017 10:38 am

Я упростил Ваш код, убрав всё лишнее. Для Вашей цели удобно использовать индексированные имена. Имена наподобие Q"i" не допускаются. Писать by 1 не нужно, т.к. это делается по умолчанию. Команда print Вам совсем не нужна. Обычно она используется только в процедурах, когда нужно вывести на экран какие-то промежуточные результаты.

S[0] := 0:
for i from 1 to 10 do
S[i] := S[i-1] + i;
end do:

S[2], S[5], S[10];
# Примеры вызова отдельных сумм

3, 15, 55

acc313R4Tion
Сообщения: 2
Зарегистрирован: Пн мар 13, 2017 9:00 am

Re: Цикл for

Сообщение acc313R4Tion » Вт мар 21, 2017 11:57 am

Спасибо) А по поводу значения функции в точке что-нибудь можете подсказать? Есть функция P, зависящая от нескольких параметров, в т.ч. х и у. И есть функция Q, зависящая от функции P. Командой plot3d график Q(х,у) строится, а вот пробовал я print(Q[10,20]), eval(Q[10,20]), print(Q[x=10,y=20]), eval(Q[x=10,y=20]), ничего конкретного не выдает( Как быть?

Kitonum
Сообщения: 2035
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Цикл for

Сообщение Kitonum » Вт мар 21, 2017 1:27 pm

Два варианта на примере, когда 1) функция задана как выражение и 2) та же функция задана как процедура. Лучшим и более быстрым является второй способ.

F:=x^2-2*y: # Как выражение
f:=(x,y)->x^2-2*y: # Как процедура
eval(F, [x=10,y=20]);
f(10,20);

60
60