Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 15:51   #1
sashaslam
Пользователь
 
Регистрация: 07.07.2008
Сообщений: 24
По умолчанию Использование значения Edit в функции.

есть функция в програмном модуле

function Tform1.F(x:real):real;
Begin
F:= sin (x) ;


End;

дальше в программе f используется при построении графика. как сделать чтоб само тело функции можна было изменять, например через edit.... и значение с едита присваивалось F...
F := StrToFloat (Edit1.text) - так не верно..
sashaslam вне форума Ответить с цитированием
Старый 20.04.2010, 15:59   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

так и вызывайте
Код:
form1.F(StrToFloat(Edit1.Text));
SERG1980 вне форума Ответить с цитированием
Старый 20.04.2010, 15:59   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Код:
var
  a: integer;
begin
  a := F(StrToFloat(Edit1.Text));
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 20.04.2010, 16:24   #4
sashaslam
Пользователь
 
Регистрация: 07.07.2008
Сообщений: 24
По умолчанию

код :
Код:
private
{ Private declarations }
public
function F(x:real):real;
Procedure Extrem1(Xmax,Xmin:real; Var Ymin:real);
Procedure Extrem2(Xmax,Xmin:real; Var Ymax:real);
{ Public declarations }
end;

var
Form1: TForm1;

implementation
Const e=1e-4;//точность одна тысячная
var Xmax,Xmin,Ymax,Ymin:real;
ST : string;
{$R *.DFM}
function Tform1.F(x:real):real;
Begin
F:= sin (x) ;
End;


//поиск минимума функции
Procedure TForm1.Extrem1(Xmax,Xmin:real; Var Ymin:real);
Var x,h:real; j,n:integer;
Begin


n:=10;
Repeat
x:=Xmin;
n:=n*2;
h:=(Xmax-Xmin)/n;
Ymin:=F(Xmin);
For j:=1 to n do begin
if f(x)<Ymin then Ymin:=f(x);
x:=x+h;
end;
Until abs(f(Ymin)-f(Ymin+h))<e;
End;

//поиск максимума функции
Procedure TForm1.Extrem2(Xmax,Xmin:real; Var Ymax:real);
Var x,h:real; j,n:integer;
Begin


n:=10;
Repeat
x:=Xmin;
n:=n*2;
h:=(Xmax-Xmin)/n;
Ymax:=F(Xmin);
For j:=1 to n do begin
if f(x)>=Ymax then Ymax:=f(x);
x:=x+h;
end;
Until abs(f(Ymax)-f(Ymax+h))<e;
End;


procedure TForm1.Button1Click(Sender: TObject);
var x,y:real;
PX,PY:longInt;
begin


//здесь необходимо указать диапазон изменения x
//Xmax:=8*pi;
//Xmin:=0;
  Xmax:= strToFloat (edit3.Text);
  Xmin := strTofloat (edit2.Text);


//вычисляем экстремумы функции
Extrem1(Xmax,Xmin,Ymin);
Extrem2(Xmax,Xmin,Ymax);
edit4.Text := floatToStr (Ymin);
edit5.Text := floatToStr (Ymax);

//рисуем график функции
Image1.Canvas.MoveTo(0,Image1.height div 2);
for PX:=0 to Image1.Width do
begin
x:=Xmin+PX*(Xmax-Xmin)/Image1.Width;
y:=F(x);
PY:=trunc(Image1.Height-(y-Ymin)*Image1.height/(Ymax-Ymin));
image1.Canvas.Pixels[PX,PY]:=clBlack;
Image1.Canvas.LineTo(PX,PY);
end;
end;
end.
так как указано више не работает

нужно вводить функцию через эдит

From Stilet: Код попрошу оформлять кнопкой #

Последний раз редактировалось Stilet; 20.04.2010 в 16:53.
sashaslam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование функции ExitWindowsEx. Yurazav Свободное общение 11 07.06.2010 21:28
Сравнение значения Edit с числом ? kta87 Общие вопросы Delphi 5 06.03.2010 22:03
случайные значения, использование функции rand() Matr1x Общие вопросы C/C++ 3 10.02.2010 11:02
При помощи чего можно разбить значения в Edit IgoROCK Помощь студентам 5 22.12.2008 21:50
значения в полях Edit Control [C++] gooffy Помощь студентам 1 17.05.2008 17:57