05.03.2012, 11:38 | #1 (permalink) |
Новичок
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вычисление суммы функционального ряда
|
05.03.2012, 11:38 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Вот топики, которые должны вам во многом помочь Нахождение конечной суммы ряда Помогите пожалуйста! C# вычисление интеграла двумя любыми способами Составить формулу для ряда Вычисление замечательных пределов Вычисление интеграла. Паскаль Вычисление значения выражения. Язык С |
05.03.2012, 17:15 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да я, пожалуй, управлюсь. Тут есть некая хитрость, связанная с обходом нулевых членов членов ряда, отсюда такое условие выхода из цикла Repeat-Until.
Код:
Const Eps=0.00001; Xbeg=0.1; Xfin=0.8; DX=0.05; VAR N,i,k:Word; S,X,a,b:Real; Function F(z:real):real; begin F:=z*Sin(Pi/4)/(1-z*2*Cos(Pi/4)+z*z); end; BEGIN N:=Round((Xfin-Xbeg)/DX); WriteLn(' X Result Number of items Accurate value'); For i:=0 to N do begin X:=Xbeg+DX*i; a:=1; b:=Sin(Pi/4); S:=0; k:=0; Repeat Inc(k); a:=a*X; b:=Sin(Pi*k/4); S:=S+a*b; Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps); WriteLn(X:6:3,S:12:6,k:12,F(X):24:6); end; Readln; END. |
05.03.2012, 20:10 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Правильно пишет - уже сам по дороге с работы домой сообразил, что так некорректно. Хотя мой Free Pascal (умный больно!) сожрал и не поперхнулся. Я внес необходимые исправления в листинг - так должно работать.
|
05.03.2012, 20:56 | #5 (permalink) |
Новичок
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Until (Round(a*b*1000000)<>0) and (Abs(a*b)<Eps); - теперь этой строкой не доволен TP. Invalid floating point operation -Недопустимая операция с плавающей запятой)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
06.03.2012, 09:53 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Постарайтесь дать максимальную информацию об ошибке. |
|
06.03.2012, 10:43 | #7 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Подтверждаю, нормально компилируется и запускается, проверял на TP7, FreePascal, PascalABC.
Вот результаты отработки PascalABC: Код:
X Result Number of items Accurate value 0.100 0.081411 5 0.081410 0.150 0.130886 7 0.130886 0.200 0.186779 7 0.186779 0.250 0.249350 9 0.249351 0.300 0.318642 10 0.318643 0.350 0.394388 11 0.394386 0.400 0.475917 13 0.475914 0.450 0.562083 15 0.562084 0.500 0.651235 17 0.651239 0.550 0.741231 19 0.741227 0.600 0.829492 23 0.829496 0.650 0.913287 27 0.913282 0.700 0.989844 33 0.989850 0.750 1.056761 39 1.056772 0.800 1.112187 51 1.112177 |
10.03.2012, 21:01 | #10 (permalink) |
Новичок
Регистрация: 05.03.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое!!! Вот подскажите, как надо соображать, чтоб такую прогу написать и с чего начинать?))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|