Hirdetés

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

  • Wizardmon

    csendes tag

    Megint megakadtam. Kaptam egy olyan feladatot,a miben öröknaptárt kell csinálni. Mivel nem sikerült összehozni, megnéztem a megoldást, de az is magas :F
    Valaki el tudná magyarázni, hogy mi mire való benne? Így néz ki:
    program oroknaptar;
    var
    ev,ho,nap : integer;
    x,jelzoszam : integer;
    nap_rendben,szokoev : boolean;
    szokonap : integer;
    const
    napok : array [0..6] of string[10] = ('vasárnap','hétfő','kedd','szerda','csütörtök','péntek','szombat');
    begin
    writeln('Írjon be egy dátumot, megmondom milyen napra esik!');
    ev := -1 na ez az első amit nem értek, miért -1re állítják?
    while (ev<1) or (ev>99) do;
    begin
    write('ev [1901-1999] : 19');
    readln(ev);
    end;
    szokoev := (ev mod 4 = 0) and (ev mod 100<>0) or (ev mod 400 =0);itt minek kell ennyi felhajtás ha az 'ev' csak 1 és 99 között lehet?
    szokonap := ord(szokoev);
    repeat
    write('hónap: ');
    readln(ho);
    until (ho>= 1) and (ho<=12);
    repeat
    nap_rendben := true;
    write('nap: ');
    readln(nap);
    if (nap<1) or (nap>31) then nap_rendben := false;
    if (((ho=4) or (ho=6) or (ho=9) or (ho=11)) and (nap=31) or ((ho=2) and (nap>28+szokonap)) then
    begin
    writeln('Ebben a hónapban nincs ilyen nap.');
    nap_rendben := false;
    end;
    until nap_rendben;
    case ho of
    1,10 : jelzoszam :=0;
    5 : jelzoszam :=1;
    8 : jelzoszam :=2;
    2,3,11 : jelzoszam :=3;
    6 : jelzoszam :=4;
    9,12 : jelzoszam :=5;
    4,7 : jelzoszam :=6;
    end;
    x := ev + ev div 4 + jelzoszam + nap;
    if ((ho=1) or (ho=2)) and szokoev then x := x-1;
    x := x mod 7;
    writeln('Az adott nap: ',napok[x]);
    end.
    Meg ha van elég időtök,akkor az egészet is elmondhatjátok. Már majdnem egy hete töröm rajt a fejem :F

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