Ищется решения для такой задачи : Вычислить сумму ряда: S=X+(x(в пятой степени)/5)+......(x(в степени4n+1)/4n+1) 0.1<=x<=0.8 n=30! шаг равен h=0.07
Clane
21.11.2002 23:48
Код
program rad; var x,a,y,s:real; n:integer; begin x:=0.1; n:=0.07; while x<=0.8 do begin n:=0; a:=x; s:=x; while n<30 do begin a:=(sqr(sqr(x))*a)/(4*n+5)); s:=s+a; n:=n+1; end; y:= 1/2*(ln((1+x)/(1-x))-1/4*(arctan(x)))); x:=x+h; writeln(x,s,y); end; end.
Вроде бы нигде не наврал !!! ЧИТАЕМ ПРАВИЛА! И не забываем включать код в соответствующие теги!
trminator
25.11.2002 23:20
Цитата
Ищется решения для такой задачи : Вычислить сумму ряда: S=X+(x(в пятой степени)/5)+......(x(в степени4n+1)/4n+1) 0.1<=x<=0.8 n=30! шаг равен h=0.07
После "n=30" воскл. знак - это просто воскл. знак или ФАКТОРИАЛ???
Clane
25.11.2002 23:27
Решение смотрите выше. Это не факториал, а просто опечатка...
Wert
21.10.2004 19:53
Плиз, очень срочно, нужно завтра: Вычислить сумму ряда методом интераций:
Нужно на делфе, но и на паскале думаю разберусь... Очень нужно, помогите плиз
Добавлено (21.10.04 14:55): Чуть не забыл. Погрешность e = 0,0001
Amro
21.10.2004 21:23
Цитата
Погрешность e = 0,0001
Что под ней подразумевается??? может не погрешность а точность??
Altair
21.10.2004 21:40
именно точность
Amro
21.10.2004 21:43
другими словами член ряда не должен быть меньше e=0,0001 так чтоль??? а X вводится с клавиатуры из промежутка ( a,b )??
Altair
21.10.2004 21:46
Нет, при вычислении шаг какого-либо действия должне быть не более e
Amro
21.10.2004 22:20
Вообще можно понимать по разному точность может быть достигнута когда An станет меньше "e" или есть ещё такой вариант когда pазница междy An и An-1 бyдет меньше чем "e". Oleg_Z думаю это ты и имел ввиду!!! На первом курсе я применял первый вариант, учительница посчитала это правильным!!! Думаю здесь условие не точное!!! Wert Для начала узнай что будут от тебя требовать в отношении "e", а потом мы еже помогём чем смогём!!
Wert
22.10.2004 0:27
под е подразумевается именно точность "другими словами член ряда не должен быть меньше e=0,0001 так чтоль??? а X вводится с клавиатуры из промежутка ( a,b )??" ДА Заранее спасибо
Wert
22.10.2004 0:34
У меня есть похожее приложение но для другого варианта, но в делфи, как собственно почти во всех других языках программирования я смыслю мало, поэтому даже переделать под свой вариант не могу Далее привожу текст того приложения (задание того варианта мне не известно...), приложение консольное:
Код
program Wert;
{$APPTYPE CONSOLE}
uses SysUtils;
var t,x,s:real; i,j:integer; const a=0.1; b=0.6; e=0.00001; begin writeln('vvedite x ot ',a:1:1,' do ',b:1:1); readln(x); i:=0; s:=1; t:=1; repeat i:=i+1; j:=i*i+1; t:=t*(x/2)/i; s:=s+t*j; until t<e; writeln('summa ryada =',s); writeln('posledny chlen ryada =',t); writeln('kolichestvo povtorov =',i); readln; end.
Понятно, что нужно поставить вместо е, а и b , но вот все остальное...
Код заключаем в теги!
Wert
22.10.2004 0:35
однако я не уверен в правильности этого кода...
Amro
22.10.2004 0:57
Цитата
однако я не уверен в правильности этого кода...
Код увроде правильный!!!
Цитата
но вот все остальное...
Что остальное?? Вот когда-то делал прогу
Код
uses crt; var An,S : real; n : integer; begin clrscr; n:=1; S:=0; repeat An:=exp(n*ln(1/2))+exp(n*ln(1/3)); S:=S+An; n:=n+1; until An <= 0.001; writeln('S=',S:7:3); readkey; end.
Вместо An делай своё выражение, плюс надо факториал найти, это не сложно ...... вот рекурсивная ф-ция
Код
function f(k:integer):longint; begin if k = 1 then f := 1 else f := k * f(k-1); end;
Остаётся собрать всё вместе!!!! Думаю догадаешься!!! Просто Oleg_Z нас учит не писать программу полностью а подсказывать, направлять в нужное русло!!!! Ибо писать полность это зло, если прога лёгкая!!! Wert Так шо думай!!!
Wert
22.10.2004 1:21
Большое спасибо!!! Но наверное я совсем тупой... Просто до этого по глупости я не изучал языков программирования. Я просто ума не приложу как написать в коде эту функцию... Ведь не напишешь же ее так: x + (x^3)/3! + ... + (x^(2n+1))/(2n+1)! И куда этот факториал вставлять?
Может так?
Код
program Wert;
{$APPTYPE CONSOLE}
uses crt; var An,S : real; n : integer; function f(k:integer):longint; begin if k = 1 then f := 1 else f := k * f(k-1); end;
begin clrscr; n:=1; S:=0; repeat An:=x + (x*x*x)/3f; S:=S+An; n:=n+1; until An <= 0.001; writeln('S=',S:7:3); readkey; end.
Блин, наверное я совсем тупой, не работает...
zx1024
22.10.2004 1:40
Код
A := x; s := x; n := 2; {это ед. целое число, остальные real} repeat A := A * x*x / n / (n+1) n := n + 2; s := s + A; until A > e
volvo
22.10.2004 1:42
Так не пробовал ? :D
program wert;
const eps = 0.0001; a = 0.0; b = 1.0;
var x, s, item: real; count: integer;
begin writeln('input x [',a:1:1,', ',b:1:1, ']'); readln(x);
count := 0;
item := x; s := item; repeat inc(count); item := (item * sqr(x)) / ((2*count)*(2*count+1)); s := s + item; until item < eps;
Блин. Помогите идиоту Вольво, этот код для консольного приложения? Я вставляю в консольное а оно выдает: Runtime Error 105 Пожалуйста, напишите уже готовый вариант, если не сложно конечно, а то для меня это как древнегреческий... :((((((((((((((((((((((((((((((((((((((((((((((
Wert
22.10.2004 2:39
А если переделать так, то при введении х и нажатия Ентер вылетает:
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils; const eps = 0.0001; a = 0.0; b = 1.0;
var x, s, item: real; count: integer;
begin writeln('input x [',a:1:1,', ',b:1:1, ']'); readln(x);
count := 0;
item := x; s := item; repeat inc(count); item := (item * sqr(x)) / ((2*count)*(2*count+1)); s := s + item; until item < eps;
Она не вылетает. Она заканчивает свою работу и закрывает окно. Поставь в конце readln
Wert
22.10.2004 3:04
Поставил, а он выделил как ошибку... Где именно поставить, и что именно поставить? "readln;" прямо перед "end." ???
Wert
22.10.2004 3:06
АААААААААААААААААААААААААААААА!!!!!! С П А С И Б О ! ! ! В С Е Р А Б О Т А Е Т ! ! ! ОГРОМНОЕ СПАСИБО ВСЕМ ЗА ПОМОЩЬ И ПОДДЕРЖКУ!!!!!!!!!!!!!!!!
Wert
22.10.2004 3:15
Чувствую, что нагло испытываю ваше терпение, посему на этот пост можете не отвечать... Нам задавали 2 проги... Вторую надо сделать в оконном варианте... Вот задание для нее:
Решить методом Ньютона (В качестве первого приближения взять значение примерно на 50% отличающееся от приближенного значения корня) и секущих: x*tg x - 1/3 = 0 x ~=~ 0,5472 Вобщем это наверное уже наглость, так что можете меня послать... Но если найдется время помогите плиз...
Amro
22.10.2004 3:37
zx1024volvo Зацените!!!! А что если так сделать!!!
program wert;
const eps = 0.0001; a = 0.0; b = 1.0;
var x, s, An : real; fac,n: integer;
function f(k:integer):longint; begin if k = 1 then f := 1 else f := k * f(k-1); end;
begin writeln('input x [',a:1:1,', ',b:1:1, ']'); readln(x); n:=1; s := 0; repeat fac:=(2*n+1); An := exp((2*n+1)*ln(x))/f(fac); s := s + An; inc(n); until An < eps;
writeln( 's = ', s:12:7 ); end.
volvo
22.10.2004 3:54
Amro
repeat fac:=(2*n+1); An := exp((2*n+1)*ln(x))/f(fac); s := s + An; inc(n); until An < eps;
делаешь лишнее действие. Тогда уже так:
repeat fac:=(2*n+1); An := exp((fac)*ln(x))/f(fac); s := s + An; inc(n); until An < eps;
:P
Amro
22.10.2004 3:55
volvo Да верно подмечено!!! А сам вариант как???
volvo
22.10.2004 4:02
Amro
Вообще красиво смотрится. Но рекурсия... А если число итераций увеличится?
Amro
22.10.2004 4:06
Цитата
А если число итераций увеличится?
Согласен, тагды работать не будет!!! Значит через процедуру сделаем Ладно пойду спать!!! Пока ....
volvo
22.10.2004 4:08
Amro
s := 0;
надо заменить на
s := x;
Amro
22.10.2004 16:52
Цитата
Код s := 0; надо заменить на Код s := x;
Можно и заменить, у него просто ряд интересный!!! А можно заменить и так: вместо
n:=1;
так
n:=0;
Wert
22.10.2004 22:42
Подскажите плиз! Как в Делфи обозначается тангенс??? Пишу cos - понимает, что это такое, пишу tg, tan или tang - выделяет как ошибку! Подскажите, срочно надо...
Altair
22.10.2004 22:46
а слабо написать sin\cos ?
Wert
22.10.2004 22:49
Блин, и се я сам не догадался! СПАСИБО!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.