Главная страница
    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.016 c
2-1145898986
Kolan
2006-04-24 21:16
2006.05.14
Как удалить контрол установленный с исп-ем библиотеки типов?


2-1145794625
mctarik
2006-04-23 16:17
2006.05.14
Учёт версии программы!


6-1137857835
GanibalLector
2006-01-21 18:37
2006.05.14
(Berkeley-style sockets) теория


15-1145532006
syte_ser78
2006-04-20 15:20
2006.05.14
Регистрация сайта в поисковиках


15-1145353533
Pazitron_Brain
2006-04-18 13:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский