Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Графики - Метод Рунге-Кутта и Метод Адамса


Автор: Anchuta88 12.9.2010, 19:10
Пожалуйста помогите!!! очень срочно нужно сделать графики (два в одном): метод Рунге-Кутта и метод Адамса...очень нужно.... препод не хочет ставить зачет за то, что прога без графика  Завтра последний день((( иначе отчислят... у меня делфи слетел, уже переустанавливала не помогает, так что даже методом тыка не сделаю(((

Вот код программы:
Код

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  y0, x0, a, b, h: extended;
 
implementation
 
{$R *.dfm}
 
function fxy(x,y: extended): extended;
begin
 fxy:=-(2*x+ y)/(1+cos(y));
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 x,y : extended;
 k1,x1,y1,k2,y2,
   k3,y3,x2,k4,dy       :extended;
begin
y0 := StrToFloat(Edit1.Text);
 x0 := 0;
 a  := StrToFloat(Edit2.Text);
 b  := StrToFloat(Edit3.Text);
 h  := StrToFloat(Edit4.Text);
 memo1.Lines.Add('Метод Рунге-Кутта');
 x:=x0;
 y:=y0;
 memo1.Lines.Add('  x='+floattostr(x)+'; y='+floattostr(y));
 
 while x<=b do
  begin
   k1:=h*fxy(x,y);
   x1:=x+h/2;
   y1:=y+k1/2;
 
   k2:=h*fxy(x1,y1);
   y2:=y+k2/2;
 
   k3:=h*fxy(x1,y2);
   y3:=y+k3;
        x2:=x+h;
   k4:=h*fxy(x2,y3);
   dy:=(k1+2*k2+2*k3+k4)/6;
   y:=y+dy;
   x:=x+h;
   memo1.Lines.Add('  x='+floattostr(x)+'; y='+floattostr(y));
  end;
 
 memo1.Lines.Add('');
 memo1.Lines.Add('  Метод Адамса ');
 x:=x0;
 y:=y0;
 memo1.Lines.Add('  x='+floattostr(x)+'; y='+floattostr(y));
 
 while x<=b do
  begin
   x:=x+h;
   y:=y+h*fxy(x,y);
   memo1.Lines.Add('  x='+floattostr(x)+'; y='+floattostr(y));
  end;
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
 
end.


Автор: Данкинг 12.9.2010, 19:21
И что не получается-то в этом коде?

Автор: Anchuta88 12.9.2010, 19:29
Мне нужен график... а я не знаю как его описывать и куда... с программированием не оч(((
Так то код сам рабочий, просто преподу не понравилось, что без графика... smile 

Автор: Keeper89 13.9.2010, 00:04
Добавьте TChart и допишите по одной строке после каждого вывода в Memo.

Автор: bems 16.9.2010, 01:05
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)