/* program pro sledovani ukolu */ /* ukoly jsou v nejakem prologovskem souboru, tedy *.plg */ /* tvar ukolu: */ /* ukol(Co_se_dela,Kdo_dela,Do_kdy,Zadal,Kdy_zadal,Kdy_splneno) */ /* data jsou ve tvaru */ /* datum(den,mesic,rok) */ /* neni-li ukol splnen je misto */ /* Kdy_splneno uvedeno "ne" */ /* napr. ukol('spani',pepa,datum(1,1,87),hana,datum(31,12,86),ne).*/ /* Navod: 1. napis ?-zacni. 2. muzes chtit ukoly_dnes ukoly_mesic splnil ukoly_pro(Nekoho) ukoly_od(Nekoho_jineho) novy_ukol datum 3. na konci napis skonci !!!!!!!!!!!!!!!!!! */ ukoly_od(Kdo):- pis_dnes, ukol(CO,KOMU,TERMIN,Kdo,_,U), write(CO),tab(7),write(KOMU),TERMIN=datum(D,M,R),tab(3),write([termin,D,M,R]), udelano(U),nl,fail. novy_ukol:- write('Pis kdo zadava '),read(KDO),nl, write('Pis komu zadava '),read(KOMU),nl, write('Pis co v '' '' '),read(CO),nl, write('Pis do kdy den. Enter mesic. Enter rok. Enter'), nl,read(DD),read(MM),read(RR),nl, dnes(D,M,R), asserta(ukol(CO,KOMU,datum(DD,MM,RR),KDO,datum(D,M,R),ne)). udelano(U) :-( U=ne ; ( U=datum(D,M,R), write([ ' splneno ',D,M,R]) ) ). dnes(2,7,87). datum :- write( 'pis dnesni datum '), nl, write( ' pis den DD. '), read(D), nl, retract(dnes(_,_,_)), write( 'pis mesic MM. '), read(M), nl, write( 'pis rok RR. '), read(R), asserta(dnes(D,M,R)). ukoly_mesic :- dnes(_,M,R), pis_dnes, ukol(C,K,datum(DD,MM,RR),_,_,ne), M=MM, R=RR, write(C), tab(7), write(K), write([ 'termin ',DD,MM,RR]), nl, fail. skonci :- soubor(Soubor), listing(ukol,Soubor), retract(soubor(_)), trace, old_buffer, new_program, notrace. splnil :- write( ' Kdo splnil ? '), read(KDO), repeat, ukol(CO,KDO,_,_,_,ne), nl, write( ' Je to tohle '), write(CO), nl, nl, write( ' Pis ano./ne. '), read(Souhlas), Souhlas=ano, retract(ukol(CO,KDO,T,S,TT,ne)), dnes(D,M,R), asserta(ukol(CO,KDO,T,S,TT,datum(D,M,R))). pis_dnes :- nl, nl, write( ' Dnesni datum: '), dnes(D,M,R), write([D,M,R]), nl, nl. zacni :- datum, dnes(D,M,R), pis_dnes, write( 'napis jmeno souboru s ukoly '), read(Soubor), asserta(soubor(Soubor)), reconsult(Soubor). ukoly_dnes :- dnes(D,M,R), pis_dnes, ukol(C,K,datum(DD,MM,RR),_,_,ne), mensi(DD,MM,RR,D,M,R), write(C), tab(6), write(K), nl, fail. mensi(_,_,R,_,_,RR) :- R