![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Andrej |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
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 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
У тебя не совсем верно здесь:
repeat (тебе не нужно изменять знаменатель... То, что ты делаешь, аналогично: x-x^3/3+x^5/(3*5*3)-x^7/(7*5*3*5*3)+..., то есть знаменатель ДОМНОЖАЕТСЯ на i*(i-2), а тебе нужно: next := xn; ) |
Andrej |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасиба
![]() |
Andrej |
![]()
Сообщение
#4
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
что то не то если x=1 a e=0.2 то должна сумма быть 0 .... а у меня что-то считает
![]() |
Andrej |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
и еще с abs нелзя е=0
вечный цикл получается |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Ну вот расскажи мне, если у тебя X = 1, и s = X + ... то как может быть сумма равна 0 ???
Цитата с abs нелзя е=0 E = 0 вообще нельзя... Какой смысл ты в это вкладываешь? "С точностью до НУЛЯ"??? |
Andrej |
![]()
Сообщение
#7
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
да ты прав...понял
![]() а он считает только x+x^3/3 .... далше несчитает ![]() |
Andrej |
![]()
Сообщение
#8
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код 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 , хелп ![]() |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
А вот теперь ты мне расскажи, зачем тебе в программе нужен вот этот цикл:
for n:=1 to 3 do begin? Что, нельзя точность поменьше задать? Чего ты добиваешься этим циклом? Правильности результату он никак не прибавляет, в смысле, ты задал E = 0.2, и результат с данной точностью получился уже при n = 1... Все остальное - никому не нужные вычисления... Сначала приведи код в нормальный вид, потом напиши, ЧТО ИМЕННО ты хочешь вводить, и какой результат получить, а потом будем разговаривать... |
Andrej |
![]()
Сообщение
#10
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код for n:=1 to 3 do begin так хоть далше считает.... а то ответ такой же самий :/ мне же надо его вводить .... цикл считает отлично , но я им немогу руководит тока от и до ввести а мне надо например чтобы n=3 ; p:=x+x^3/3-^5/5 |
Andrej |
![]()
Сообщение
#11
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
ну кажись решил....посчитал на бумаге вроде всио оки
Код 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 - 16.11.2006 2:36 |
Sozialist |
![]()
Сообщение
#12
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Код 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 строки выше поднять, как у меня выше. |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Sozialist, ты что изменил-то в основном цикле программы??? Зачем просто так Copy/Paste-ить?
Объясните вы мне РУССКИМ языком, зачем КОМБИНИРОВАТЬ 2 цикла (For + Repeat), если можно обойтись одним Repeat-ом, только не Until abs(p)<E ... Особенно мне понравилось вот это: Цитата for n:=1 to n do begin ![]() Program first; Теперь ясно? |
Sozialist |
![]() ![]()
Сообщение
#14
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Человек просил вывести только последний результат, что я и обеспечил, за основной код я не брался, т.к. товарищ им удовлетворен, я ничего не имею против ;-)
|
Andrej |
![]()
Сообщение
#15
|
![]() Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
ище мне надо так же найти cумму которая >E
но наверна ана почти всегда будет 0 Сообщение отредактировано: Andrej - 16.11.2006 15:40 |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 9:57 |