Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2011, 16:38   #1
kotopezzz
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 18
По умолчанию ошибка кода

Всем доброго времени суток...что то не так с кодом...не могу найти ошибку.

Код:
begin
 s1 := 0;
 s2 := 0;
 s3 := 0;
 s5 := 0;
 s6 := 0;
 s7 := 0;
 s8 := 0;
 with stringgrid1 do begin
   for j := 1 to RowCount - 1 do
   begin
     if cells[1,j]='' then cells[1,j]:='0';
     if cells[7,j]='' then cells[7,j]:='0';
     if cells[8,j]='' then cells[8,j]:='0';

     s3:=s3+StrToFloat(Cells[7,j]);

     if s3<=1 then
     begin
        s1:=s1+StrToFloat(Cells[1,j])*StrToFloat(Cells[7,j]);
        s2:=s2+StrToFloat(Cells[2,j])*StrToFloat(Cells[7,j]);
        edit1.text:=Floattostr(s1);
        edit2.text:=Floattostr(s2);
     end
     else
     begin
        edit1.text:='';
        edit2.text:='';
        label2.visible:=true;
        label2.caption:='Íåâåðíîå çíà÷åíèå r(i)';
     end;
   end;

   if s2<>0 then
   begin
     for j := 1 to RowCount - 1 do
     begin
         s4:=(strtofloat(cells[2,j])*strtofloat(cells[7,j]))/s2;
         stringgrid1.cells[8,j]:=floattostr(s4);
         n:=StrToFloat(Cells[3,j]);
         m:=StrToFloat(Cells[4,j]);
         l:=StrToFloat(Cells[5,j]);
         p:=StrToFloat(Cells[6,j]);
         end;
         if 12*n+m+16*l+p*32<>0 then
   begin
     for j := 1 to 15 do
   begin
            b1:=12*n/(12*n+m+16*l+p*32);
            b2:=m/(12*n+m+16*l+p*32);
            b3:=16*l/(12*n+m+16*l+p*32);
            b4:=32*p/(12*n+m+16*l+p*32);
           end;
   begin
   for j :=16 to RowCount - 1  do
   begin
            b1:=0.855;
            b2:=0.145;
            b3:=0;
            b4:=0;
   end;

            s5:=s5+StrToFloat(Cells[7,j])*b1;
            s6:=s6+StrToFloat(Cells[7,j])*b2;
            s7:=s7+StrToFloat(Cells[7,j])*b3;
            s8:=s8+StrToFloat(Cells[7,j])*b4;
            edit3.Text:=floattostr(s5);
            edit4.Text:=floattostr(s6);
            edit5.Text:=floattostr(s7);
            edit6.Text:=floattostr(s8);
      end;
      end;
      end;
kotopezzz вне форума Ответить с цитированием
Старый 14.02.2011, 16:50   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

ошибка какая, угадать надо?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 14.02.2011, 16:52   #3
kotopezzz
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 18
По умолчанию

Программа запускается но при вводе значений в ячейки пишет is not a flotting point value
kotopezzz вне форума Ответить с цитированием
Старый 14.02.2011, 17:00   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Трасировкой пройдись по процедуре.
{
Ставшь бряк на начале процедуры, наличаешь ввод в ячейку , delphi остановит процесс, далее f8 по коду и до самой ошибки.
Сразу найдёшь причину.
}

Ошибка в том, что ты вводишь integer и не переделываешь его во Float где-то в коде. Трассировка подскажет в какой строке это происходит.
Человек_Борща вне форума Ответить с цитированием
Старый 14.02.2011, 17:00   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

а что, например, вводиш?

покажи свои VAR, в какои строке ошибка, тут не телепаты
VirusN13

Последний раз редактировалось ArtGrek; 14.02.2011 в 17:06.
ArtGrek вне форума Ответить с цитированием
Старый 14.02.2011, 17:13   #6
kotopezzz
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 18
По умолчанию

я понимаю..извиняюсь...вот полный текст проги..var я обьявил в public

Код:
unit Unit1;
  public
    s1,s2,s3,n,m,l,p,b1,b2,b3,b4,s4,s5,s6,s7,s8,M0: real;
    end;
var
  Form1: TForm1;

implementation


Uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='Êîìïîíåíò òîïëèâà';
StringGrid1.Cells[1,0]:='Íu(i) êÄæ/êìîëü';
Stringgrid1.Cells[2,0]:='Ìîëåêóëÿðíàÿ ìàññà (i)';
StringGrid1.Cells[3,0]:='n';
StringGrid1.Cells[4,0]:='m';
Stringgrid1.Cells[5,0]:='l';
Stringgrid1.Cells[6,0]:='p';
Stringgrid1.Cells[7,0]:='Ñîäåðæàíèå â òîïëèâå r(i)';
Stringgrid1.Cells[8,0]:='Ìàññîâàÿ äîëÿ êîìïîíåíòà';
Stringgrid1.Cells[0,1]:='Îêñèä óãëåðîäà (ÑÎ)';
Stringgrid1.Cells[0,2]:='Âîäîðîä (Í2)';
Stringgrid1.Cells[0,3]:='Ìåòàí (ÑÍ4)';
Stringgrid1.Cells[0,4]:='Ýòàí (Ñ2H6)';
Stringgrid1.Cells[0,5]:='Ïðîïàí (Ñ3H8)';
Stringgrid1.Cells[0,6]:='Áóòàí (C4H10)';
Stringgrid1.Cells[0,7]:='Ïåíòàí (Ñ5H12)';
Stringgrid1.Cells[0,8]:='Ýòèëåí (C2H4)';
Stringgrid1.Cells[0,9]:='Ïðîïèëåí (Ñ3H6)';
Stringgrid1.Cells[0,10]:='Áóòèëåí (C4H8)';
Stringgrid1.Cells[0,11]:='Ñåðîâîäîðîä (H2S)';
Stringgrid1.Cells[0,12]:='Êèñëîðîä(02)';
Stringgrid1.Cells[0,13]:='Àçîò(N2)';
Stringgrid1.Cells[0,14]:='Âîäÿíîé ïàð (H2Î)';
Stringgrid1.Cells[0,15]:='Äèîêñèä óãëåðîäà (CO2)';
Stringgrid1.Cells[0,16]:='Áåíçèí';
Stringgrid1.Cells[1,1]:='283050';
Stringgrid1.Cells[1,2]:='240660';
Stringgrid1.Cells[1,3]:='799920';
Stringgrid1.Cells[1,4]:='1424280';
Stringgrid1.Cells[1,5]:='2039160';
Stringgrid1.Cells[1,6]:='2652440';
Stringgrid1.Cells[1,7]:='3265540';
Stringgrid1.Cells[1,8]:='2332270';
Stringgrid1.Cells[1,9]:='1935610';
Stringgrid1.Cells[1,10]:='2547300';
Stringgrid1.Cells[1,11]:='523810';
Stringgrid1.Cells[1,12]:='';
Stringgrid1.Cells[1,13]:='';
Stringgrid1.Cells[1,14]:='';
Stringgrid1.Cells[1,15]:='';
Stringgrid1.Cells[1,16]:='465096,8';
Stringgrid1.Cells[2,1]:='28';
Stringgrid1.Cells[2,2]:='2';
Stringgrid1.Cells[2,3]:='16';
Stringgrid1.Cells[2,4]:='30';
Stringgrid1.Cells[2,5]:='44';
Stringgrid1.Cells[2,6]:='58';
Stringgrid1.Cells[2,7]:='72';
Stringgrid1.Cells[2,8]:='28';
Stringgrid1.Cells[2,9]:='42';
Stringgrid1.Cells[2,10]:='56';
Stringgrid1.Cells[2,11]:='34';
Stringgrid1.Cells[2,12]:='16';
Stringgrid1.Cells[2,13]:='28';
Stringgrid1.Cells[2,14]:='18';
Stringgrid1.Cells[2,15]:='44';
Stringgrid1.Cells[2,16]:='114';
StringGrid1.Cells[3,1]:='1';
StringGrid1.Cells[3,2]:='0';
Stringgrid1.Cells[3,3]:='1';
StringGrid1.Cells[3,4]:='2';
StringGrid1.Cells[3,5]:='3';
и т. д.

procedure TForm1.Button1Click(Sender: TObject);
 var
   j: integer;
begin
 s1 := 0;
 s2 := 0;
 s3 := 0;
 s5 := 0;
 s6 := 0;
 s7 := 0;
 s8 := 0;
 with stringgrid1 do
 begin
   for j := 1 to RowCount - 1 do
   begin
     if cells[1,j]='' then cells[1,j]:='0';
     if cells[7,j]='' then cells[7,j]:='0';
     if cells[8,j]='' then cells[8,j]:='0';

     s3:=s3+StrToFloat(Cells[7,j]);

     if s3<=1 then
     begin
        s1:=s1+StrToFloat(Cells[1,j])*StrToFloat(Cells[7,j]);
        s2:=s2+StrToFloat(Cells[2,j])*StrToFloat(Cells[7,j]);
        edit1.text:=Floattostr(s1);
        edit2.text:=Floattostr(s2);
     end
     else
     begin
        edit1.text:='';
        edit2.text:='';
        label2.visible:=true;
        label2.caption:='Íåâåðíîå çíà÷åíèå r(i)';
     end;
   end;

   if s2<>0 then
   begin
     for j := 1 to RowCount - 1 do
     begin
         s4:=(strtofloat(cells[2,j])*strtofloat(cells[7,j]))/s2;
         stringgrid1.cells[8,j]:=floattostr(s4);
         n:=StrToFloat(Cells[3,j]);
         m:=StrToFloat(Cells[4,j]);
         l:=StrToFloat(Cells[5,j]);
         p:=StrToFloat(Cells[6,j]);
         end;
         if 12*n+m+16*l+p*32<>0 then
   begin
     for j := 1 to 15 do
   begin
            b1:=12*n/(12*n+m+16*l+p*32);
            b2:=m/(12*n+m+16*l+p*32);
            b3:=16*l/(12*n+m+16*l+p*32);
            b4:=32*p/(12*n+m+16*l+p*32);
           end;
   begin
   for j :=16 to RowCount - 1  do
   begin
            b1:=0.855;
            b2:=0.145;
            b3:=0;
            b4:=0;
   end;

            s5:=s5+StrToFloat(Cells[7,j])*b1;
            s6:=s6+StrToFloat(Cells[7,j])*b2;
            s7:=s7+StrToFloat(Cells[7,j])*b3;
            s8:=s8+StrToFloat(Cells[7,j])*b4;
            edit3.Text:=floattostr(s5);
            edit4.Text:=floattostr(s6);
            edit5.Text:=floattostr(s7);
            edit6.Text:=floattostr(s8);
      end;
      end;
      end;
        M0:=(1/0.209)*(s5/12+s6/4+s8/32-s7/32);
        edit7.Text:=floattostr(M0);
     end;
     end;
kotopezzz вне форума Ответить с цитированием
Старый 14.02.2011, 17:24   #7
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
           b4:=32*p(12*n+m+16*l+p*32);
           end;
   begin
   for j :=16 to RowCount - 1  do
   begin
            b1:=0.855;
может там ELSE BEGIN должно быть?

зы. и вовремя ошибки, должно показывать в какои строке ошибка, так легче ее наит
VirusN13

Последний раз редактировалось ArtGrek; 15.02.2011 в 12:24.
ArtGrek вне форума Ответить с цитированием
Старый 14.02.2011, 18:12   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

скиньте сам проект
Человек_Борща вне форума Ответить с цитированием
Старый 14.02.2011, 20:11   #9
kotopezzz
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 18
По умолчанию

Человек_борща .....здесь сам проект..если есть время и желание помогите пожалуйста.
kotopezzz вне форума Ответить с цитированием
Старый 14.02.2011, 20:44   #10
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

"Чудо номер раз" :
Код:
     for j := 1 to 15 do
     begin
            b1:=12*n/(12*n+m+16*l+p*32);
            b2:=m/(12*n+m+16*l+p*32);
            b3:=16*l/(12*n+m+16*l+p*32);
            b4:=32*p/(12*n+m+16*l+p*32);
           else
"Чудо номер два" :
Код:
     end.
procedure TForm1.Button2Click(Sender: TObject);
begin
Дальше смотреть не стал. Этот "код" не мог быть скомпилирован...
И откуда у вас взялся экзешник - тайна за семью печатями.

Последний раз редактировалось asmodey1; 14.02.2011 в 20:47.
asmodey1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём ошибка кода ???? GRIN Помощь студентам 1 30.08.2010 08:38
ошибка кода street-walker Общие вопросы Delphi 1 17.06.2010 22:32
В чём ошибка кода? Richard22 Общие вопросы Delphi 2 16.05.2010 00:27
Ошибка кода при компиляции rubik Общие вопросы C/C++ 0 22.03.2010 19:44
ошибка в логике кода R@Ziel Помощь студентам 2 03.01.2010 16:10