26.01.2010, 09:50 | #11 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
26.01.2010, 09:50 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если решение проблемы затянулось - можете прочитать данные темы Вычислить методом тарапеции в VBA Вычислить сумму |
30.01.2010, 01:37 | #12 (permalink) |
Member
Регистрация: 24.01.2010
Сообщений: 43
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 26
|
Уважаемый Владимир. У меня к вам еще один вопрос, уже не совсем по паскалю, а связанный непосредственно с математикой. Прошу прощения за большой пост, но не знаю как иначе объяснить.
Проблема, в том, что оператор вычисления, нужно вывести из рекуррентной формулы. Приведу пример, который был дан как образец к заданию: Ссылка удалена вот ниже выкладываю, что вышло у меня после разложения в ряд (сверху само задание, что в самом первом сообщении...): Ссылка удалена Ссылка удалена И полученная рекуррентная формула, отличается от нашего оператора a:=-a*SQR(2*Xs)/(2*n-1)/(2*n); Не могли, бы вы описать, как получился наш оператор и почему моя формула неверна ? Спасибо большущее сразу Последний раз редактировалось Fenix; 11.06.2013 в 13:02 Причина: Ссылка мертва |
30.01.2010, 09:04 | #13 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
В знаменателе исходного выражения стоит величина (2n)! . Нарисуем, для наглядности, таблицу: Код:
n (2n)! 1 2*1 2 4*3*2*1 3 6*5*4*3*2*1 4 8*7*6*5*4*3*2*1 |
|
09.02.2010, 20:45 | #14 (permalink) |
Member
Регистрация: 24.01.2010
Сообщений: 43
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 26
|
Владимир, спасибо ) Вы мне очень помогли )
И еще если позволите, два, на сей раз последних, вопроса: 1.Что делает эта строка ? Код:
Until Abs(a)<1E-7; 2.Чтобы в третьем столбце выводился порядковый номер элемента в ряде, надо менять всю структуры программы ? Как я понимаю, функция может только одно какое-то значение возвращать, и n из нее нельзя показать ? |
09.02.2010, 21:26 | #15 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
2. Не очень понятен вопрос. В вычислении функции для каждого значения аргумента участвуют формально ВСЕ члены ряда со ВСЕМИ номерами, от 1 до бесконечности. В данном случае бесконечность заменена на некое максимальное значение n, которое получается при "срабатывании" условия, описанного в п.1. Вас интересует его вывести? Если да, то, действительно, придется несколько изменить программу, в частности, заменить функцию процедурой. Как-то так: Код:
VAR X,SUM:REAL; i,Nmax:INTEGER; Procedure SUM_CALC(Xs:REAL; var S:REAL; var n:INTEGER); VAR a:REAL; Begin a:=-SQR(2*Xs)/2; S:=1+0.5*a; n:=1; Repeat Inc(n); a:=-a*SQR(2*Xs)/(2*n-1)/(2*n); S:=S+0.5*a; Until Abs(a)<1E-7; End; BEGIN For i:=0 TO 45 DO Begin X:=Pi*i/90; SUM_CALC(x, SUM, Nmax); WriteLn(i:2,'*Pi/90', SUM:10:5, SQR(Cos(X)):10:5, Nmax:5); End; ReadLn; END. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|