Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.073 c
3-1146659528
mochoni
2006-05-03 16:32
2006.06.25
Занесение файлов в SqlServ


9-1131538867
VolanD666
2005-11-09 15:21
2006.06.25
Количество теругольников в D3D.


2-1149612650
qazwsx
2006-06-06 20:50
2006.06.25
Как получать параметры переданные через командную строку?


2-1149502986
новик
2006-06-05 14:23
2006.06.25
преобрпзование типов int64 в int


2-1149345914
НовичОк_
2006-06-03 18:45
2006.06.25
Вставить дату из DateTimePicker