Текущий архив: 2006.05.07;
Скачать: CL | DM;
Внизхм... Найти похожие ветки
← →
Holod (2006-04-21 07:31) [0]Уменя тут возникли сомнения - можно ли переменной, скажем x присвоить столбец компонента StringGrid: x:=StrToFloat(StringGrid1.Cells[1,i]);
Или это некорректно, нужно, к примеру создать массив. Извиняюсь за такой тупой вопрос, заранее спасибо!
← →
balepa © (2006-04-21 07:45) [1]x:=StrToFloat(StringGrid1.Cells[1,i]);
Это не есть присвоение переменной x столбца ето есть присвоение X значения ячейки [1,i] в итоге в x будет последнее число в [1,i] если только эта строчка (x:=StrToFloat(StringGrid1.Cells[1,i]);) написана у тебя в цикле
← →
Holod (2006-04-21 07:50) [2]А как тогда умножить 1 столбец SG на другой, и результат отобразить в третьем?
← →
balepa © (2006-04-21 07:54) [3]
> Holod (21.04.06 07:50) [2]
Так и делай как написал.
← →
Holod (2006-04-21 07:58) [4]Он тогда грязно ругается, говорит, что "is not a valid floating point value".
← →
balepa © (2006-04-21 08:04) [5]Приведи полностью "проблемный" код.
← →
Tans (2006-04-21 08:05) [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:09) [7]Tans и Holod одно лицо ?
У тебя наверное в StringGrid1[1,i] вместо 0,1 стоит 0.1 (точка или запятая)
← →
Tans (2006-04-21 08:15) [8]Да нет, мы просто делаем одно и тоже - учимся вместе.
А насчет точки или запятой - эта процедура на событие FormCreate. Как теперь ее исправить?
← →
balepa © (2006-04-21 08:20) [9]
> Tans (21.04.06 08:15) [8]
Наверное заменить точку на зяпятую
Или использовать
function StrToFloat(const S: string; const FormatSettings: TFormatSettings): Extended; overload;
← →
Tans (2006-04-21 08:27) [10]А как заменить точку на запятую, если таблица сама заполняется!?
← →
balepa © (2006-04-21 08:38) [11]У тебя код из серии "Он еще и работает"
Если надо весь этот кусок в цикле выполнять где begin после DOZ1:=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 убери
Страницы: 1 вся ветка
Текущий архив: 2006.05.07;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c