1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Помогите, пожалуйста, с лабой. Попробовал сам - но у меня откуда-то получается деление на ноль. (я думаю, я превысил размер заданного типа. (На всякий случай тоже прикрепил, но только расчет сигмы).
ФУНКЦИИ
Для аргумента X, изменяющегося от 0 с шагом 0.04 вычислить 20 значений функций:
Функцию f2(x) вычислить для ряда точностей - е=0.01, е=0.001, е=0.0001. Для указанных точностей определить количество N элементов ряда, суммируемых для достижения заданной точности. При составлении алгоритма использовать рекуррентные зависимости между соседними компонентами итераций (каждый член итерационного ряда считать через предыдущий член). Результаты расчетов свести в таблицу.
Вот тут есть пример, как подобное делается, но пример гораздо проще, без факториалов и степеней. docs.google.com/Doc?docid=0AWCsLtJmOPr4ZGQ2dDlucnRfNWNwbTI3Mmc2&hl=en
Заранее спасибо.
program fun;
const eps1 = 0.01; eps2 = 0.001; eps3 = 0.0001; a = 0; b = 0.04; N = 20;
stmn:=2*k1; {вычисляю множитель после дроби} mnoj:=1; for z:=1 to stmn do mnoj:=mnoj*x; {mnoj - мой множитель}
slag:=(step*fac1_1*mnoj)/(step1*step2); func1:=func1+slag; until abs(func1)<=eps1; {-----------Итерационный цикл для точности 10-2-------------} {-----------Итерационный цикл для точности 10-3-------------} k2:=k1; func2:=func1; repeat inc(k2);
if (k2 mod 2)=0 then {вычисляю степень числа -1} step:=1 else step:=-1; {1 если степень четная и -1 если степень нечетная}
stmn:=2*k2; {вычисляю множитель после дроби} mnoj:=1; for z:=1 to stmn do mnoj:=mnoj*x; {mnoj - мой множитель}
slag:=(step*fac1_1*mnoj)/(step1*step2); func2:=func2+slag; until abs(func2)<=eps2; {-----------Итерационный цикл для точности 10-3-------------} {-----------Итерационный цикл для точности 10-4-------------} k3:=k2; func3:=func2; repeat inc(k3);
if (k3 mod 2)=0 then {вычисляю степень числа -1} step:=1 else step:=-1; {1 если степень четная и -1 если степень нечетная}
stmn:=2*k3; {вычисляю множитель после дроби} mnoj:=1; for z:=1 to stmn do mnoj:=mnoj*x; {mnoj - мой множитель}
slag:=(step*fac1_1*mnoj)/(step1*step2); func3:=func3+slag; until abs(func3)<=eps3; {-----------Итерационный цикл для точности 10-4-------------} x:=x+b; end; end.