Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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] := "&#185;";
     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.01 c
15-1144698408
Галинка
2006-04-10 23:46
2006.05.14
Ищу книгу


4-1140562159
DOG
2006-02-22 01:49
2006.05.14
Нет а все таки, как?


3-1143039657
Ega23
2006-03-22 18:00
2006.05.14
Text vs. Image Data Type


6-1137758006
Юрий Ж.
2006-01-20 14:53
2006.05.14
[?]Служба сообщений


2-1146155604
Ded22
2006-04-27 20:33
2006.05.14
Обновление по таймеру !





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский