Delphi: ошибка записи в StringGrid и Edit

Мне в общем надо подсчитать теперь количество итераций и вывести их в эдит, а так же полученные значения в 4-й Эдит. Воспользовалась циклом while и то ли цикл не там организовала, то ли что - программа по нажатию 4-й кнопки данные не выводи ни в Эдит нив ГридВот кусок кода с которым проблема:
procedure TForm1.Button4Click(Sender: TObject);varr,e,u,y:real;i, sh:integer;k:array of Real;h:array of Real;ee:array of Real;q:array of Real;yy:array of Real;beginr:=StrToFloat(Edit2.text);SetLength(ee, n);SetLength(k, n);SetLength(q, n);SetLength(h, n);SetLength(yy, n);for i := 0 to n-1 do  begin    k[i]:=StrToFloat(StringGrid1.Cells[0,i]);    h[i]:=StrToFloat(StringGrid2.Cells[0,i]);  end;while ee[i]>r dosh:=sh+1;beginu:=u+(k[i]*h[i]);y:=1/(1+Exp(u));e:=d-y;for i:=0 to n-1 dobeginq[i]:=e*0.5*(Power((yy[i]-d),2));end;for i:=0 to n-1 dobeginee[i]:=q[i]*k[i];StringGrid4.Cells[0,i]:=FloatToStr(ee[i]);end;end;Edit5.Text:=IntToStr(sh);end;end.
5 ответов

Ошибка-то где и какая? Небось в преобразованиях где-то косяк.


Данкинг, всё, я уже решила проблему...Использую код из предыдущей кнопки, потом переделаю в новый... мне теперь надо цикл организовать, чтобы он вычисления делал и итерации считал и выводил их в Эдит...Что-то не выходит... С Ифами косяк =__=Оно зависает:
procedure TForm1.Button4Click(Sender: TObject);varu,y,e, d,m,r :Real;i, n, sh:integer;k:array of Real;h:array of Real;ee:array of Real;yy:array of Real;cc:array of Real;begind:=StrToFloat(Edit4.text);r:=StrToFloat(Edit2.text);n:= StringGrid1.RowCount;u:=0;sh:=0;SetLength(k, n);SetLength(h, n);SetLength(ee, n);SetLength(yy, n);SetLength(cc, n);for i := 0 to n-1 do  begin    k[i]:=StrToFloat(StringGrid1.Cells[0,i]);    h[i]:=StrToFloat(StringGrid2.Cells[0,i]);  end;for i:=0 to n-1 dobeginu:=u+(k[i]*h[i]);y:=1/(1+Exp(u));e:=d-y;m:=0.5*(Power((yy[i]-d),2));end;for i:=0 to n-1 dobeginee[i]:=e*k[i]*m;if ee[i]<r thenStringGrid4.Cells[0,i]:=FloatToStr(ee[i])elsewhile ee[i]>r docc[i]:=ee[i]*ee[i]*m;sh:=sh+1;StringGrid4.Cells[0,i]:=FloatToStr(cc[i]); end;  Edit5.Text:=IntToStr(sh);end;end.


Этот вопрос решён... Теперь у меня цикл неверно работает - не выполняется условие...И количество итераций всегда равно числу строк в Гридах...Подскажите пожалуйста, что не так:
for i:=0 to n-1 dobeginee[i]:=e*k[i]*m;if ee[i]<r thenStringGrid4.Cells[0,i]:=FloatToStr(ee[i])elsewhile ee[i]>r doee[i]:=ee[i]*e*m;sh:=sh+1;StringGrid4.Cells[0,i]:=FloatToStr(ee[i]); end;  Edit5.Text:=IntToStr(sh);end;end.


После while ee[i]>r do случайно begin не надо?


А, всё, до меня дошло уже до самой.Всем спасибо, все свободны