• 5 odgovora
  • 4.033 pregleda
Zasto ne radi??? 19.04.2002. u 15:23 · pre 298 meseci #1
Evo ga program koji sam napisao u pascalu...zasto ne radi??
-----------------------------------------------------------------------
program abc;
var
I:longint; F, S:real;
begin
S:=0; F:=1;
For I:=1 to 2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2 do {inace umesto ovih dvojki treba da bude 2^50}
begin
F:=sin(i)+cos(i);
S:=S+F;
end;
writeln ('S=',S);
readln;
end.
---------------------------------------------------------------------------------------------
Potpis
Internet ne cini ljude glupima. Internet cini ljudsku glupost dostupnijom (TM by me)

Webhost Hosting Services
Re: Zasto ne radi??? 20.04.2002. u 19:55 · pre 298 meseci #3
Tacno, nema sanse da stane u longint.

Probaj sa do while ili repeat until petljama.
Re: Zasto ne radi??? 21.04.2002. u 00:00 · pre 298 meseci #4
Zanimljivo upravo sam naterao prog da radi sa 2^50...ali znate sta se desava?
Pa dobijete rezultat sa - predznakom i onda se komp zakucava na neodredjeno vreme (probao sa w98)....:)
Potpis
Internet ne cini ljude glupima. Internet cini ljudsku glupost dostupnijom (TM by me)

Webhost Hosting Services
Re: Zasto ne radi??? 21.04.2002. u 02:27 · pre 298 meseci #5
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.
Potpis
People who think they know everything tend to irritate those of us who do.
Re: Zasto ne radi??? 23.04.2002. u 17:37 · pre 298 meseci #6
Za Pascal ne znam, ali probaj u Delphiju sa {$APPTYPE CONSOLE} da umesto LongInt stavis Int64 (to jest 64-bitni integer).
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme