Разработать алгоритм и программу вычисления приближенного значения суммы x-1/x + (x-2)2/2x2 + (x-3)3/3x3 +… С заданной точностью Е (0,1>=E>=0.0001). Вычисления следует прекратить, когда очередной элемент ряда , включаемый в сумму не превышает точность Е. Точность Е и Х (Х-действительное число Х>0,5) уст. пользователем. Наложить верхнее ограничение на значение Х.
Кто знает напишите на Паскале или помогите чем можете
Это название было тоже не ахти информативным, я исправил, в следующий раз будь внимательней и прочти правила форума
я написал так, но работает не очень, подправте если знаете
Код
uses crt; var sum,x,e:real; i,j:integer; c: char; buf:array[1..2] of real; begin textcolor(red); repeat Begin {$I-} clrscr; repeat clrscr; settextbuf(input, buf); write('Vvedite chislo x ot 0.5 do 5.5 '); readln(x); until ((ioresult=0)and(x>0.5)and(x<5.5)); i:=1;sum:=0; Begin e:=(x-i)/x; for j:=1 to (i-1) do Begin e:=e*e; end; e:=e/i; sum:=sum+e; i:=i+1; end; writeln('sum= ', sum:3:3); write(#13#10); writeln('dlya vihoda najmite "N"'); writeln('dlya prodoljeniya lubaya klavisha'); c:=readkey; end; until (c=#110); end.
volvo
1.02.2006 15:01
Цитата
работает не очень
- это не определение... Что именно не работает?
P.S. Теги это не для тебя? Ты избранный?
volvo
1.02.2006 15:32
Подсказка: как ты думаешь, что будет вычислено в этой части программы, при I = 3 ?
e:=(x-i)/x; for j:=1 to (i-1) do Begin e:=e*e; end;
real888
1.02.2006 22:17
volvo ты любишь давать намеки, если ты знаешь как исправить напиши пожалуйста
klem4
1.02.2006 22:18
Он описался немного, не при i=3, а при i=1, у тебя получается цикл for j := 1 to 0 ...
volvo
1.02.2006 22:21
Я не люблю решать за кого-то задачу полностью !!! Подсказать, где кроется ошибка - это одно, а дать отлаженное готовое решение - СОВСЕМ другое.
klem4, давай не будем говорить от моего имени!
Внимательно смотрим на приведенный фрагмент и видим, что при I = 3 получается не E^3 (как задумывалось) а E^4... Дальше объяснять?
klem4
1.02.2006 22:25
Опс.. извиняюсь , тогда получается в этом месте тоже ошибка ....
i:=1; sum := 0; Begin e:=(x-i)/x; for j:=1 to (i-1) do
ps теги pascоde и b лагать вместе начали ;(
real888
2.02.2006 15:10
у меня еще вопрос. Как сделать чтобы точность Е тоже вводил пользователь
Ozzя
2.02.2006 17:57
Код
var e:real; ... WriteLn('Введите точность:'); ReadLn(e); ...
real888
3.02.2006 21:10
да это понятно, только что с этой точностью, что без нее результат одинаковый
klem4
3.02.2006 23:02
Ну так если ты ее вводишь, то вычислять - то ее уже не надо .. а вообще если ты все правильно сделал и результат одинаковый, то это хорошо ..)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.