![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
хм...
Holod © (2006-04-21 07:31:00)Уменя тут возникли сомнения - можно ли переменной, скажем x присвоить столбец компонента StringGrid: x:=StrToFloat(StringGrid1.Cells[1,i]);
Или это некорректно, нужно, к примеру создать массив. Извиняюсь за такой тупой вопрос, заранее спасибо!
balepa (2006-04-21 08:38:00) [1]У тебя код из серии "Он еще и работает"
Если надо весь этот кусок в цикле выполнять где begin после DO
Z1:=StrToFloat(StringGrid1.Cells[1,i]);
Z2:=StrToFloat(StringGrid1.Cells[2,i]);
Z:=Z1*Z2;
Cells[0, i] := IntToStr(i);
x:=x+x*h;
y:=(x);
a0:=(SXi_Yi-(SXi*SYi))/(SXi*(1-n));
a1:=(SYi-a0*n)/ SXi;
F := a0+a1*x;
h:=0.1;
Z:=x*y;
StringGrid1.Cells[1,i]:= FloatToStr(x);
StringGrid1.Cells[2,i]:= FloatToStr(y);
StringGrid1.Cells[3,i]:= FloatToStr(F);
SXi:=SXi+ StrToFloat(StringGrid1.Cells[1,i]);
SYi:=SYi+ StrToFloat(StringGrid1.Cells[2,i]);
SXi_Yi:= SXi_Yi+(Z1*Z2);
SXi_Yi1:=Z;
with StringGrid1 do
begin
Cells[0, 0] := '¹';
Cells[1, 0] := 'x';
Cells[2, 0] := 'y';
Cells[3, 0] := 'F(x)';
begin //убери а в конце один END убери
Tans (2006-04-21 08:27:00) [2]А как заменить точку на запятую, если таблица сама заполняется!?
balepa (2006-04-21 08:20:00) [3]
> Tans (21.04.06 08:15) [8]
Наверное заменить точку на зяпятую
Или использовать
function StrToFloat(const S: string; const FormatSettings: TFormatSettings): Extended; overload;
Tans (2006-04-21 08:15:00) [4]Да нет, мы просто делаем одно и тоже - учимся вместе.
А насчет точки или запятой - эта процедура на событие FormCreate. Как теперь ее исправить?
balepa (2006-04-21 08:09:00) [5]Tans и Holod одно лицо ?
У тебя наверное в StringGrid1[1,i] вместо 0,1 стоит 0.1 (точка или запятая)
Tans (2006-04-21 08:05:00) [6]var
Form1: TForm1;
i: integer;
x, y,a0,a1,F,SXi,SYi,SXi_Yi,n,Z,SXi_Yi1,Z1,Z2: Double;
h,a:real;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SXi:=0;
SYi:=0;
SXi_Yi:=0;
n:=10;
with StringGrid1 do
begin
Cells[0, 0] := '¹';
Cells[1, 0] := 'x';
Cells[2, 0] := 'y';
Cells[3, 0] := 'F(x)';
begin
for i := 1 to StringGrid1.RowCount - 1 do
Z1:=StrToFloat(StringGrid1.Cells[1,i]);
Z2:=StrToFloat(StringGrid1.Cells[2,i]);
Z:=Z1*Z2;
Cells[0, i] := IntToStr(i);
x:=x+x*h;
y:=(x);
a0:=(SXi_Yi-(SXi*SYi))/(SXi*(1-n));
a1:=(SYi-a0*n)/ SXi;
F := a0+a1*x;
h:=0.1;
Z:=x*y;
StringGrid1.Cells[1,i]:= FloatToStr(x);
StringGrid1.Cells[2,i]:= FloatToStr(y);
StringGrid1.Cells[3,i]:= FloatToStr(F);
SXi:=SXi+ StrToFloat(StringGrid1.Cells[1,i]);
SYi:=SYi+ StrToFloat(StringGrid1.Cells[2,i]);
SXi_Yi:= SXi_Yi+(Z1*Z2);
SXi_Yi1:=Z;
end;
end;
end;
balepa (2006-04-21 08:04:00) [7]Приведи полностью "проблемный" код.
Holod (2006-04-21 07:58:00) [8]Он тогда грязно ругается, говорит, что "is not a valid floating point value".
balepa (2006-04-21 07:54:00) [9]
> Holod (21.04.06 07:50) [2]
Так и делай как написал.
Holod (2006-04-21 07:50:00) [10]А как тогда умножить 1 столбец SG на другой, и результат отобразить в третьем?
balepa (2006-04-21 07:45:00) [11]x:=StrToFloat(StringGrid1.Cells[1,i]);
Это не есть присвоение переменной x столбца ето есть присвоение X значения ячейки [1,i] в итоге в x будет последнее число в [1,i] если только эта строчка (x:=StrToFloat(StringGrid1.Cells[1,i]);) написана у тебя в цикле