Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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 после 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 убери



Страницы: 1 вся ветка

Текущий архив: 2006.05.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
2-1145611729
inri13666
2006-04-21 13:28
2006.05.07
Помогите плиз с Сервисным приложением


4-1139547890
asterra
2006-02-10 08:04
2006.05.07
Информация о компьютере


2-1145280366
nyron
2006-04-17 17:26
2006.05.07
печатная форма


15-1144918326
_!
2006-04-13 12:52
2006.05.07
Контроль доступа к файлам и папкам


2-1145331107
Ezorcist
2006-04-18 07:31
2006.05.07
Сверуть все окна!