\documentclass[a4paper]{article}
\setlength{\oddsidemargin}{-1cm} \setlength{\topmargin}{-3cm}
\setlength{\textwidth}{18cm} \setlength{\textheight}{26cm}
\pagestyle{empty}

\def\DJ{\leavevmode\setbox0=\hbox{D}\kern0pt
 \rlap{\kern.04em\raise.188\ht0\hbox{-}}D}
\def\dj{\leavevmode\setbox0=\hbox{d}\kern0pt
 \rlap{\kern.215em\raise.46\ht0\hbox{-}}d}

\usepackage{amssymb}
\usepackage{comment}
\usepackage{color}

\begin{document}
\begin{small}

\begin{center}
\textbf{Prevodioci i interpretatori - mart 2007. - prakti\v cni
deo ispita}
\end{center}
\begin{enumerate}
\item Svaki red datoteke \verb"imena.txt" sadr\v zi sifru imena i
puno ime i prezime, me\dj usobno odvojenih tabulatorom. Npr.
\begin{footnotesize}
\begin{verbatim}
pepe    Pera Peric
anan    Ana Anic
\end{verbatim}
\end{footnotesize}

Svaki red datoteke \verb"predmeti.txt" sadr\v zi sifru predmeta i pun naziv predmeta,
me\dj usobno odvojenih tabulatorom. Npr.
\begin{footnotesize}
\begin{verbatim}
pii     Prevodioci i interpretatori
pj      Programski jezici
\end{verbatim}
\end{footnotesize}

Datoteka \verb"raspored.txt" sadr\v zi ime predava\v ca, ime grupe kojoj se predaje,
ime predmeta, oznaku da li su u pitanju predavanja, ve\v zbe ili praktikum, dan, sat i salu u kojoj se
vr\v si predavanje, me\dj usobno odvojenih znakom \verb"_". Pored ovoga, prisutni su i redovi koji
ne sadr\v ze ovakve informacije. Npr.
\begin{footnotesize}
\begin{verbatim}
Prevodioci cetvrtkom:
pepe_3r_pii.p_cet_18_sala718
Praktikum je ponedeljkom:
anan_3r_pii.k_pon_8_salaDLAB
...
\end{verbatim}
\end{footnotesize}

Napisati perl skript koji na osnovu ove tri datoteke generi\v se veb sajt koji sadr\v zi
podatke o rasporedu \v casova prikazane na pregledan na\v cin. Raspored je mogu\' ce
pregledati po grupama, po predava\v cima i po salama. Za svaku grupu, salu, odnosno predava\v ca
odgovaraju\' ca HTML strana sadr\v zi tabelu kojoj su kolone dani, a vrste sati (od 8 do 21). U
\' celijama tabele pi\v se puno ime i prezime predava\v ca, naziv predmeta i sala u kojoj
se predavanje odr\v zava.

\item Pod {\em kona\v cnim domenom} $A$ podrazumeva se bilo koji
kona\v cni skup celih brojeva. Relacija $R$ nad domenima $A_1$,
$A_2$, \ldots, $A_n$ je bilo koji podskup skupa $A_1\times
A_2\times \ldots\times A_n$. Napisati sistem koji omogu\' cava
ispitivanje svojstva relacija nad kona\v cnim domenima.

Kona\v cni domeni se defini\v su klju\v cnom re\v cju \verb"domen"
kao intervali \verb"a..b", ili navo\dj enjem njihovih elemenata u
viti\v castim zagradama. Relacije se navode klju\v cnom re\v cju
\verb"relacija", zatim navo\dj enjem jednog ili vi\v se domena
relacije i nakon toga definisanjem relacije u obliku skupa
n-torki. Relacija \verb"=" je automatski na raspolaganju. Svojstva
koja se ispituju se opisuju re\v cenicama logike prvog reda na
datom relacijskom jeziku. Konjunkcija se ozna\v cava operatorom
\verb"/\", disjunkcija operatorom \verb"\/", implikacija
operatorom \verb"-->", negacija operatorom \verb"!". Uz
kvantifikatore se navodi kvantifikatorska promenljiva i njen
domen. Univerzalni kvantifikator se ozna\v cava sa
\verb"A(x::domain). formula", a egzistencijalni sa
\verb"E(x::domain). formula". Formule se defini\v su kori\v s\'
cenjem klju\v cne re\v ci \verb"formula". Klju\v cnom re\v cju
\verb"ispitaj", zahteva se izra\v cunavanje istinitosne vrednosti
date re\v cenice u modelu odredjenom do tada definisanim
relacijama.

\begin{footnotesize}
\begin{verbatim}
> domen do_4 = 1..4;
        Domen do_4 je definisan kao skup {1, 2, 3, 4}.
\end{verbatim}
\end{footnotesize}
\end{enumerate}


\begin{center}
\textbf{Prevodioci i interpretatori - mart 2007. - prakti\v cni
deo ispita}
\end{center}
\begin{enumerate}
\item Svaki red datoteke \verb"imena.txt" sadr\v zi sifru imena i
puno ime i prezime, me\dj usobno odvojenih tabulatorom. Npr.
\begin{footnotesize}
\begin{verbatim}
pepe    Pera Peric
anan    Ana Anic
\end{verbatim}
\end{footnotesize}

Svaki red datoteke \verb"predmeti.txt" sadr\v zi sifru predmeta i pun naziv predmeta,
me\dj usobno odvojenih tabulatorom. Npr.
\begin{footnotesize}
\begin{verbatim}
pii     Prevodioci i interpretatori
pj      Programski jezici
\end{verbatim}
\end{footnotesize}

Datoteka \verb"raspored.txt" sadr\v zi ime predava\v ca, ime grupe kojoj se predaje,
ime predmeta, oznaku da li su u pitanju predavanja, ve\v zbe ili praktikum, dan, sat i salu u kojoj se
vr\v si predavanje, me\dj usobno odvojenih znakom \verb"_". Pored ovoga, prisutni su i redovi koji
ne sadr\v ze ovakve informacije. Npr.
\begin{footnotesize}
\begin{verbatim}
Prevodioci cetvrtkom:
pepe_3r_pii.p_cet_18_sala718
Praktikum je ponedeljkom:
anan_3r_pii.k_pon_8_salaDLAB
...
\end{verbatim}
\end{footnotesize}

Napisati perl skript koji na osnovu ove tri datoteke generi\v se veb sajt koji sadr\v zi
podatke o rasporedu \v casova prikazane na pregledan na\v cin. Raspored je mogu\' ce
pregledati po grupama, po predava\v cima i po salama. Za svaku grupu, salu, odnosno predava\v ca
odgovaraju\' ca HTML strana sadr\v zi tabelu kojoj su kolone dani, a vrste sati (od 8 do 21). U
\' celijama tabele pi\v se puno ime i prezime predava\v ca, naziv predmeta i sala u kojoj
se predavanje odr\v zava.

\item Pod {\em kona\v cnim domenom} $A$ podrazumeva se bilo koji
kona\v cni skup celih brojeva. Relacija $R$ nad domenima $A_1$,
$A_2$, \ldots, $A_n$ je bilo koji podskup skupa $A_1\times
A_2\times \ldots\times A_n$. Napisati sistem koji omogu\' cava
ispitivanje svojstva relacija nad kona\v cnim domenima.

Kona\v cni domeni se defini\v su klju\v cnom re\v cju \verb"domen"
kao intervali \verb"a..b", ili navo\dj enjem njihovih elemenata u
viti\v castim zagradama. Relacije se navode klju\v cnom re\v cju
\verb"relacija", zatim navo\dj enjem jednog ili vi\v se domena
relacije i nakon toga definisanjem relacije u obliku skupa
n-torki. Relacija \verb"=" je automatski na raspolaganju. Svojstva
koja se ispituju se opisuju re\v cenicama logike prvog reda na
datom relacijskom jeziku. Konjunkcija se ozna\v cava operatorom
\verb"/\", disjunkcija operatorom \verb"\/", implikacija
operatorom \verb"-->", negacija operatorom \verb"!". Uz
kvantifikatore se navodi kvantifikatorska promenljiva i njen
domen. Univerzalni kvantifikator se ozna\v cava sa
\verb"A(x::domain). formula", a egzistencijalni sa
\verb"E(x::domain). formula". Formule se defini\v su kori\v s\'
cenjem klju\v cne re\v ci \verb"formula". Klju\v cnom re\v cju
\verb"ispitaj", zahteva se izra\v cunavanje istinitosne vrednosti
date re\v cenice u modelu odredjenom do tada definisanim
relacijama.

\begin{footnotesize}
\begin{verbatim}
> domen do_4 = 1..4;
        Domen do_4 je definisan kao skup {1, 2, 3, 4}.
\end{verbatim}
\end{footnotesize}
\end{enumerate}



\newpage
\begin{footnotesize}
\begin{verbatim}
> domen neparni_do_4 = {1, 3};
        Domen neparni_do_4 je definisan kao skup {1, 3}.
> relacija R(do_4, neparni_do_4) = {(1, 3), (2, 1), (3, 3), (4, 1)};
        Relacija R je uspesno definisana.
> relacija S(do_4, do_4, do_4) = {(1, 1, 1), (1, 2, 3), (3, 2, 1)};
        Relacija S je uspesno definisana.
> relacija T(do_4, neparni_do_4) = {(1, 2)};
        Greska: Definicija relacije T je pogresna. Preskacem.
> formula 1R3 = R(1, 3);
        Formula 1R3 je uspesno definisana.
> ispitaj 1R3;
        Odgovor: TACNO
> formula svojstvo_relacije_S = !(S(1, 1, 1) \/ S(2, 1, 3));
        Formula svojstvo_relacije_S je uspesno definisana.
> formula R_je_funkcija = A(x::do_4). A(y1::neparni_do_4). A(y2::neparni_do_4).
                                (R(x, y1) /\ R(x, y2) --> y1 = y2);
        Formula R_je_funkcija je uspesno definisana.
> ispitaj svojstvo_relacije_S;
        Odgovor: NETACNO
> ispitaj R_je_funkcija;
        Odgovor: TACNO
> relacija R(do_4, neparni_do_4) = {(1, 1), (1, 3), (2, 1), (2, 3)};
        Relacija R je uspesno definisana.
> ispitaj R_je_funkcija;
        Odgovor: NETACNO
\end{verbatim}
\end{footnotesize}


Predlog redosleda re\v savanja zadatka:
\begin{enumerate}
    \item Odabrati strukturu podataka za reprezentovanje kona\v cnih skupova i
          omogu\' citi njihovo definisanje (\verb"domen" direktivu).
    \item Definisati strukturu podataka za reprezentovanje relacije i
    omogu\' citi njihovo definisanje (\verb"relacija" direktivu). U po\v cetku
    presko\v citi proveru korektnosti.
    \item Definisati strukturu podataka za reprezentovanje formula (pitanja)
    i omogu\' citi definisanje i odgovaranje (\verb"formula", \verb"ispitaj") isklju\v civo na atomi\v cna pitanja
    ($R(x_1, \ldots, x_n)$).
    \item Omogu\' citi pojavu operatora \verb"/\", \verb"\/", \verb"-->" i \verb"!" u pitanjima.
    \item Omogu\' citi pojavu kvantifikatora u pitanjima.
\end{enumerate}

\vspace{1cm}
\begin{footnotesize}
\begin{verbatim}
> domen neparni_do_4 = {1, 3};
        Domen neparni_do_4 je definisan kao skup {1, 3}.
> relacija R(do_4, neparni_do_4) = {(1, 3), (2, 1), (3, 3), (4, 1)};
        Relacija R je uspesno definisana.
> relacija S(do_4, do_4, do_4) = {(1, 1, 1), (1, 2, 3), (3, 2, 1)};
        Relacija S je uspesno definisana.
> relacija T(do_4, neparni_do_4) = {(1, 2)};
        Greska: Definicija relacije T je pogresna. Preskacem.
> formula 1R3 = R(1, 3);
        Formula 1R3 je uspesno definisana.
> ispitaj 1R3;
        Odgovor: TACNO
> formula svojstvo_relacije_S = !(S(1, 1, 1) \/ S(2, 1, 3));
        Formula svojstvo_relacije_S je uspesno definisana.
> formula R_je_funkcija = A(x::do_4). A(y1::neparni_do_4). A(y2::neparni_do_4).
                                (R(x, y1) /\ R(x, y2) --> y1 = y2);
        Formula R_je_funkcija je uspesno definisana.
> ispitaj svojstvo_relacije_S;
        Odgovor: NETACNO
> ispitaj R_je_funkcija;
        Odgovor: TACNO
> relacija R(do_4, neparni_do_4) = {(1, 1), (1, 3), (2, 1), (2, 3)};
        Relacija R je uspesno definisana.
> ispitaj R_je_funkcija;
        Odgovor: NETACNO
\end{verbatim}
\end{footnotesize}


Predlog redosleda re\v savanja zadatka:
\begin{enumerate}
    \item Odabrati strukturu podataka za reprezentovanje kona\v cnih skupova i
          omogu\' citi njihovo definisanje (\verb"domen" direktivu).
    \item Definisati strukturu podataka za reprezentovanje relacije i
    omogu\' citi njihovo definisanje (\verb"relacija" direktivu). U po\v cetku
    presko\v citi proveru korektnosti.
    \item Definisati strukturu podataka za reprezentovanje formula (pitanja)
    i omogu\' citi definisanje i odgovaranje (\verb"formula", \verb"ispitaj") isklju\v civo na atomi\v cna pitanja
    ($R(x_1, \ldots, x_n)$).
    \item Omogu\' citi pojavu operatora \verb"/\", \verb"\/", \verb"-->" i \verb"!" u pitanjima.
    \item Omogu\' citi pojavu kvantifikatora u pitanjima.
\end{enumerate}

\end{small}
\end{document}
