Не могу понять где ошибся, когда ввожу обычные числа все в порядке, а как только десятичные все рушится... даже extended вместо integer'a ставил, думал в этом проблема, но увы...
Код
program kurs_delphi;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i,V,Qmax,Qmin: integer;
Q,p,S,pmax: real;
Qtab: array [0..12] of integer =(23,34,45,57,68,53,45,42,49,58,67,78,93);
Qras: array [0..12] of real;
c: array [0..12] of integer;
begin
V:=212;
i:=0;
Qmax:=Qtab[i];
Qmin:=Qtab[i];
S:=0;
while V<=290 do begin
begin
c[i]:=V;
// Подбор уравнения
if V<215 then Q:=11.3*V-683.65
else
if V<222 then Q:=1.5714*V-280.85
else
if V<236 then Q:=1.64*V-342.71
else
if V<243 then Q:=(-0.42)*V+146.14
else
if V<250 then Q:=V-201
else
if V<270 then Q:=0.9*V-176
else
if V<=290 then Q:=1.3*V-284
end;
Qras[i]:=Q;
if (V<215) then V:=V+1 else // Смена шага
if (V<250) then V:=V+7 else V:=V+10;
i:=i+1;
end;
for i:=0 to 12 do // Нахождение Qmax, Qmin
begin
if Qmax<Qtab [i]then Qmax:=Qtab[i];
if Qmin>Qtab [i]then Qmin:=Qtab[i];
end;
for i:=0 to 12 do
begin
write(c[i],': ',Qras[i]:0:2); // Вывод таблицы
if Qras[i]<>Qtab [i]then // Вывод погрешности, если она есть
begin
p:=abs(Qras[i]-Qtab[i])/(Qmax-Qmin)*100;
if pmax < p then pmax:=p; // нахождение максимальной локальной погрешности
write(' (',p:0:2,'%)');
S:=S+p; // нахождение суммарной погрешности
end;
writeln('');
end;
writeln('max loc pogr = ',pmax:0:2);
writeln('Summ pogr = ',S:0:2);
readln;
end.