Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 15.03.2018, 21:15   #1 (permalink)
APTEMKA
Новичок
 
Регистрация: 15.03.2018
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Разложение в ряд в Pascal

Здравствуйте,форумчане.Нужна помощь с этим,вторым, заданием.Как табулировать и строить таблицу я знаю,но не знаю,как начать. Учитель объяснял отдалённо,но я понял,что необязательно считать каждый член,достаточно лишь умножать предыдущий на какое-то число d[i],которое находится по формуле: d[i]:=N[i]/N[i-1].
Вот мои тщетные попытки,уже не соображаю,если честно.Заранее спасибо.
Program bulbul;
var N:array [0..100] of double;
d:array [0..100] of double;
i:integer;x:double;
Const e=0.001;
function f(x:double):double;
begin
i:=0;
while d[i]<=e do begin
N[0]:=x;
N[1]:=-exp(ln(x)*3)/6;
d[i]:=N[i]/N[i-1];
result:=d[i]*N[i-1];
end;
end;
Var y:double;
begin
while d[i]<=e do begin
y:=f(x);
end;
writeln(y);
end.
Миниатюры
aac-eiaie-1.jpg  
APTEMKA вне форума   Ответить с цитированием

Старый 15.03.2018, 21:15
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Наверняка в похожих топиках вы найдете много полезной для себя информации

Чтение данных из файла. Free Pascal - Free Pascal
LU-разложение
Pascal
Разложение музыки на составляющие
Разложение функции Y в ряд S

Старый 16.03.2018, 10:42   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,298
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Цитата:
Сообщение от APTEMKA Посмотреть сообщение
Вот мои тщетные попытки,уже не соображаю,если честно.Заранее спасибо.
Да пожалуйста — ничего сложного. Разбирайтесь, спрашивайте...
Код:
Program bulbul;

Const
 A=3.0;

Var
 i:integer;
 z,Step:double;

function Sum(x:double):double;
var
 S,B_old,B_new,Eps:double;
 N:Integer;
begin
 B_old:=x;
 S:=B_old;
 N:=0;
 Repeat
  Inc(N);
  B_new:=-B_old*x*x/(2*N*(2*N+1));
  S:=S+B_new;
  Eps:=Abs(B_old-B_new);
  B_old:=B_new;
 Until (1+Eps)=1;
 Sum:=S;
end;

Begin
 Step:=A/20;
 for i:=0 to 20 do
  begin
   z:=Step*i;
   Writeln(z:4:2,'    ',Sum(z),'    ',Sin(z));
  end;
 Readln;
End.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:38.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.