Hirdetés

Keresés

Új hozzászólás Aktív témák

  • alitak

    senior tag

    válasz Wizardmon #1447 üzenetére

    Na nézegettem a problémát, és kitúrtam a polcomról egy öröknaptárt. Megírtam hozzá a programot:

    program oroknaptar;
    uses newdelay,crt;
    var datum:record
    ev,honap,nap:integer;
    end;
    x,kodszam:integer;
    nap:string;

    begin
    clrscr;
    datum.ev:=0;datum.honap:=0;datum.nap:=0;x:=0;kodszam:=0;
    writeln('Add meg a szuletesed datumat, a honapot szammal add meg!');
    write('Ev: ');readln(datum.ev);
    write('Honap: ');readln(datum.honap);
    write('Nap: ');readln(datum.nap);
    if (datum.honap=1) or (datum.honap=2) then datum.ev:=datum.ev-1;
    x:=trunc(datum.ev/100);
    case x of
    15,19,23,27,31:kodszam:=kodszam+1;
    16,20,24,28,32:kodszam:=kodszam+0;
    17,21,25,29,33:kodszam:=kodszam+5;
    18,22,26,30,34:kodszam:=kodszam+3;
    end;
    x:=datum.ev mod 100;
    case x of
    0,28,56,84,6,34,62,90,17,45,73,23,51,79:kodszam:=kodszam+0;
    1,29,57,85,7,35,63,91,12,40,68,96,18,46,74:kodszam:=kodszam+1;
    2,30,58,86,13,41,69,97,19,47,75,24,52,80:kodszam:=kodszam+2;
    3,31,59,87,8,36,64,92,14,42,70,98,25,53,81:kodszam:=kodszam+3;
    4,32,60,88,10,38,66,94,21,49,77,27,55,83:kodszam:=kodszam+5;
    5,33,61,89,11,39,67,95,16,44,72,22,50,78:kodszam:=kodszam+6;
    9,37,65,93,15,43,71,99,20,48,76,26,54,82:kodszam:=kodszam+4;
    end;
    case datum.honap of
    10:kodszam:=kodszam+0;
    1,5:kodszam:=kodszam+1;
    8:kodszam:=kodszam+2;
    3,11:kodszam:=kodszam+3;
    6,2:kodszam:=kodszam+4;
    9,12:kodszam:=kodszam+5;
    4,7:kodszam:=kodszam+6;
    end;
    case datum.nap of
    1,8,15,22,29:kodszam:=kodszam+1;
    2,9,16,23,30:kodszam:=kodszam+2;
    3,10,17,24,31:kodszam:=kodszam+3;
    4,11,18,25:kodszam:=kodszam+4;
    5,12,19,26:kodszam:=kodszam+5;
    6,13,20,27:kodszam:=kodszam+6;
    7,14,21,28:kodszam:=kodszam+0;
    end;
    while kodszam>7 do kodszam:=kodszam-7;
    case kodszam of
    1:nap:='vasarnap';
    2:nap:='hetfo';
    3:nap:='kedd';
    4:nap:='szerda';
    5:nap:='csutortok';
    6:nap:='pentek';
    0:nap:='szombat';
    end;
    writeln;
    write(datum.ev,'. ',datum.honap,'. ',datum.nap,'-ika ',nap);
    end.

    A matematikai részét ne kérdezzétek, mert nem tudom, nem én találtam ki a naptárat, csak megírtam rá a programot. Viszont 1582. október 15-étől működik, egészen 3499 december 31-éig. És jól!

  • cucka

    addikt

    válasz Wizardmon #1447 üzenetére

    na ez az első amit nem értek, miért -1re állítják?
    gondolom azért, mert utána rögtön elindítja az évet beolvasó ciklust, és úgy gondolta, hogy így akkor is hibát fog dobni, ha nem írsz be semmit évnek. (rég volt pascal, de szerintem ez így fölösleges)

    itt minek kell ennyi felhajtás ha az 'ev' csak 1 és 99 között lehet?
    itt azért akkora felhajtás, mert aki írta a programot, az nem igazán gondolta át a problémát. valóban fölösleges.

    egyébként meg ez egy nagyon kusza, bonyolult és csúnya megoldás szerintem

  • N!tRo

    tag

    válasz Wizardmon #1447 üzenetére

    Ki csinálta ezt?
    Mert az nagy h*lye volt az biztos!
    Ezt a progit sokkal rövidebben is meg lehet csinálni!

Új hozzászólás Aktív témák