Новичок
Профиль
Группа: Участник
Сообщений: 2
Регистрация: 24.3.2008
Репутация: нет Всего: нет
|
 Нужно штоб рисовало график при нажатии на кнопку "Обчислити" начиная с точки (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.
|
|