[ Nedeljko @ 09.01.2008. 11:03 ] @
Code:

#include <iostream>
#include <cstdlib>

using namespace std;


int main(int argc, char* argv[])
{
    if (argc!=2)
    {
        cout << "Upotreba : uskrs godina" << endl;

        return 0;
    }

    int g = atoi(argv[1]);
    int d = (15+g%19*19)%30;     // Ovo su te
    d += 10-(d+g+g/4)%7;         // dve linije
    char *mesec;

    if (d>30)
    {
        mesec = ". maja";
        d -= 30;
    }
    else
        mesec = ". aprila";

    cout << "Uskrs " << g << ". pada " << d << mesec << endl;

    return 0;
}

[ Časlav Ilić @ 10.01.2008. 10:00 ] @
Za one s jeftinijim ulaznicama:
Code:
$ ncal 2008 -o
27 april 2008

[ Nedeljko @ 10.01.2008. 16:16 ] @
Nemam pojma odakle ti komanda ncal (kod mene na Mandrivi ne radi), ali si svakako promašio forum. Ja sam priložio algoritam za određivanje datuma pravoslavnog uskrsa po Gregorijanskom kalendaru.
[ vlaiv @ 10.01.2008. 17:12 ] @
Citat:
Nedeljko: Nemam pojma odakle ti komanda ncal (kod mene na Mandrivi ne radi), ali si svakako promašio forum. Ja sam priložio algoritam za određivanje datuma pravoslavnog uskrsa po Gregorijanskom kalendaru.


Sto se tice ncal : http://unixhelp.ed.ac.uk/CGI/man-cgi?cal

Prilozen je source code a ne algoritam (kad smo vec kod toga, ne bi bilo zgoreg da pojasnis matematiku iza koda, za one koji
nisu raspolozeni da rade mentalnu gimnastiku).

Takodje nisam siguran koliko je opaska o promasenom forumu na mestu.

[ Nedeljko @ 12.01.2008. 11:18 ] @
Citat:
vlaiv: Prilozen je source code a ne algoritam.

Koliko ja znam, programski jezici su ništa drugo do formalni jezici za zapisivanje algoritama i kao takvi predstavljaju način da mašina"proguta" algoritam koji smo zamislili. Source je nejprecizniji način zapisivanja algoritma.
Citat:
vlaiv: kad smo vec kod toga, ne bi bilo zgoreg da pojasnis matematiku iza koda, za one koji nisu raspolozeni da rade mentalnu gimnastiku.

Da bih objasnio matematiku, prvo bih morao da priložim tablice i algoritam koji koristi Crkva, pa da dokažem da moje formule proizvode isti rezultat. No rekao bih par reči o algoritmu. On bi se u ekvivalentnom obliku mogao napisati ovako:
Code:

d = (15+g%19*19)%30+4;
d += 6-(d+g+g/4);

Prva linija određuje redni broj d dana (1 predstavlja 1. april) sa osobinom da uskrs mora pasti ili u taj dan, ili u neki od 7 uzastopnih dana počev od tog dana (takav broj d se ponavlja periodično sa periodom 19). Drugi red služi da uskrs pozicionira u onaj od tih 7 uzastopnih dana koji pada u nedelju.
Citat:
vlaiv: Takodje nisam siguran koliko je opaska o promasenom forumu na mestu.

Nisam mislio da flejmujem. Žao mi je ako sam taho shvaćen. Samo mi je Časlavov post više ličio na nešto što se više tiče gotovog, aplikativnog softvera, nego Art of Programming-a.
[ vlaiv @ 12.01.2008. 14:08 ] @
Citat:
Nedeljko
... Source je nejprecizniji način zapisivanja algoritma.


Slazem se sa tobom, samo sam hteo da naglasim da shodno sa tematikom foruma,
uz source (koji ne moraju svi ucesnici diskusije razumeti u zavisnosti koliko su upoznati
sa konkretnim programskim jezikom) nije loshe i objasniti sam algoritam.

Ja sa druge strane cesto imam obicaj da algoritam zapisujem u nekom neformalnom
maniru kombinujuci govorni (engleski) sa nekim "meta" jezikom u nadi da ce algoritam
razumeti sto vise clanova. Ne znam koliko je to korektno ali se nadam da funkcionise :)

U svakom slucaju, zahvaljujuci tvom trudu, forumla je tu za one koji to zele implementirati
u svom software-u ili samo razumeti kako se racuna. Za one koji zele da provere na koji
datum pada, tu je Časlavov post :)

[ Nedeljko @ 15.06.2008. 10:40 ] @
Da prložim i C varijantu.

Code:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    const char *mesec;

    if (argc!=2)
    {
        printf("Upotreba : uskrs godina\n");

        return 0;
    }

    int g = atoi(argv[1]);
    int d = (15+g%19*19)%30;     // Ovo su te
    d += 10-(d+g+g/4)%7;         // dve linije

    if (d>30)
    {
        mesec = ". maja";
        d -= 30;
    }
    else
        mesec = ". aprila";

    printf("Uskrs %d. pada %d%s\n", g, d, mesec);

    return 0;
}



Smisao je dobijanje manjeg izvršnog fajla. Šaljem i kompajliranu verzije za Windows i Linux operativne sisteme.
[ Srđan Pavlović @ 15.06.2008. 15:19 ] @
A gde je hendlovanje gresaka? :)

Salim se, odlican program.
[ sasa022 @ 15.06.2008. 18:05 ] @
http://milan.milanovic.org/math/srpski/uskrs/uskrs.html
Izracunavanje Datuma Uskrsa
Ravnodnevice i Solsticiji
Konvertor Datuma
[ Nedeljko @ 01.07.2008. 13:18 ] @
A, dje ima da se kupi nacal sa source-om (samo me source zanima)?
[ Nedeljko @ 27.07.2008. 19:49 ] @
Citat:
Kernel-1: A gde je hendlovanje gresaka? :)


Imam wxWidgets i Qt verzije, koje ne dozvoljavaju unos gluposti.
[ Nedeljko @ 20.04.2009. 17:19 ] @
Ako nekoga zanima gregorijanski Uskrs, samo kucajte "Computus" na Wikipedia-i.

http://en.wikipedia.org/wiki/Computus