IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> прогрессия, хелп!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


arctg(X)= x-x^3/3+x^5/5-x^7/7+x^9/x+...... xe [-1;1]
правелно ли я делаю ? или лутше через массив?

Код

Program first;
uses crt;
var xn,E,summa,p,x2:real;
    i:integer;
begin
clrscr;
repeat
writeln ('введите xn [-1..1]');
readln(xn);
until (xn>=(-1)) and (xn<=1);
write('E=');
read(E);
x2:=xn*xn;
summa:=xn;
p:=xn;
i:=3;
repeat
p:=-p*x2/(i*(i-2));
summa:=summa+p;
i:=i+2;
until p<E;
writeln('p=',p:5:5);
writeln('summa=',summa:5:5);
readln;
readln;
end.


так как мне надо вводить n тоесть n=1 =x
n=2 = x+x^3/3
n=3 = x+x^3/3+x^5/5
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






У тебя не совсем верно здесь:
repeat
p:=-p*x2/(i*(i-2)); { <--- }
summa:=summa+p;
i:=i+2;
until p<E;

(тебе не нужно изменять знаменатель... То, что ты делаешь, аналогично:

x-x^3/3+x^5/(3*5*3)-x^7/(7*5*3*5*3)+...,
то есть знаменатель ДОМНОЖАЕТСЯ на i*(i-2), а тебе нужно:
next := xn;
repeat
p := next/i;
next := - next * x2; { next хранит изменяющийся числитель, знаменатель вычисляется уже в p }
summa:=summa + p;
i:=i+2;
until abs(p) < E; { <--- Не забывай про abs }

)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


спасиба wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


что то не то если x=1 a e=0.2 то должна сумма быть 0 .... а у меня что-то считает wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


и еще с abs нелзя е=0
вечный цикл получается
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну вот расскажи мне, если у тебя X = 1, и s = X + ... то как может быть сумма равна 0 ???

Цитата
с abs нелзя е=0
E = 0 вообще нельзя... Какой смысл ты в это вкладываешь? "С точностью до НУЛЯ"???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


да ты прав...понял give_rose.gif
а он считает только x+x^3/3 .... далше несчитает norespect.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Код

Program first;
uses crt;
var xn,p,E,summa,next,x2:real;
    i,n:integer;
begin
clrscr;
repeat
writeln ('iveskyte xn [-1..1]');
readln(xn);
until (xn>=(-1)) and (xn<=1);
repeat
writeln ('iveskyte E<>0=');
readln(E);
until E<>0;
x2:=xn*xn;
summa:=xn;
next:=xn;
i:=3;
for n:=1 to 3 do begin
repeat
p:=next/i;
next:=next*x2;
summa:=summa+p;
i:=i+2;

until abs(p)<E;
writeln('p=',p:5:5);
writeln('summa=',summa:5:5);
end;
readln;
end.



во..... но теперь я хотчу чтобы я вводил n а не чикл мне векидивал от 1 до 3 , хелп yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






А вот теперь ты мне расскажи, зачем тебе в программе нужен вот этот цикл:
for n:=1 to 3 do begin
? Что, нельзя точность поменьше задать? Чего ты добиваешься этим циклом? Правильности результату он никак не прибавляет, в смысле, ты задал E = 0.2, и результат с данной точностью получился уже при n = 1... Все остальное - никому не нужные вычисления...

Сначала приведи код в нормальный вид, потом напиши, ЧТО ИМЕННО ты хочешь вводить, и какой результат получить, а потом будем разговаривать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Код
for n:=1 to 3 do begin

так хоть далше считает.... а то ответ такой же самий :/

мне же надо его вводить .... цикл считает отлично , но я им немогу руководит тока от и до ввести
а мне надо например чтобы n=3 ; p:=x+x^3/3-^5/5
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


ну кажись решил....посчитал на бумаге вроде всио оки
Код

Program first;
uses crt;
var xn,p,E,summa3,summa2,next,x2:real;
    i,n:integer;
begin
clrscr;
repeat
writeln ('iveskyte xn [-1..1]');
readln(xn);
until (xn>=(-1)) and (xn<=1);
repeat
writeln ('iveskyte E=');
readln(E);
until E<>0;
repeat
writeln ('iveskyte n=');
readln(n);
until n<>0;
x2:=xn*xn;
summa2:=xn;
next:=xn;
i:=3;
for n:=1 to n do begin
repeat
next:=next*x2;
p:=next/i;
summa2:=summa2+p;
i:=i+2;
until abs(p)<E;
writeln('p=',p:5:10);
writeln('summa2=',summa2:5:5);
end;
readln;
end.


еще бы зделать чтобы все n непоказывало , а толко последний

Сообщение отредактировано: Andrej -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Клавиатурный тиран
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  -2  +


Код

Program first;
uses crt;
var xn,p,E,summa3,summa2,next,x2:real;
    i,n:integer;
begin
clrscr;
repeat
writeln ('iveskyte xn [-1..1]');
readln(xn);
until (xn>=(-1)) and (xn<=1);
repeat
writeln ('iveskyte E=');
readln(E);
until E<>0;
repeat
writeln ('iveskyte n=');
readln(n);
until n<>0;
x2:=xn*xn;
summa2:=xn;
next:=xn;
i:=3;
for n:=1 to n do begin
repeat
next:=next*x2;
p:=next/i;
summa2:=summa2+p;
i:=i+2;
until abs(p)<E;
end;
writeln('p=',p:5:10);
writeln('summa2=',summa2:5:5);
readln;
end.


чтоб только значения при последнем n? есля я правильно понял, надо предпоследний end на 2 строки выше поднять, как у меня выше.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Sozialist, ты что изменил-то в основном цикле программы??? Зачем просто так Copy/Paste-ить?

Объясните вы мне РУССКИМ языком, зачем КОМБИНИРОВАТЬ 2 цикла (For + Repeat), если можно обойтись одним Repeat-ом, только не Until abs(p)<E ...

Особенно мне понравилось вот это:
Цитата
for n:=1 to n do begin
smile.gif

Program first;
uses crt;
var
xn,p,E,summa3,summa2,next,x2:real;
i,n:integer;
begin
clrscr;
repeat
writeln ('iveskyte xn [-1..1]');
readln(xn);
until (xn>=(-1)) and (xn<=1);

{
!!! Этот кусок можно убрать - от него теперь никакого толка нет...
Ты НЕ можешь одновременно считать и ДО определенной точности, и
определенное число членов ряда... Или одно или другое...
}
repeat
writeln ('iveskyte E=');
readln(E);
until E<>0;
{ ... !!! }

repeat
writeln ('iveskyte n=');
readln(n);
until n > 0; { А если бы я при твоем условии задал -1 ? }

x2:=xn*xn;
summa2:=xn;
next:=xn;
i:=3;

if n = 1 then p := 0
else repeat
next:=-next*x2; { А вот сюда посмотреть уже 10 постов никто не догадался, я забыл здесь минус }
p:=next/i;
summa2:=summa2+p;
i:=i+2;
dec(n);
until n <= 1;

writeln('p=',p:5:10);
writeln('summa2=',summa2:5:5);

readln;
end.

Теперь ясно?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Клавиатурный тиран
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  -2  +


Человек просил вывести только последний результат, что я и обеспечил, за основной код я не брался, т.к. товарищ им удовлетворен, я ничего не имею против ;-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


ище мне надо так же найти cумму которая >E
но наверна ана почти всегда будет 0

Сообщение отредактировано: Andrej -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 11:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name