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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.05.2015, 19:37
Macreeedy Macreeedy вне форума
Прохожий
 
Регистрация: 01.05.2015
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Необходимо подредактировать код программы

Значит вот какое дело.
У меня имеется код программы которая строит графики, а конкретно для функции y=1-ax^2+x^4 a=3
Мне необходимо, чтобы она строила по графику функции y=x^(2)*e^(-x)+sqrt(3) а и b не дано.
(y=икс в квадрате умножить на e в степени минус икс, плюс корень квадратный из 3)

буду очень признателен за вашу помощь, т.к сам я в этом деле не очень

Значит вот какое дело.
У меня имеется код программы которая строит графики, а конкретно для функции y=1-ax^2+x^4 a=3
Мне необходимо, чтобы она строила по графику функции y=x^(2)*e^(-x)+sqrt(3) а и b не дано.
(y=икс в квадрате умножить на e в степени минус икс, плюс корень квадратный из 3)

буду очень признателен за вашу помощь, т.к сам я в этом деле не очень

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids;
 
type
  TForm1 = class(TForm)
    Edit_Xn: TEdit;
    Edit_Xk: TEdit;
    Edit_n: TEdit;
    Memo1: TMemo;
    StringGrid1: TStringGrid;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label5: TLabel;
    Label6: TLabel;
    Button4: TButton;
    Edit_a: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 var
 Form1: TForm1;
 n:integer;
 Xn,Xk,a:extended;
 X,Y:array[1..100] of extended;// объявлена переменная типа массива с плавающей точкой
 Xr,Yr:array[1..100] of integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
dx:extended;
S:string;
 
  begin
 n:=strtoint(edit_n.Text);
 Xn:=strtofloat(edit_Xn.Text);
 Xk:=strtofloat(edit_Xk.Text);
 a:=strtofloat(edit_a.Text);
 dx:=(Xk-Xn)/(n-1);//расчет шага
 for i:=1 to n do
    begin
    X[i]:=Xn+(i-1)*dx;//расчет точек по абсциссе.
    Y[i]:=(1-a)*sqr(x[i])+sqr(sqr(x[i]));//расчет точек по ординате
    stringgrid1.Cells[1,i]:=floattostrf(x[i],fffixed,8,2);//вывод значений X
    stringgrid1.Cells[2,i]:=floattostrf(y[i],fffixed,8,2);//вывод значений Y
 
end;
s:='       ';
 
memo1.Lines.Add(s);
s:='|   N   |    X   |   Y   |';
Memo1.Lines.Add(s);
for i:=1 to n do
begin
s:='';
s:='|'+inttostr(i)+' | '+floattostrf(x[i],fffixed,8,2)+' | '+floattostrf(y[i], fffixed,8,2);
memo1.Lines.Add(s);//Вывод значений в memo
end;
end;
 
 
 
procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
 
 
begin
image1.Canvas.FillRect(clientrect);//очистка image
for i:=1 to n do
Begin
Stringgrid1.cells[1,i]:='  ';// очистка ряда с X
Stringgrid1.cells[2,i]:='  ';// очистка ряда с Y
end;
 
Memo1.Clear;//очистка memo
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;//закрытие программы
end;
 
 
procedure TForm1.Button4Click(Sender: TObject);
var
i,v,c,x0,y0:integer;
minX,maxX,minY,maxY:extended;
begin
 minX:=x[1];maxX:=x[1];
 minY:=y[1];maxY:=y[1];
 for i:=2 to n do
   begin
   if x[i]<minX then minX:=x[i];//поиск минимального X
   if x[i]>maxX then maxX:=x[i];//поиск максимального X
   if y[i]<minY then minY:=y[i];//поиск минимального Y
   if x[i]>maxY then maxY:=y[i];//поиск максимального X
end;
 
 
v:=2;//начальная высота
c:=5;
     With image1,Canvas do
     Begin
     pen.Color:=clRed;x0:=150; y0:=150;//задание цвета карандаша
     x0:=150;y0:=150;
     MoveTo(x0,0); LineTo(x0,0+height);
     MoveTo(0,y0); LineTo(0+Width,y0);
 
 
     Font.Size:=14;
     TextOut(0+Width,y0,'X');
     TextOut(x0,0+height,'Y');//задание осей координат
 
     For i:=1 to n do
     begin
     xr[i]:=c+Round((x[i]-minX)/(maxX-minX)*(Width-2*c));
     yr[i]:=Height-c-Round((y[i]-minY)/(maxY-minY)*(Width-2*c));
     MoveTo(xr[1],yr[1]);//перемещение из начальной позиции в заданную конечную
     end;
     for i:=1 to n do LineTo(xr[i],yr[i]);
     for i:=1 to n do
     Rectangle(xr[i]-v,yr[i]-v,xr[i]+v,yr[i]+v);//прямоугольник вместо точек
     end;
     end;
 
 
 
     procedure TForm1.FormCreate(Sender: TObject);
     var
     i:integer;
 
     begin
         n:=50;
         Xn:=3;
         Xk:=10;
         Stringgrid1.RowCount:=n+1 ;
         Stringgrid1.cells[0,0]:='№';
         Stringgrid1.cells[1,0]:='X';
         stringgrid1.cells[2,0]:='Y';
         for i:=1 to n do
         Stringgrid1.cells[0,i]:=''+inttostr(i);
         with image1.canvas do
         begin
         pen.Color:=clred;
         Brush.Color:=clwhite;
         fillrect(clientrect);
end;
end;
end.
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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