Форум: "Начинающим";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];
ВнизHelp! Найти похожие ветки
← →
Tans (2006-04-21 07:05) [0]Уважаемые мастера! Помогите начинающему! При запуске этой процедуры выдается ошибка:"Invalid floating point operator" . Помогите, пжалста, исправить!
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)";
x:=a+x*h;
y:=(x);
a0:=(SXi_Yi- (SXi*SYi))/(SXi*(1-n));
a1:=(SYi-a0*n)/ SXi;
F := a0+a1*x;
h:=0.1;
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+(x*y);
SXi_Yi1:=x*y;
end;
end;
← →
Elen © (2006-04-21 07:54) [1]Как у тебя описаны переменные? Какого они типа?
← →
Tans (2006-04-21 07:59) [2]i: integer;
x, y,a0,a1,F,SXi,SYi,SXi_Yi,n,Z,SXi_Yi1,Z1,Z2: Double;
h,a:real;
Вот это они.
← →
Elen © (2006-04-21 08:09) [3]У тебя изначально Sxi равняется 0, а на ноль делить нельзя
замениa0:=(SXi_Yi- (SXi*SYi))/(SXi*(1-n));
a1:=(SYi-a0*n)/ SXi;
наa0:=(SXi_Yi- (SXi*SYi));
if sxi<>0 then a0:=a0/(SXi*(1-n));
a1:=(SYi-a0*n);
if sxi<>0 then a1:=a1/ SXi;
НА будущее : Тестируй программу пошагово, расставь точки прерывания и проверяй значения переменных, наводя на них курсор мыши.
← →
Tans (2006-04-21 08:19) [4]Теперь ругается на эту строчку: Z1:=StrToFloat(StringGrid1.Cells[1,i]);
пишет:"is not valid floating point value"
← →
Elen © (2006-04-21 08:29) [5]У меня не ругается. А где ты ее прописал?
← →
Tans (2006-04-21 08:31) [6]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));
if SXi<>0 then a0:=a0/(SXi*(1-n));
a1:=(SYi-a0*n);
if SXi<>0 then a1:=a1/ 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:35) [7]Так и будет ругаться строку "x" нельзя перевести в вещественное число
← →
Tans (2006-04-21 08:36) [8]а...которая строка? :)
← →
Elen © (2006-04-21 08:39) [9]У тебя там StringGrid1.Cells[1,i]="", а пусто в число не переводится
замени свой for на этот
for i := 1 to StringGrid1.RowCount - 1 do
if StringGrid1.Cells[1,i]<>"" then Z1:=StrToFloat(StringGrid1.Cells[1,i]);
← →
balepa © (2006-04-21 08:41) [10]Tans сори не обращай внимание у меня глюки, и задавай вопросы в одной ветке а то я уже замучался туда сюда "прыгать"
← →
Tans (2006-04-21 08:45) [11]Теперь не ругается, только SG не заполняет!
← →
Elen © (2006-04-21 08:50) [12]for i := 1 to StringGrid1.RowCount - 1 do Begin
← →
Tans (2006-04-21 08:53) [13]А теперь нулями заполняет!
← →
balepa © (2006-04-21 08:58) [14]
> Tans (21.04.06 08:53) [13]
А чего ты ожидал с таким кодом ?
x:=x+x*h;
y:=(x);
a0:=(SXi_Yi- (SXi*SYi));
Z:=x*y;
X = 0
y=0
Sxi =0
Syi=0
Z = 0
← →
Tans (2006-04-21 09:00) [15]А как тогда?
← →
balepa © (2006-04-21 09:04) [16]
> Tans (21.04.06 09:00) [15]
А как ты на матиматике такое решал или у вас ее нет?
← →
Tans (2006-04-21 09:09) [17]Мне непонятно, почему получаются нули!
← →
balepa © (2006-04-21 09:11) [18]Потому что x = 0
← →
Elen © (2006-04-21 09:12) [19]Tans еше раз пересмотри свою задачу и свою программу. У тебя там X Y всегда 0. Удачи!
← →
Ega23 © (2006-04-21 09:20) [20]Блин, нельзя такие ветки с утра читать. Особенно быстро. Создаётся впечатление, что ты вообще из реальности выпадаешь...
← →
Галинка © (2006-04-22 00:15) [21]А задание какое? x, y, h как-то определены? Иначе и должны быть нули.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c