Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2009, 00:45
inferno mf inferno mf вне форума
Прохожий
 
Регистрация: 13.09.2009
Сообщения: 19
Репутация: 10
По умолчанию Помогите найти ошибку

Вообщем не могу понять в чем ошибка... Условие задачи такое : Вывести на экран таблицу значений функции y(x) и ее разложения в ряд s(x) для x изменяющихся от xn до xk с заданным количеством шагов M ( ) и точностью e. Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x). Ниже прикреплю код программы и текстовый файл с функцией.

Код :

PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrls;

type
  TForm1 
= class(TForm)
    
Label1TLabel;
    
Edit1TEdit;
    
Label2TLabel;
    
Edit2TEdit;
    
Label3TLabel;
    
Edit3TEdit;
    
Label4TLabel;
    
Edit4TEdit;
    
Label5TLabel;
    
Memo1TMemo;
    
Button1TButton;
    
procedure FormCreate(SenderTObject);
    
procedure Button1Click(SenderTObject);

  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

  var
    
Form1TForm1;

  
implementation

{$R *.dfm}

  
procedure TForm1.FormCreate(SenderTObject);
   
begin
        Edit1
.text:='0,2';
        
Edit2.text:='1';
        
Edit3.text:='10';
        
Edit4.text:='0,001';
        
Memo1.Clear;
   
end;
  
procedure TForm1.Button1Click(SenderTObject);
   var 
xn,xk,x,h,e,a,s,y,M,extended;
       
n:integer;
 
begin
 Memo1
.Clear;
   
Memo1.Lines.Add('Результаты ');
   
xn:=StrToFloat(Edit1.Text);
   
Memo1.Lines.Add('xn='+FloatToStrF(xn,ffFixed,6,2));
   
xk:=StrToFloat(Edit2.Text);
   
Memo1.Lines.Add('xk='+FloatToStrF(xk,ffFixed,6,2));
   
M:=StrToFloat(Edit3.Text);
   
Memo1.Lines.Add('M='+FloatToStrF(M,ffFixed,8,3));
   
e:=StrToFloat(Edit4.Text);
   
Memo1.Lines.Add('e='+FloatToStrF(e,ffFixed,8,5));
   
x:=xn;
   
h:=(xk-xn)/M;
 
repeat
        a
:=1;
        
S:=1;
        
n:=0;
         
z:=2*sqr(n)+1;
 while 
abs(a*z)>do begin
        n
:=n+1;
        
a:=-a*sqr(x)/((2*n)*(2*n-1));
        
s:=s+a*z;
 
end;
        
y:=(1-(sqr(x)/2))*cos(x)-(x/2)*sin(x);
 
Memo1.Lines.Add('  при x='+FloatToStrF(x,ffFixed,6,2)+'   сумма='
                 
+FloatToStrF(s,ffFixed,8,4)+ '  y='
                 
+FloatToStrF(y,ffFixed,8,4)+'   N='+IntToStr(n));
         
x:=x+h

 until x
>(xk+h/2)
end;
end


Ошибка вероятно в строке :
PHP код:
a:=-a*sqr(x)/((2*n)*(2*n-1)); 

Помогите вывести верную формулу для определения члена этой суммы.
Вложения
Тип файла: rar Xn 0.rar (11.3 Кбайт, 6 просмотров)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025