Разьясните плиз!
Написать программу для вычисления суммы ряда v=3+E ((-1)^n/(5n-1)^3) с точностью e=10(-4).
E - знак энной интегральной суммы
e - эпсила
И если кому не лень помогите решить.
Плиз, экзамен на носу.
Написать программу для вычисления суммы ряда v=3+E ((-1)^n/(5n-1)^3) с точностью e=10(-4).
E - знак энной интегральной суммы
e - эпсила
От тебя хотят посчитать сумму ряда. Ты только скажи, в каком диапазоне находится n? Ряд-то, надеюсь, конечный? Если ряд конечный, просто считаешь от min до max. Не помню, но по-моему, в Паскале была ф-я возведения в произвольную степень. Если не было, несложно написать. Нужная точность достигается округлением.
То есть, пишется цикл:
for n := min to max do
E := 0;
begin
E := E + ((-1)^n/(5n-1)^3); //Пишу без синтаксиса!
end;
E:= E + 3;
E := Round (4);
Примерно так.
От тебя хотят посчитать сумму ряда. Ты только скажи, в каком диапазоне находится n? Ряд-то, надеюсь, конечный? Если ряд конечный, просто считаешь от min до max. Не помню, но по-моему, в Паскале была ф-я возведения в произвольную степень. Если не было, несложно написать. Нужная точность достигается округлением.
То есть, пишется цикл:
for n := min to max do
E := 0;
begin
E := E + ((-1)^n/(5n-1)^3); //Пишу без синтаксиса!
end;
E:= E + 3;
E := Round (4);
Примерно так.
Спасибо. А в каком диапазоне n и какой ряд не знаю. Я дословно написал задание - т.е. все что известно я написал.
А в каком диапазоне n и какой ряд не знаю.
В любом случае [COLOR=firebrick]min <= n <= max[/COLOR] , где min и max - соответственно минимальное и максимальное значение использованного типа данных. Для Integer -32768 <= n <= 32767
Если n:Real или какой-то другой, тогда смотри доки, я навскидку не помню.
Но мне что-то говорит, что сумма будет считаться от нуля до n. Впрочем, это сути дела не меняет.
E,v:real;
begin
n:=0;
E:=0;
while n<=5 do
begin
if (n=2) or (n=4) then x:=1 else x:=-1;
E:=E+(x/exp(3*ln(abs(5*n-1))));
n:=n+1;
end;
v:=E + 3;
writeln('v=',v:5:4);
readln;
end.
Зделал n от 0 до 5. Но вот какая проблема:
условие зделано потому что -1 в степень не возведешь так как получается отрицательное число под логарифмом. Если условие записать с остатком - типо проверка на четность то прога не правильно считает, может кто поможет? И даже если записать "if (n=0) or (n=2) or (n=4)" то тоже не правильно считает - видимо всю погоду делает энтот 0!
s:=3;
x:=1;
n:=1;
u:=2*eps;
while u>eps do
begin
x:=-x;
u:=x/((5*n-1)*(5*n-1)*(5*n-1));
s:=s+u;
n:=n+1;
end;
Надеюсю, я правильно понял формулу.
А так:
s:=3;
x:=1;
n:=1;
u:=2*eps;
while u>eps do
begin
x:=-x;
u:=x/((5*n-1)*(5*n-1)*(5*n-1));
s:=s+u;
n:=n+1;
end;
Надеюсю, я правильно понял формулу.
Ну что то вроде этого только получается чушь какая то.
Народ помогите разобраться хотя бы с заданием, никак не могу понять что от меня хотят!
Написать программу для вычисления суммы ряда v=3+E ((-1)^n/(5n-1)^3) с точностью e=10(-4).
E - знак энной интегральной суммы
e - эпсила
И если кому не лень помогите решить.
Плиз, экзамен на носу.
Надо хотя бы немного башкой думать! Какой нах.. из тебя программер?
Надо хотя бы немного башкой думать! Какой нах.. из тебя программер?
Вот если бы тебе начитали лекций по паскалю и заставили здавать экзамен при этом практики было 3 пары, то я думаю что ты также думал своей башкой!!!
И нах. флудить в теме? Считаешь себя таким Вумным? Тогда попробуй сам написать! Посмотрел бы я как у тебя эт получится.
Вот если бы тебе начитали лекций по паскалю и заставили здавать экзамен при этом практики было 3 пары, то я думаю что ты также думал своей башкой!!!
И нах. флудить в теме? Считаешь себя таким Вумным? Тогда попробуй сам написать! Посмотрел бы я как у тебя эт получится.
Ну, ладно, извини. Если всего три пары, то понятно. Что касается ответа, то по-моему его дали уже. Вроде все правильно.
Ну, ладно, извини. Если всего три пары, то понятно. Что касается ответа, то по-моему его дали уже. Вроде все правильно.
Ответ вроде правильный но считает не правильно. Я думаю что весь косяк в задании, даже в excel чушь получается.
Ответ вроде правильный но считает не правильно. Я думаю что весь косяк в задании, даже в excel чушь получается.
Может, сам ряд дурной. Дай подумать.
Проверь, я мог напортачить, потому что спешил:
var
S1,V: Double;
n, sign: Integer;
begin
sign:=1;
V:=3;
S1:= -1;
V:=V+S1; // нулевой член
n:=0;
While (abs(S1)>=1E-4) do
begin
n:=n+1;
sign:=sign*(-1);// меняем знак на обратный
S1:=sign/((5*n-1)*(5*n-1)*(5*n-1));
V:=V+S1;
end;
Ответ у меня вышел 1,9854557...
Не уверен, что правильно - спешил.
Проверь, я мог напортачить, потому что спешил:
var
S1,V: Double;
n, sign: Integer;
begin
sign:=1;
V:=3;
S1:= -1;
V:=V+S1; // нулевой член
n:=0;
While (abs(S1)>=1E-4) do
begin
n:=n+1;
sign:=sign*(-1);// меняем знак на обратный
S1:=sign/((5*n-1)*(5*n-1)*(5*n-1));
V:=V+S1;
end;
Ответ у меня вышел 1,9854557...
Не уверен, что правильно - спешил.
Спасибо. Я очень много кодов перепробовал, включая этот. Везде получаются разные ответы. Даже в excel хрень получается.
Спасибо. Я очень много кодов перепробовал, включая этот. Везде получаются разные ответы. Даже в excel хрень получается.
Разных ответов тут быть не может. Ряд же сходящийся (а ну-ка, кто вспомнит критерий сходимости?).
Алгоритм подсчета суммы ряда очень простой: считаешь очередной член ряда, если он больше твоего епсолона, прибавляешь его к сумме и увеличиваешь индекс. И так, пока очередной член не станет меньше или равен епсилон - это и будет сумма ряда, найденная с точностью до епсилона. Сумма сходящегося ряда всегда конечна.
Успехов!
Спасибо. Я очень много кодов перепробовал, включая этот. Везде получаются разные ответы. Даже в excel хрень получается.
Совершенно согласен с Archie. Кстати, вручную проверил свой код - все верно. Забыл только оператор вывода результата скопировать в ответ. Надеюсь, тут нет проблем. Одного end тоже не хватает :-). Еще, возможно, n пробегает от 1, а не от 0 и т.д. Здесь задание надо уточнить.
Совершенно согласен с Archie. Кстати, вручную проверил свой код - все верно. Забыл только оператор вывода результата скопировать в ответ. Надеюсь, тут нет проблем. Одного end тоже не хватает :-). Еще, возможно, n пробегает от 1, а не от 0 и т.д. Здесь задание надо уточнить.
Все разобрался, просто нужно было в условие поставить по модулю т.е. until abs(s)<0.0001/
Спасибо всем за участие!