Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Racunanje dali je godina prestupna ? HITNO.

[es] :: Art of Programming :: Racunanje dali je godina prestupna ? HITNO.

[ Pregleda: 18425 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Free_Sex
Aleksandar
Beograd

Član broj: 9601
Poruke: 616
*.beotel.net



Profil

icon Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 16:54 - pre 249 meseci
Kad uopste ne mogu da se setim kako se racuna dali je godina prestupna ?

Znam da treba jos da se doda na kraju /400 da bi to bilo to ali
kad sam skroz zaboravio a nigde ne mogu da nadjem ?
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 16:57 - pre 249 meseci
Pravilo 1. Svaka cetvrta godina je prestupna.
Pravilo 2. Izuzetak za pravilo 1. je da svaka stota godina nije prestupna.
Pravilo 3. Izuzetak za pravilo 2. je da svaka 400-ta godina jeste prestupna.

Mislim da nema dljih izuzetaka. Ako neko zna neka dopuni...
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.et.tudelft.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 17:12 - pre 249 meseci
Isto to, samo malo lakše za razumevanje: za godine čiji je broj deljiv sa 100, prestupna je ona koja je deljiva sa 400. Za ostale godine (ne-deljive sa 100) prestupna je ona koja je deljiva sa 4.

A zašto je lakše za razumevanje? Pa zato jer se odmah prevodi u program:

Code:

bool prestupna(int godina)
{
  if ( godina % 100 == 0) {
    if ( godina % 400 == 0) {
      return true;
    } else {
      return false;
    }
  } 
  
  if ( godina % 4 == 0) {
      return true;
  }
  return false;
}


f


[Ovu poruku je menjao filmil dana 27.10.2003. u 19:26 GMT]

[Ovu poruku je menjao filmil dana 27.10.2003. u 19:28 GMT]
 
Odgovor na temu

Free_Sex
Aleksandar
Beograd

Član broj: 9601
Poruke: 616
*.beotel.net



Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 17:20 - pre 249 meseci
Citat:
filmil:
Isto to, samo malo lakše za razumevanje: za godine čiji je broj deljiv sa 100, prestupna je ona koja je deljiva sa 400. Za ostale godine (ne-deljive sa 100) prestupna je ona koja je deljiva sa 4.

f


Meni je ipak lakse da razumem ono prvo ... al nema veze hvala u svakom slucaju.
 
Odgovor na temu

Free_Sex
Aleksandar
Beograd

Član broj: 9601
Poruke: 616
*.beotel.net



Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 18:44 - pre 249 meseci
Kad je vec Art Of Programming ....

Code:

prestupna = ( godina % 100 ==0)  && ( godina % 400 ==0 ) || (godina % 4 ==0 );


A i zar vas laslo nije iscimavao da skracujete kod i vreme izvrsavanja, upotrebu memorije i sl ? Znas li ti covece sta se desava kad pozoves funkciju, pa tu radi i stek, i adresiranja razna i gluposti .... :)
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.verat.net

ICQ: 44582291


+58 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 22:57 - pre 249 meseci
Zar nije najlakse da podelis broj godina sa 4 i ako ima ostatka godina nije prestupna?
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 23:09 - pre 249 meseci
Citat:
Mikky:
Zar nije najlakse da podelis broj godina sa 4 i ako ima ostatka godina nije prestupna?


Da, ali kao sto je gore napisano, svaka 100-ta i svaka 400-ta godina nije prestupna. Znaci :
Code:

var
 prestupna : Boolean;
begin
 prestupna := FALSE;
 If (trenutna_godina mod 4 = 0) and
    (trenutna_godina mod 100 > 0) and
    (trenutna_godina mod 400 > 0) then
  prestupna := TRUE
 ....
end.



[Ovu poruku je menjao Marko Paunovic dana 28.10.2003. u 01:12 GMT]
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 23:10 - pre 249 meseci
Pa da li ste vas dvojica citali prethodne postove? U mom postu ste mogli da vidite da postoji "pravilo 2." koje je izuzetak od tog sto si ti rekao. Pa jos pravilo 3 kao izuzetak pravila 2.

[Ovu poruku je menjao Shadowed dana 28.10.2003. u 01:15 GMT]
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.27.10.2003. u 23:15 - pre 249 meseci
Citat:
Shadowed:
Pa da li si citao prethodne postove? U mom postu si mogao da vidis da postoji "pravilo 2." koje je izuzetak od tog sto si ti rekao.


Heh, prvo sam napisao poruku, pa sam onda video tvoj post i izmenio poruku, a ti si u medjuvremenu postovao ovu gore poruku. Greska od moje strane, brzopleto sam odgovorio, bez detaljnijeg citanja prethodnih postova.
 
Odgovor na temu

Mihailo Kolundzija
Novi Sad

Član broj: 11323
Poruke: 100
*.ftn.ns.ac.yu



+1 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.28.10.2003. u 01:45 - pre 249 meseci
Citat:
Free_Sex:
Kad je vec Art Of Programming ....

Code:

prestupna = ( godina % 100 ==0)  && ( godina % 400 ==0 ) || (godina % 4 ==0 );


A i zar vas laslo nije iscimavao da skracujete kod i vreme izvrsavanja, upotrebu memorije i sl ? Znas li ti covece sta se desava kad pozoves funkciju, pa tu radi i stek, i adresiranja razna i gluposti .... :)


I šta se desi kad je godina==200?
 
Odgovor na temu

Free_Sex
Aleksandar
Beograd

Član broj: 9601
Poruke: 616
*.verat.net



Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.28.10.2003. u 12:39 - pre 249 meseci
Pa 200 % 4 jeste 0 .... dakle prestupna je .... mada dali je stvarno prestupa ne mogu da proverim posto kompovi racunaju vreme od cinimi se 1970 ? U sekundama jeli ... (linuz/ unix) a glupi vindov da ni ne pominjem .... u svakom slucaju me zanimaju samo "buduce" godine :)

A sto sta se desi kad je godine = 200 ?
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.28.10.2003. u 14:01 - pre 249 meseci
pa šta se desi, tvoj program će reći da jeste, a zbog pravila 2 nije.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

formeye
Ivan Čukić
KDE developer, Free Software Network
Serbia
BGD

Član broj: 5188
Poruke: 388
195.252.80.*

Sajt: ivan.fomentgroup.org


Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.30.10.2003. u 18:37 - pre 249 meseci
Kao sto neko rece, ovo je Art of Programming

Code:

prestupna = !(godina % 4)  &&  ((godina % 100) || !(godina % 400));



While you were hanging yourself on someone else's words
Dying to believe in what you heard
I was staring straight into the shining sun
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.31.10.2003. u 08:14 - pre 249 meseci
Drago mi je da sam video sve ovo ovde ...
Malo sam zatecen, ali ajde ..., mozda ste mladi, ili vas mrzi da proveravate programe ili jednostavno ne znate de morganova pravila ...

Kao sto neko rece, programiranje je samo nacin kodiranje, onogo sto intuitivno znamo da uradimo (a teze Churcha to lepo potvrdjuje).

Dakle ako neko kaze:

Godina je prestupna ako:
(je deljiva sa 4 i nije deljiva sa 100) ili je deljiva sa 400

To je lepo intutivno napisano, ajde sada da kodiramo, jelte.

U cemu cemo, ajde C posto se puno vas lozi na C.

godina neka bude promenjljiva sa vrednoscu godine

(godina %4 ==0 && godina %100 !=0) || godina %400=0

Ovaj izraz vraca integer koji ce biti 0 ako godina nije prestupna ili !=0 ako jeste.

Ako se nekome ne svidja neka koristi malo optimizacije i sredi
podsetio bi da (X)==0 mozemo zameniti sa !(X)
A (X)!=0 mozemo zameniti sa (X)

Sada gorenapisani izraz moze da se napise kao:

(!(godina%4) && (godina%100)) || !(godina%400)

Naravno sada uzmite tabelu prioriteta operatora i skidajte suvisne zagrade, ako vam je stalo da ustedite koji simbol.

Ako se ovo zove Art of Programming unesite malo umetnosti, ili bar umesnosti...

Kada vas vec smaram, ajde igrajte se i probajte da vidite sta ovo radi:

Code:

int _[16];m(x,i,f,z){for(f=z=-9,i=0;i<16;i++)f=_[i]==x?i:f,z=_[i]?z:i;i
=abs(f-z);if((i==1&&f/4==z/4)||i==4)i=_[f],_[f]=_[z],_[z]=i;}main(i,j){
srand(time(0));for(i=0;i<9999;i++)i<15?_[i]=i+1:m(rand()%15+1);for(;;){
for(j=i=0;i<16;j+=_[i]==++i)printf(_[i]?"%c%2d":"%c  ",i%4?' ':'\n',_[i
]);if(j>14&&puts("\n\nYou WIN"))break;printf("\n\nMove ? ");scanf("%d",
&i)||scanf("%*[^0-9]");m(i);}} /* http://alas.matf.bg.ac.yu/~chupcko */


CHUPCKO
 
Odgovor na temu

sspasic
Sasa Spasic

Član broj: 3261
Poruke: 175
*.medianis.net

Jabber: sspasic@elitesecurity.org
ICQ: 35454521


Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.31.10.2003. u 08:35 - pre 249 meseci
Citat:
chupcko:
U cemu cemo, ajde C posto se puno vas lozi na C.

godina neka bude promenjljiva sa vrednoscu godine

(godina %4 ==0 && godina %100 !=0) || godina %400=0

Ovaj izraz vraca integer koji ce biti 0 ako godina nije prestupna ili !=0 ako jeste.

Ako se nekome ne svidja neka koristi malo optimizacije i sredi
podsetio bi da (X)==0 mozemo zameniti sa !(X)
A (X)!=0 mozemo zameniti sa (X)

Sada gorenapisani izraz moze da se napise kao:

(!(godina%4) && (godina%100)) || !(godina%400)


Da bismo bili precizni do kraja - ovo u C-u nije optimizacija, posto je !A i A==0, odnosno A (kao uslov) i A != 0 potpuno ista stvar.
I semanticki i u odnosu na to kakav kod generise.
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.31.10.2003. u 13:10 - pre 249 meseci
O da, izvinjavam se, optimizacija po pitanju napisanog koda ...

Slucajno to generise isti kod (sto u mnogome zavisi od kompajlera) i znaci isto (to vec nije slucajno), kao kada bi u paskalu za neki boolean b pitali:

if b=true

a dovoljno je

if b

Dakle to je takozvana optimizacija po kodu, a da li generise isti kod ... (probaj da se igras sa iskljucivanjim raznih optimizacija u kompajlera, pa cemo videti).

Mada mi je vise akcenat bio ka tome sto mi nije jasno sto ne sednu i napisu lepo kod koji radi :))).



CHUPCKO
 
Odgovor na temu

formeye
Ivan Čukić
KDE developer, Free Software Network
Serbia
BGD

Član broj: 5188
Poruke: 388
*.beg.sezampro.yu

Sajt: ivan.fomentgroup.org


Profil

icon Re: Racunanje da li je godina prestupna? HITNO.31.10.2003. u 20:26 - pre 249 meseci
Citat:
chupcko:
Drago mi je da sam video sve ovo ovde ...
Malo sam zatecen, ali ajde ..., mozda ste mladi, ili vas mrzi da proveravate programe ili jednostavno ne znate de morganova pravila ...

Godina je prestupna ako:
(je deljiva sa 4 i nije deljiva sa 100) ili je deljiva sa 400



Da neces da kazes da
Code:

prestupna = !(godina % 4)  &&  ((godina % 100) || !(godina % 400));

ne radi kako bi trebalo?

Godina je prestupna ako je deljiva sa cetiri i (nije deljiva sa 100 ili je deljiva sa 400)

Ovo radi za ne Milankovicevske kalendare (on je uzeo od nekog tipa i da se proverava ostatak pri deljenju sa 7...)
While you were hanging yourself on someone else's words
Dying to believe in what you heard
I was staring straight into the shining sun
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Racunanje da li je godina prestupna? HITNO.03.11.2003. u 08:15 - pre 249 meseci
Ne, ja sam samo izkodirao iskaz:
godina je prosta ako je delijiva sa 4 a nije sa 100
ili je deljiva sa 400

...
nema tu puno filozofije, moze samo da se rade razne transformacije iskaza...

Ajde crtajte tablice i proveravajte :)

Sto se mene tice, stvarno mi nije jasno u cemu je problem, ali ako neko zna neka mi pojasni :)

CHUPCKO
 
Odgovor na temu

formeye
Ivan Čukić
KDE developer, Free Software Network
Serbia
BGD

Član broj: 5188
Poruke: 388
*.beg.sezampro.yu

Sajt: ivan.fomentgroup.org


Profil

icon Re: Racunanje da li je godina prestupna? HITNO.03.11.2003. u 12:24 - pre 249 meseci
Citat:
chupcko:
Ne, ja sam samo izkodirao iskaz:
godina je prosta ako je delijiva sa 4 a nije sa 100
ili je deljiva sa 400

Ja se zabrinuh da si rekao da mi kod nije ok ;)


Citat:

...
nema tu puno filozofije, moze samo da se rade razne transformacije iskaza...

Ajde crtajte tablice i proveravajte :)

Sto se mene tice, stvarno mi nije jasno u cemu je problem, ali ako neko zna neka mi pojasni :)

Ni meni. Tresla se gora, rodi se, pa..., nista...
While you were hanging yourself on someone else's words
Dying to believe in what you heard
I was staring straight into the shining sun
 
Odgovor na temu

Revisor
Sofija - NBGD

Član broj: 18843
Poruke: 59
*.matf.bg.ac.yu

Sajt: alas.matf.bg.ac.yu/~mr021..


Profil

icon Re: Racunanje dali je godina prestupna ? HITNO.02.02.2004. u 14:59 - pre 246 meseci
(post je editovan)
Ne zelim nikom da stajem na zulj. Samo primetih par mogucih
optimizacija:

Code:
 prestupna = !(godina & 3)  &&  (godina % 100 || !(godina/100 & 3));

Restless one,
 
Odgovor na temu

[es] :: Art of Programming :: Racunanje dali je godina prestupna ? HITNO.

[ Pregleda: 18425 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.