zacni:-dobry-den,consult(dbaze),consult(setof),repeat,co_chces(Akce),udelej(Akce), Akce=konec,!,bud_zdrav,listing(at,dbaze). co_chces(Akce):-nl,write('Nabizim ti tyto akce'),nl,write('pridej_ukol'),nl, write('zrus_ukol'),nl,write('vypis_ukol'),nl. udelej(konec):-!. udelej(pridej_ukol,Ukol):-validuj(Ukol),assertz(Ukol),!. udelej(pridej_ukol,Ukol):-!,write('Spatne zadany ukol'). udelej(zrus_ukol,Ukol1):-validuj2(Ukol1,Ukol2),setof(Ukol2,Ukol1,MU),nl, write('zrusilo by se'),write(MU),nl,write('je to vporadku ?'), write('...ano/ne'),read(ano),retractset(MU),!. udelej(zrus_ukol,Ukol):- nl,write('Nic jsem nezrusil'),!. udelej(vypis_ukol,Ukol):-validuj2(Ukol,Ukol2),setof(Ukol2,Ukol,MU), nl,write(MU),!. ?-op(160,xfx,at). ?-op(155,fx,od). ?-op(150,xfx,ze). ?-op(145,xfx,pro). ?-op(140,xfx,do). dobry_den:-write('Vita vas program pro sledovani ukolu. Program umoznuje ...'),nl, write('napis dnesni datum ve tvaru d/m/r, napr. 20/3/87.'),read(D), read(M),read(R),asserta(dnes_je(D/M/R)),!. bud_zdrav:-retract(dnes_je(D/M/R)),write('Program se louci a preje splneni vsech ukolu'), nl,write('jeste budu chvili pracovat na ulozeni souboru'). validuj(od Z ze DZ pro CH do D at C):-nonvar(Z),nonvar(CH),pod_sebou(Z,CH),D=_/_/_, DZ=_/_/_. validuj2((U1,Cile),U1):-!,validuj2(U,U). validuj2(od Z ze DZ pro CH do DD at C, od Z ze DZ pro CH do DD at C):-DZ=_/_/_,DD=_/_/_. U1):-!,validuj2(U,U). validuj2(od Z ze DZ pro CH do DD at