
19.05.2012, 22:09
|
Прохожий
|
|
Регистрация: 16.05.2012
Сообщения: 10
Репутация: 10
|
|
Теперь 150 ячеек... Это координаты точек (u,v) для графика.
Вроде место есть куда писать, но не получается...
ПОЛНЫЙ КОД:
Код:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart, Grids;
type
TForm3 = class(TForm)
Button1: TButton;
Button2: TButton;
Panel1: TPanel;
StringGrid1: TStringGrid;
Button3: TButton;
Button4: TButton;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Panel4: TPanel;
StringGrid2: TStringGrid;
Button5: TButton;
procedure OnCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
c : Single = 3e8;
massa,zariad: real;
q:byte;
implementation
uses Unit2,Unit1;
{$R *.dfm}
Procedure TForm3.OnCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := 'Напряжение U, МВ';
StringGrid1.Cells[0,1] := 'Скорость v, м/c';
end;
// КНОПКА НАЗАД
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.Hide;
Form2.Show;
end;
// КНОПКА ВЫХОД
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.Hide;
end;
// ЗАПОЛНЕНИЕ ТАБЛИЦЫ
procedure TForm3.Button3Click(Sender: TObject);
var
I, J : Integer;
U, v : Single;
dU : Single;
begin
Q:=form1.combobox1.itemindex;
massa:= P[q].m0; // определяем массу из первой формы по выбору Combobox1
zariad:= P[q].q0; // определяем заряд из первой формы по выбору Combobox1
// расчет значений для графика
J:= 1;
StringGrid1.Cells[0,0]:='Напряжение U, МВ';
StringGrid1.Cells[0,1]:='Скорость v,10^8 м/c';
U:= 0;
StringGrid1.Cells[J,0]:=FloatToStr(U);
v:=c*sqrt(1 - sqr(massa*c*c/(5*zariad*U*1e6 + massa*c*c)))/1e8; //*1e6 т.к. МВ
StringGrid1.Cells[J,1]:= FloatToStr(v);
dU:= StrToFloat(Edit1.Text);
repeat
U:=U+dU;
v:=c*sqrt(1 - sqr(massa*c*c/(5*zariad*U*1e6 + massa*c*c)))/1e8;
// Записываем напряжение в ячейку:
StringGrid1.Cells[J+1,0]:= FloatToStr(U);
// Записывем скорость в ячейку ниже,под соответ.напряжением:
StringGrid1.Cells[J+1,1]:= FloatToStr(v);
inc(J);
until J > 151;//StringGRid1.ColCount - 1;
end;
//ОЧИСТКА ТАБЛИЦЫ
procedure TForm3.Button4Click(Sender: TObject);
var i, j :integer;
begin
with StringGRid1 do
for i:=0 to RowCount do //Заголовки строк не трогаем
for j:=0 to ColCount do //Заголовки столбцов не трогаем
Cells[j, i]:=' ';
end;
end.
|