Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизOшибка Найти похожие ветки
← →
SUCUBE (2006-06-07 21:09) [0]Вылазиет такое:
Debugger Exception Notification
Project.exe raised exception class EInvalidOp with message "Invalid floating point operation"/
Process stopped.Use step or run to continue.public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit3;
{$R *.dfm}
function fak (n :integer) :integer;
var i :integer;
begin
result := 1;
for i := 2 to n do
result := result * i;
end;
function pow (a :double; s :double) :double;
begin
result := exp(s*ln(a));
end;
function P (m :integer) : double;
var Sum :double; n :integer;
begin
Sum := 0;
for n := 0 to m do begin
Sum := Sum + ((fak(m)/fak(m-n))*pow(((700/24)/(60/10)), n));
end;
result := 1/Sum;
end;
procedure TForm6.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
form3.show();
form6.hide();
end;
procedure TForm6.Button1Click(Sender: TObject);
var
L,mu,ps,NSYST,NOCH,Pn,Pf:double;
m,n :integer;
begin
L:=700/24;
mu:=60/10;
ps:=L/mu;
//Pn:= P(m)*(fak(m)/fak(m-n))*pow(ps, n);
//Pf:=(1-P(m))*mu;
//NSYST:=m-(1-P(m))/ps;
//NOCH:=NSYST-(1-P(m));
edit1.Text:=FloatToStr(L);
edit2.Text:=FloatToStr(mu);
edit3.Text:=FloatToStr(ps);
edit4.Text:=FloatToStr(Pn);
edit5.Text:=FloatToStr(Pf);
edit6.Text:=FloatToStr(NSYST);
edit7.Text:=FloatToStr(NOCH);
sg.Cells[0, 0] := "m=";
sg.Cells[1, 0] := "P0(m)=";
for m := 2 to 12 do begin
sg.Cells[0, m-1] := inttostr(m);
sg.Cells[1, m-1] := floattostr(P(m));
end;
Что делать то? как исправить
← →
SUCUBE (2006-06-07 21:13) [1]млин забыла вот эти убрать //..без них не работает....что делать...
вот тут
//Pn:= P(m)*(fak(m)/fak(m-n))*pow(ps, n);
//Pf:=(1-P(m))*mu;
//NSYST:=m-(1-P(m))/ps;
//NOCH:=NSYST-(1-P(m));
а когда без // вылазиет ошибка
← →
Desdechado © (2006-06-07 21:14) [2]хоть бы строчку указал, на какой ругает
и дебаггер тебе в помощь
← →
SUCUBE (2006-06-07 21:17) [3]//Pn:= P(m)*(fak(m)/fak(m-n))*pow(ps, n);
//Pf:=(1-P(m))*mu;
//NSYST:=m-(1-P(m))/ps;
//NOCH:=NSYST-(1-P(m));
на них и ругает
← →
Desdechado © (2006-06-07 21:18) [4]ps не ноль случайно?
← →
SUCUBE (2006-06-07 21:20) [5]не...там кажется с Р(m) что то не то
← →
Desdechado © (2006-06-07 21:25) [6]не боишься, что факториал в интегер не влезет?
а вместо Double лучше extended в таких случаях
← →
SUCUBE (2006-06-07 21:30) [7]да я и карренси делала..без толку... а интегер на что изменить?
← →
Desdechado © (2006-06-07 21:58) [8]прежде чем использовать M и N в TForm6.Button1Click
их неплохо бы инициализировать
локальные переменные имеют свойство содержать в себе мусор
кстати, ошибка звучит как Floating point overflow, что значит переполнение
а интегер можно заменить на Int64
← →
Desdechado © (2006-06-07 21:59) [9]и еще раз - отладчик длятого и придумали, чтоб нетолько строчки с ошибками находить, но и причины ошибок
← →
SUCUBE (2006-06-07 22:04) [10]а как инициализировать
← →
Desdechado © (2006-06-07 22:06) [11]зависит от задачи
нулем, например
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c