\documentclass[a4paper]{article}
\usepackage{multicol}
\textwidth 18cm \textheight 26cm \topmargin -3cm
\parindent 0.46in
\headsep 0.2in \oddsidemargin -2cm \evensidemargin 0cm
\hoffset0.8cm \voffset 1.8cm \pagestyle{empty}
\begin{document}
\begin{center}
\textbf{Prevodioci i interpretatori - Jun 2004.}\\
prakti\v cni deo
\end{center}

Napisati interpetator za mali jezik za opisivanje geometrijskih transformacija u ravni.
Jezik ima definisana tri tipa podataka:
\begin{enumerate}
    \item \verb"Vector" - opisuje vektore sa dozvoljenom operacijom sabiranja
    i mno\v zenja skalarom.
    \item \verb"Point" - opisuje ta\v cke. Dozvoljena operacija je sabiranje ta\v cke
    i vektora i kao rezultat se dobija nova ta\v cka.
    \item \verb"Transformation" - opisuje geometrijsku transformaciju.
    Definisani tipovi transformacija su:
\begin{enumerate}
    \item  \verb"rotation(phi)" - rotacija oko koordinatnog po\v cetka
    za dati ugao \verb"phi"
    \item \verb"translation([a,b])" - translacija za vektor \verb"[a,b]",
    \item \verb"scaling(k)" - homotetija sa koeficijentom \verb"k".
\end{enumerate}
 Dopu\v stena je operacija kompozicije transformacija \verb"*".
\end{enumerate}
%--------------------------------------------------------------------------
\vskip 2cm
\begin{center}
\textbf{Prevodioci i interpretatori - Jun 2004.}\\
prakti\v cni deo
\end{center}

Napisati interpetator za mali jezik za opisivanje geometrijskih transformacija u ravni.
Jezik ima definisana tri tipa podataka:
\begin{enumerate}
    \item \verb"Vector" - opisuje vektore sa dozvoljenom operacijom sabiranja
    i mno\v zenja skalarom.
    \item \verb"Point" - opisuje ta\v cke. Dozvoljena operacija je sabiranje ta\v cke
    i vektora i kao rezultat se dobija nova ta\v cka.
    \item \verb"Transformation" - opisuje geometrijsku transformaciju.
    Definisani tipovi transformacija su:
\begin{enumerate}
    \item  \verb"rotation(phi)" - rotacija oko koordinatnog po\v cetka
    za dati ugao \verb"phi"
    \item \verb"translation([a,b])" - translacija za vektor \verb"[a,b]",
    \item \verb"scaling(k)" - homotetija sa koeficijentom \verb"k".
\end{enumerate}
 Dopu\v stena je operacija kompozicije transformacija \verb"*".
\end{enumerate}
%--------------------------------------------------------------------------

%--------------------------------------------------------------------------
\vskip 2cm
\begin{center}
\textbf{Prevodioci i interpretatori - Jun 2004.}\\
prakti\v cni deo
\end{center}

Napisati interpetator za mali jezik za opisivanje geometrijskih transformacija u ravni.
Jezik ima definisana tri tipa podataka:
\begin{enumerate}
    \item \verb"Vector" - opisuje vektore sa dozvoljenom operacijom sabiranja
    i mno\v zenja skalarom.
    \item \verb"Point" - opisuje ta\v cke. Dozvoljena operacija je sabiranje ta\v cke
    i vektora i kao rezultat se dobija nova ta\v cka.
    \item \verb"Transformation" - opisuje geometrijsku transformaciju.
    Definisani tipovi transformacija su:
\begin{enumerate}
    \item  \verb"rotation(phi)" - rotacija oko koordinatnog po\v cetka
    za dati ugao \verb"phi"
    \item \verb"translation([a,b])" - translacija za vektor \verb"[a,b]",
    \item \verb"scaling(k)" - homotetija sa koeficijentom \verb"k".
\end{enumerate}
 Dopu\v stena je operacija kompozicije transformacija \verb"*".
\end{enumerate}
%--------------------------------------------------------------------------



\newpage
Transformaciju je mogu\' ce primeniti na ta\v cke tako \v sto se ime transformacije koristi
kao funkcija kojoj se prosledjuje ta\v cka na koju se transformacija primenjuje. Definisana
je i ugradjena funkcija \verb"Print" koja na standardni izlaz ispisuje koordinate ta\v cke
koja joj se prosledjuje.
Npr. za ulaz
\begin{verbatim}
Vector v=[0,1];
Transformation r=rotation(45),
               t=translation(v),
               h=scaling(2);                     Izlaz je :
                                                 B = (0,0)
Point  A=[0,0],                                  C = (2.1213, 2.1213)
       B=A+v;
Print(B);

Transformation f=r*t*h;
Point C=f(B);
Print(C);
\end{verbatim}


%-------------------------------------------------------------
\vskip 2cm
Transformaciju je mogu\' ce primeniti na ta\v cke tako \v sto se ime transformacije koristi
kao funkcija kojoj se prosledjuje ta\v cka na koju se transformacija primenjuje. Definisana
je i ugradjena funkcija \verb"Print" koja na standardni izlaz ispisuje koordinate ta\v cke
koja joj se prosledjuje.
Npr. za ulaz
\begin{verbatim}
Vector v=[0,1];
Transformation r=rotation(45),
               t=translation(v),
               h=scaling(2);                     Izlaz je :
                                                 B = (0,0)
Point  A=[0,0],                                  C = (2.1213, 2.1213)
       B=A+v;
Print(B);

Transformation f=r*t*h;
Point C=f(B);
Print(C);
\end{verbatim}


%-------------------------------------------------------------
\vskip 2cm
Transformaciju je mogu\' ce primeniti na ta\v cke tako \v sto se ime transformacije koristi
kao funkcija kojoj se prosledjuje ta\v cka na koju se transformacija primenjuje. Definisana
je i ugradjena funkcija \verb"Print" koja na standardni izlaz ispisuje koordinate ta\v cke
koja joj se prosledjuje.
Npr. za ulaz
\begin{verbatim}
Vector v=[0,1];
Transformation r=rotation(45),
               t=translation(v),
               h=scaling(2);                     Izlaz je :
                                                 B = (0,0)
Point  A=[0,0],                                  C = (2.1213, 2.1213)
       B=A+v;
Print(B);

Transformation f=r*t*h;
Point C=f(B);
Print(C);
\end{verbatim}










\end{document}
