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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.12.2010, 01:58
maladecman maladecman вне форума
Прохожий
 
Регистрация: 23.12.2010
Сообщения: 2
Репутация: 10
Восклицание Помогите с курсачем пожалуйста

Люди добрые написал программу для решения определенных интегралов..
нужно доделать чтобы она еще график функции построила...
просто проблема в том что функция вводится в поле edit...вот и не могу сделать так чтобы график строила..

вот код..заранее спс
================================================== ==========
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, UFunction, jpeg, ExtCtrls, TeeProcs, TeEngine, Chart,
  Series;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Edit4: TEdit;
    Edit5: TEdit;
    Button2: TButton;
    Button3: TButton;
    CheckBox1: TCheckBox;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Button5: TButton;
    Button4: TButton;
    Label8: TLabel;
    Label9: TLabel;
    Edit6: TEdit;
    Edit7: TEdit;
    Button6: TButton;
    Button7: TButton;
    Label10: TLabel;
    Edit8: TEdit;
    Button8: TButton;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit5Enter(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure Edit2Enter(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  OldFStroka: string;
  a, b: extended;//границы интегрирования
  nc: integer;//разбить на nc частей

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9', 'a'..'z', #8, #13, '-', '+', '*', '/', '^', ',', '.', '(', ')'])then key:=#0;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9', #8, '-', 'E', 'e', ',', '.']) then key:=#0;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9', #8, '-', 'E', 'e', ',', '.']) then key:=#0;
end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9', #8]) then key:=#0;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
LoadKeyboardLayout('00000419', KLF_ACTIVATE);//русский
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
LoadKeyboardLayout('00000409', KLF_ACTIVATE);//английский
end;

procedure TForm1.Edit5Enter(Sender: TObject);
begin
if Form1.CheckBox1.Checked = true then
LoadKeyboardLayout('00000409', KLF_ACTIVATE);//английский
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
if Form1.CheckBox1.Checked = true then
LoadKeyboardLayout('00000409', KLF_ACTIVATE);//английский
end;

procedure TForm1.Edit2Enter(Sender: TObject);
begin
if Form1.CheckBox1.Checked = true then
LoadKeyboardLayout('00000409', KLF_ACTIVATE);//английский
end;

procedure Pr;
begin
FStroka:=Form1.Edit5.Text;
if length(OldFStroka) = 0 then
begin
CreateSh;
OldFStroka:=FStroka;
end else
if OldFStroka <> FStroka then
begin
DeleteSh;
CreateSh;
OldFStroka:=FStroka;
end;
end;

function Log: boolean;
begin
if Form1.Edit5.Text <> '' then Log:=true else Log:=false;
if Form1.Edit1.Text <> '' then a:=strtofloat(Form1.Edit1.Text) else
Log:=false;
if Form1.Edit2.Text <> '' then b:=strtofloat(Form1.Edit2.Text) else
Log:=false;
if Form1.Edit4.Text <> '' then nc:=strtoint(Form1.Edit4.Text) else
Log:=false;
end;

function IntegralSimpson: extended;//формула Симпсона
var c0, c1, c2, c3, dx: extended;
    i: integer;
    k: real;
begin
c0:=(b-a)/(3*nc);
c1:=(F(a)+F(b))/2;
dx:=(b-a)/nc;
c2:=0; i:=0;
repeat
i:=i+1;
c2:=c2+F(a+dx*i);
until i = nc-1;
c3:=0; k:=-0.5;
repeat
k:=k+1;
c3:=c3+F(a+dx*k);
until k = nc-0.5;
IntegralSimpson:=c0*(c1+c2+2*c3);
end;

function IntegralPrmg: extended;//формула прямоугольников
var sum, dx: extended;
    k: real;
begin
dx:=(b-a)/nc;
sum:=0; k:=-0.5;
repeat
k:=k+1;
sum:=sum+F(a+dx*k);
until k = (2*nc-1)/2;
IntegralPrmg:=dx*sum;
end;

function IntegralTrap: extended;//формула трапеций
var dx, c0, c1: extended;
    i: integer;
begin
dx:=(b-a)/nc;
c0:=(F(a)+F(b))/2;
c1:=0; i:=0;
repeat
i:=i+1;
c1:=c1+F(a+dx*i);
until i = nc-1;
IntegralTrap:=dx*(c0+c1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Pr;
if Log then
Form1.Edit3.Text:=floattostr(IntegralSimpson);
Form1.Edit6.Text:=floattostr(IntegralPrmg);
Form1.Edit7.Text:=floattostr(IntegralTrap);
end;


procedure TForm1.Button5Click(Sender: TObject);  //процедура сохранения результата в файл
var F,F1,F2: TextFile;
S,S1,S2: String;
begin

AssignFile(F, 'Метод симпсона.txt');
Rewrite(F);
Writeln (F, 'Метод симпсона');
Write(F, 'Интеграл равен=');
S := Edit3.Text;
Write(F,S);
CloseFile(F);


AssignFile(F1, 'Метод прямоугольников.txt');
Rewrite(F1);
Writeln (F1, 'Метод прямоугольников');
Write(F1, 'Интеграл равен=');
S1 := Edit6.Text;
Write(F1,S1);
CloseFile(F1);

AssignFile(F2, 'Метод трапеций.txt');
Rewrite(F2);
Writeln (F2, 'Метод трапеций');
Write(F2, 'Интеграл равен=');
S2 := Edit7.Text;
Write(F2,S2);
CloseFile(F2);
   end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
Form3.Show;
end;



procedure TForm1.Button8Click(Sender: TObject);
begin
Form2.Show;
end;



end.

lmikle: пользукмся тегами!!!
Ответить с цитированием
  #2  
Старый 23.12.2010, 02:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Угу, а как ты тогда считаешь?
Расчет значения определенного интеграла численными методами предполагает, что ты можешь вычислить значение функции в нужных тебе точках. Соответсвенно, значения ты вычисляешь. Так в чем проблема построить график по этим точкам???
Ответить с цитированием
  #3  
Старый 23.12.2010, 03:18
maladecman maladecman вне форума
Прохожий
 
Регистрация: 23.12.2010
Сообщения: 2
Репутация: 10
Печаль

Да не получается ничего(
видимо после всего проделанного не соображаю уже..

помоги с кодом если можешь пожалуйста..
после завтра сдавать(
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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