Люди добрые помогите. Я с делфи7 знаком неделю, жизнь заставила написать программу, но корректно работать не хочет. Суть проблемы такая:
я сравниваю двумерные массивы и найденными значениями заполняю stringgrid, значения ищутся с с увеличением погрешности, если не нашел, и т.д. пока погрешность не дойдет до максимальной, первая погрешность работает, а вторая не работает В коде подписано //сравнение данных по оборотам.
Что я делаю не так?
код:
Код:
procedure TForm1.Button3Click(Sender: TObject); //поиск бцн
label
point;
var
i : integer;
k : integer;
y : integer;
s,q : real;
o,p : real;
pogrdz:real;
pogrrpm:real;
begin
//показать и сбросить прогресс бар
progressbar2.Visible:=true;
progressbar2.Position:=0;
pogrdz:=0;
pogrrpm:=0;
//gotolabel:
//перебор квантований
for k := 1 to stringgrid2.ColCount-1 do
for y := 1 to stringgrid2.RowCount-1 do
for i := 1 to stringgrid1.RowCount-1 do
if (stringgrid1.Cells[1,i]<>'') and (stringgrid2.Cells[k,0]<>'') then //пропуск пустых ячеек
//pogrdz<strtofloat(inttostr(TrackBar1.Position))*0.1
//strtofloat(inttostr(TrackBar1.Position))*0.1;
begin
//сравнение данных дросселя
progressbar2.Position:=round(100*(k+1)/stringgrid3.ColCount-1); //меняем положение прогресс бар
s:=0;
s:=s + strtofloat(stringgrid1.Cells[1,i]);
q:=0;
q:=q + strtofloat(stringgrid2.Cells[k,0]);
if ((q-pogrdz<=s) and (s<=q+pogrdz)) then
begin
//сравнение данных оборотов
if (stringgrid1.Cells[0,i]<>'') and (stringgrid2.Cells[0,y]<> '')then //пропуск пустых ячеек
begin
o:=0;
o:=o+ strtofloat(stringgrid1.Cells[0,i]);
p:=0;
p:=p+ strtofloat(stringgrid2.Cells[0,y]);
//pogrrpm:=strtofloat(inttostr(TrackBar3.Position));
if ((p-pogrrpm<=o) and (o<=p+pogrrpm))then
begin
if stringgrid2.Cells[k,y]='' then
stringgrid2.Cells[k,y]:=stringgrid1.Cells[2,i]
end;
end else if pogrrpm < strtofloat(inttostr(TrackBar3.Position)) then pogrrpm:=pogrrpm+1; Edit2.Text:= floattostr(pogrrpm);
end else if pogrdz < strtofloat(inttostr(TrackBar1.Position))*0.1 then pogrdz:=pogrdz+0.1; Edit1.Text:= floattostr(pogrdz);
end;
progressbar2.Visible:=false; //скрываем прогресс бар
end;
lmikle: Используем ПРАВИЛЬНЫЕ теги.