Главная страница
    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.009 c
2-1145769990
Александр123123
2006-04-23 09:26
2006.05.14
Как в цикле прообежаться по свойствам компонента


2-1145769671
Akudza
2006-04-23 09:21
2006.05.14
Функция bintoint


2-1145774100
manevil
2006-04-23 10:35
2006.05.14
Прозрачная панель


2-1145768049
Holod
2006-04-23 08:54
2006.05.14
График


2-1145776607
Radgar
2006-04-23 11:16
2006.05.14
Активный элемент ListBox





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский