Program se ne zakucava :)
nego jednostavno on udje u petlju a ne procesira ostale poruke koje dobija
forma,
na kraju petlje samo stavi: Application.ProcessMessages;
za da aplikacije posle svaku iteraciju unutar petlje procesira poruke koje su
poslane za njene forme, itn...
ukoliko hoces da presmetas 2^50 ili koji bilo exponent moze se posluziti
sa ln i exp funkcije
Code:
FUNCTION POWER (X: REAL; Y: REAL): REAL;
{ Raises X to the Yth power. }
{ X may not be negative. If X is 0, then Y must be positive. }
BEGIN
IF X > 0 THEN
POWER := EXP (Y * LN (X))
ELSE
IF X < 0 THEN
Message ('Error: Cannot raise negative numbers.')
ELSE { Thus X=0. }
IF Y > 0
THEN POWER := 0
ELSE
Message ('Error: Cannot raise 0 to non-positive numbers.')
END;
ako ti trebaju stvarno veliki brojevi onda pokusaj sa Int64 za celobrojnih tipova
i Extended za real tipova.
People who think they know everything tend to irritate those of us who do.