Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите нарисовать график, Как нарисовать? 
:(
    Опции темы
dx4r
Дата 24.3.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 24.3.2008

Репутация: нет
Всего: нет



user posted image
Нужно штоб рисовало график при нажатии на кнопку "Обчислити" начиная с точки (0,0), следующие точки с таблицы
Вот код программы:
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    StringGrid3: TStringGrid;
    Button1: TButton;
    PaintBox1: TPaintBox;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure StringGrid2KeyPress(Sender: TObject; var Key: Char);
    procedure PaintBox1Paint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:= 'K0';
StringGrid1.Cells[1,0]:= 'Kp';
StringGrid1.Cells[2,0]:= 'Ti';
StringGrid1.Cells[3,0]:= 'T1';
StringGrid1.Cells[4,0]:= 'T2';
StringGrid2.Cells[0,0]:= 'W';
StringGrid3.Cells[0,0]:= 'ReW(jw)';
StringGrid3.Cells[0,1]:= 'ImW(jw)';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a:array[0..5] of real; p13:array[1..14] of real;p14:array[1..15] of real;
b:array[1..15] of real;p12:array[1..13] of real;w:array[1..15] of real;
c:array[1..15] of real;p11:array[1..12] of real;h:array[1..15] of real;
p1:array[1..2] of real;p10:array[1..11] of real;pol:array[1..16] of real;
p2:array[1..3] of real;p9:array[1..10] of real;
p3:array[1..4] of real;p8:array[1..9] of real;
p4:array[1..5] of real;p7:array[1..8] of real;
p5:array[1..6] of real;p6:array[1..7] of real;
i,j,z,n,k,r,p: integer;
Re: real;
Im,X,Y: real;
changed: boolean;
buf: real;
summ: real;
begin
for i:=1 to 15 do
begin
StringGrid3.Cells[i,0]:= '';
StringGrid3.Cells[i,1]:= '';
end;
for i:=1 to 5 do
if Length(StringGrid1.Cells[i-1,1]) <> 0
then a[i]:= StrToFloat(StringGrid1.Cells[i-1,1])
else a[i]:=0;

for i:=1 to 5 do
if a[i] = 0
then
begin
ShowMessage('Введіть ваші дані');
end;
for j:=1 to 15 do
if Length(StringGrid2.Cells[j,0]) <> 0
then b[j]:=StrToFloat(StringGrid2.Cells[j,0])
else b[j]:=-100;


summ:=0;
for j:=1 to 15 do
if (b[j] = -100)
then summ:=summ+b[j];




if (summ = -1500) or (summ = -1400)  then
ShowMessage('Введіть мінімум два значення, W');
//якщо ввели тіки 2 значення
if summ = -1300 then
begin
p1[1] := b[1];
p1[2] := b[2];
p:=2;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p1[k] > p1[k+1] then
begin
buf := p1[k];
p1[k] := p1[k+1];
p1[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p-1 do
StringGrid2.Cells[j,0]:=FloatToStr(p1[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p1[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p1[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p1[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p1[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p1[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p1[j]*a[3]*(SQR(p1[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p1[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p1[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p1[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p1[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 3 значення
if summ = -1200 then
begin
p2[1] := b[1];
p2[2] := b[2];
p2[3] := b[3];
p:=3;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p2[k] > p2[k+1] then
begin
buf := p2[k];
p2[k] := p2[k+1];
p2[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p2[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p2[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p2[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p2[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p2[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p2[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p2[j]*a[3]*(SQR(p2[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p2[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p2[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p2[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p2[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 3 значення
if summ = -1200 then
begin
p2[1] := b[1];
p2[2] := b[2];
p2[3] := b[3];
p:=3;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p2[k] > p2[k+1] then
begin
buf := p2[k];
p2[k] := p2[k+1];
p2[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p2[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p2[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p2[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p2[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p2[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p2[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p2[j]*a[3]*(SQR(p2[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p2[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p2[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p2[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p2[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 4 значення
if summ = -1100 then
begin
p3[1] := b[1];
p3[2] := b[2];
p3[3] := b[3];
p3[4] := b[4];
p:=4;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p3[k] > p3[k+1] then
begin
buf := p3[k];
p3[k] := p3[k+1];
p3[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p3[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p3[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p3[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p3[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p3[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p3[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p3[j]*a[3]*(SQR(p3[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p3[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p3[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p3[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p3[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 5 значення
if summ = -1000 then
begin
p4[1] := b[1];
p4[2] := b[2];
p4[3] := b[3];
p4[4] := b[4];
p4[5] := b[5];
p:=5;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p4[k] > p4[k+1] then
begin
buf := p4[k];
p4[k] := p4[k+1];
p4[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p4[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p4[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p4[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p4[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p4[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p4[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p4[j]*a[3]*(SQR(p4[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p4[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p4[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p4[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p4[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 6 значення
if summ = -900 then
begin
p5[1] := b[1];
p5[2] := b[2];
p5[3] := b[3];
p5[4] := b[4];
p5[5] := b[5];
p5[6] := b[6];
p:=6;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p5[k] > p5[k+1] then
begin
buf := p5[k];
p5[k] := p5[k+1];
p5[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p5[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p5[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p5[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p5[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p5[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p5[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p5[j]*a[3]*(SQR(p5[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p5[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p5[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p5[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p5[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 7 значення
if summ = -800 then
begin
p6[1] := b[1];
p6[2] := b[2];
p6[3] := b[3];
p6[4] := b[4];
p6[5] := b[5];
p6[6] := b[6];
p6[7] := b[7];
p:=7;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p6[k] > p6[k+1] then
begin
buf := p6[k];
p6[k] := p6[k+1];
p6[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p6[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p6[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p6[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p6[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p6[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p6[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p6[j]*a[3]*(SQR(p6[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p6[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p6[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p6[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p6[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 8 значення
if summ = -700 then
begin
p7[1] := b[1];
p7[2] := b[2];
p7[3] := b[3];
p7[4] := b[4];
p7[5] := b[5];
p7[6] := b[6];
p7[7] := b[7];
p7[8] := b[8];
p:=8;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p7[k] > p7[k+1] then
begin
buf := p7[k];
p7[k] := p7[k+1];
p7[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p7[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p7[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p7[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p7[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p7[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p7[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p7[j]*a[3]*(SQR(p7[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p7[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p7[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p7[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p7[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 9 значення
if summ = -600 then
begin
p8[1] := b[1];
p8[2] := b[2];
p8[3] := b[3];
p8[4] := b[4];
p8[5] := b[5];
p8[6] := b[6];
p8[7] := b[7];
p8[8] := b[8];
p8[9] := b[9];
p:=9;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p8[k] > p8[k+1] then
begin
buf := p8[k];
p8[k] := p8[k+1];
p8[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p8[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p8[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p8[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p8[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p8[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p8[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p8[j]*a[3]*(SQR(p8[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p8[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p8[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p8[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p8[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 10 значення
if summ = -500 then
begin
p9[1] := b[1];
p9[2] := b[2];
p9[3] := b[3];
p9[4] := b[4];
p9[5] := b[5];
p9[6] := b[6];
p9[7] := b[7];
p9[8] := b[8];
p9[9] := b[9];
p9[10] := b[10];
p:=10;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p9[k] > p9[k+1] then
begin
buf := p9[k];
p9[k] := p9[k+1];
p9[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p9[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p9[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p9[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p9[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p9[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p9[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p9[j]*a[3]*(SQR(p9[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p9[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p9[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p9[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p9[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 11 значення
if summ = -400 then
begin
p10[1] := b[1];
p10[2] := b[2];
p10[3] := b[3];
p10[4] := b[4];
p10[5] := b[5];
p10[6] := b[6];
p10[7] := b[7];
p10[8] := b[8];
p10[9] := b[9];
p10[10] := b[10];
p10[11] := b[11];
p:=11;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p10[k] > p10[k+1] then
begin
buf := p10[k];
p10[k] := p10[k+1];
p10[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p10[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p10[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p10[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p10[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p10[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p10[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p10[j]*a[3]*(SQR(p10[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p10[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p10[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p10[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p10[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 12 значення
if summ = -300 then
begin
p11[1] := b[1];
p11[2] := b[2];
p11[3] := b[3];
p11[4] := b[4];
p11[5] := b[5];
p11[6] := b[6];
p11[7] := b[7];
p11[8] := b[8];
p11[9] := b[9];
p11[10] := b[10];
p11[11] := b[11];
p11[12] := b[12];
p:=12;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p11[k] > p11[k+1] then
begin
buf := p11[k];
p11[k] := p11[k+1];
p11[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p11[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p11[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p11[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p11[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p11[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p11[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p11[j]*a[3]*(SQR(p11[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p11[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p11[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p11[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p11[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 13 значення
if summ = -200 then
begin
p12[1] := b[1];
p12[2] := b[2];
p12[3] := b[3];
p12[4] := b[4];
p12[5] := b[5];
p12[6] := b[6];
p12[7] := b[7];
p12[8] := b[8];
p12[9] := b[9];
p12[10] := b[10];
p12[11] := b[11];
p12[12] := b[12];
p12[13] := b[13];
p:=13;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p12[k] > p12[k+1] then
begin
buf := p12[k];
p12[k] := p12[k+1];
p12[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p12[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p12[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p12[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p12[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p12[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p12[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p12[j]*a[3]*(SQR(p12[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p12[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p12[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p12[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p12[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 14 значення
if summ = -100 then
begin
p13[1] := b[1];
p13[2] := b[2];
p13[3] := b[3];
p13[4] := b[4];
p13[5] := b[5];
p13[6] := b[6];
p13[7] := b[7];
p13[8] := b[8];
p13[9] := b[9];
p13[10] := b[10];
p13[11] := b[11];
p13[12] := b[12];
p13[13] := b[13];
p13[14] := b[14];
p:=14;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p13[k] > p13[k+1] then
begin
buf := p13[k];
p13[k] := p13[k+1];
p13[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p13[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p13[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p13[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p13[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p13[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p13[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p13[j]*a[3]*(SQR(p13[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p13[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p13[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p13[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p13[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;

//якщо ввели тіки 15 значення
if summ = 0 then
begin
p14[1] := b[1];
p14[2] := b[2];
p14[3] := b[3];
p14[4] := b[4];
p14[5] := b[5];
p14[6] := b[6];
p14[7] := b[7];
p14[8] := b[8];
p14[9] := b[9];
p14[10] := b[10];
p14[11] := b[11];
p14[12] := b[12];
p14[13] := b[13];
p14[14] := b[14];
p14[15] := b[15];
p:=15;
repeat
changed := FALSE;
for k:=1 to p-1 do
if p14[k] > p14[k+1] then
begin
buf := p14[k];
p14[k] := p14[k+1];
p14[k+1] := buf;
changed := TRUE;
end;
for j:=1 to p do
StringGrid2.Cells[j,0]:=FloatToStr(p14[j]);
until not changed;

n:=1;  j:=1;
while n<p+1 do
begin
if p14[j] = 0
then
begin
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p14[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p14[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p14[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
StringGrid3.Cells[j,1]:='100000';
end
else
begin
Im:=(a[1]*(p14[j]*(a[2]*a[3]*(a[4]+a[5])-a[4]*a[5])+1))/
    (p14[j]*a[3]*(SQR(p14[j])*(SQR(a[4]+a[5])+a[4]*a[5]*
    (a[4]*a[5]*SQR(p14[j])+2))+1));
StringGrid3.Cells[j,1]:=FloatToStr(Im);
Re:=(a[1]*(a[2]*a[3]*(a[4]*a[5]*SQR(p14[j])-1)+a[4]+a[5]))/
    (a[3]*(SQR(p14[j])*(SQR(a[4]+a[5])+a[4]*a[5]*(a[4]*a[5]*
    SQR(p14[j])+2))+1))*(-1);
StringGrid3.Cells[j,0]:=FloatToStr(Re);
end;
j:=j+1;
n:=n+1;
end;
end;
//*****************************************************************************

end;

procedure TForm1.StringGrid2KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
#8,'0'..'9': ;
#13:
if StringGrid2.Col < StringGrid2.ColCount - 1
then StringGrid2.Col := StringGrid2.Col + 1;
'.',',':
begin
if Key <> DecimalSeparator then
Key := DecimalSeparator;
if Pos(StringGrid2.Cells[StringGrid2.Col,0],DecimalSeparator) <> 0
then Key := Chr(0);
end;
'-':
if Length(StringGrid2.Cells[StringGrid2.Col,0]) <> 0
then Key := Chr(0);
else Key := Chr(0);
end;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);

begin
with PaintBox1.Canvas do
begin
Pen.Width:=2;
MoveTo(0,150);
LineTo(750,150);
MoveTo(375,0);
LineTo(375,300);
Font.Name := 'Arial';
Font.Size := 10;
Brush.Style := bsClear;
TextOut(363,152, '0');
Font.Size := 9;
TextOut(383,5, 'ImW(jw)');
TextOut(700,155, 'ReW(jw)');

Pen.Width:=100;
Pixels[400,126] := clRed;
end;

end;

end.

PM MAIL   Вверх
sono
Дата 6.4.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008
Где: KHARKOV

Репутация: нет
Всего: -1



dx4r,  чувак ты по ходу режил изобрести новый TCHART ... smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.