variabelen klaar
[sec1415.git] / an_variabelen.tex
index ae9268d..7c2ef97 100644 (file)
@@ -12,8 +12,8 @@ de stack bij aanvang van het opvragen.
 Als er een operator uitgevoerd wordt die slechts \'e\'en waarde vraagt van de
 stack hoeft er slechts \'e\'en waarde boven aan de stack gezet te worden en dit
 gaat met de volgende operaties:\\
-push $n$, push $n-1$, roll, dup, push $n+1$, push $1$, roll\\
-\begin{table}[h]
+push $n$, push $n-1$, roll, dup, push $n+1$, push $1$, roll
+\begin{table}[H]
        \centering
        \caption{Voorbeeld, $n=3$}
        \scriptsize
@@ -31,16 +31,15 @@ push $n$, push $n-1$, roll, dup, push $n+1$, push $1$, roll\\
          &     & 3     &       &       & 3     & 1     &       \\\hline
           &    &       &       &       &       & 3     &       \\\hline
        \end{tabular}
-\end{table}\\
+\end{table}
 Dit algorithme beschrijven we als $Un(n)$ voor later gebruik.
 
 \subsubsection{Binair}
 Als er een operator uitgevoerd wordt die twee waardes vraagt van de stack
 worden deze boven elkaar boven op de stack gekopieert met de volgende
 operaties:\\
-$Un(n_1), Un(n_2+1)$\\
-Voorbeeld, $n_1=2, n_2=4$\\
-\begin{table}[h]
+$Un(n_1), Un(n_2+1)$
+\begin{table}[H]
        \centering
        \caption{Voorbeeld, $n_1=2, n_2=4$}
        \scriptsize
@@ -57,9 +56,81 @@ Voorbeeld, $n_1=2, n_2=4$\\
                2       & 6     & 5     & 2     & 5     & 6     & 6 & 6 & 5     & 6 & 5 & 6 & 1 & 1 & 5 \\\hline
                1       & 2     & 6     & 1     & 2     & 5     & 6     & 2     & 6     & 5     & 6     & 5     & 6 & 1 & 6     \\\hline
                3       & 1     & 2     & 3     & 1     & 2     & 5     & 1     & 2     & 6     & 2     & 6     & 5     & 6 & 2 \\\hline
-                 & 3   & 1     &       & 3     & 1     & 2     & 3     & 1     & 2     & 3 & 2 & 6     & 5     & 1     \\\hline
-                 &     & 3     &       &       & 3     & 1     &       & 3     & 1     &       & 3 & 2 & 6     & 3     \\\hline
-                 &     &       &       &       &       & 3     &       &       & 3     &       &       & 3 & 2 &       \\\hline
-                 &     &       &       &       &       &       &       &       &       &       &       &       & 3 &   \\\hline
+                   & 3 & 1     &       & 3     & 1     & 2     & 3     & 1     & 2     & 3 & 2 & 6     & 5     & 1     \\\hline
+                   &   & 3     &       &       & 3     & 1     &       & 3     & 1     &       & 3 & 2 & 6     & 3     \\\hline
+                   &   &       &       &       &       & 3     &       &       & 3     &       &       & 3 & 2 &       \\\hline
+                   &   &       &       &       &       &       &       &       &       &       &       &       & 3 &   \\\hline
+       \end{tabular}
+\end{table}
+
+\subsubsection{Assignment}
+Het toewijzen van waarden aan variabelen kost in \textit{Piet} een stuk meer
+werk omdat \textit{Piet} alle variabelen in een stack bewaard. Net als bij het
+opvragen hebben de variabelen een nummer in plaats van een naam. Bij een
+toewijzing wordt de waarde, $m$, bovenop de stack toegewezen aan de variabele
+met de diepte, $n$, gerekend zonder de waarde bovenop de stack mee te tellen.
+En dat gaat met de volgende operaties:\\
+push $m$, push $n+1$, push $n$, roll, pop, push $n$, push $1$, roll
+\begin{table}[H]
+       \centering
+       \caption{Voorbeeld, $n=4, m=7$}
+       \scriptsize
+       \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
+               \hline
+               init & push 7 & push 5 & push 3 & roll & pop & push 4 & push 1 & roll\\
+               \hline
+               5       & 7 & 5 & 3 & 9 & 7     & 4 & 1 & 5     \\\hline
+               3       & 5     & 7 & 5 & 7     & 5     & 7     & 4 & 3 \\\hline
+               4       & 3     & 5     & 7 & 5 & 3     & 5     & 7     & 4     \\\hline
+               9       & 4     & 3     & 5     & 3     & 4     & 3     & 5     & 7     \\\hline
+               1       & 9     & 4     & 3     & 4     & 1     & 4     & 3     & 1     \\\hline
+               5       & 1     & 9     & 4     & 1     & 5     & 1     & 4     & 5     \\\hline
+                       & 5     & 1     & 9     & 5     &       & 5     & 1     &       \\\hline
+                       &       & 5     & 1     &       &       &       & 5     &       \\\hline
+                       &       & 5     &       &       &       &       &       &       \\\hline
+       \end{tabular}
+\end{table}
+
+\begin{landscape}
+\subsubsection{Groot voorbeeld}
+We wijzen variabele $5$ de waarde van variabele $3$ $+$ variabele $2$ toe. 
+\begin{table}[H]
+       \centering
+       \caption{Groot voorbeeld}
+       \tiny
+       \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
+               \hline
+               & \multicolumn{7}{c|}{$Un(3)$} &
+                 \multicolumn{7}{c|}{$Un(2)$} &
+                 Addition &
+               \multicolumn{7}{c|}{$Ass(5)$}\\
+               \hline
+               init &
+               push $3$ & push $2$ & roll & dup & push $4$ & push $1$ & roll &
+               push $3$ & push $2$ & roll & dup & push $4$ & push $1$ & roll &
+               add &
+               push $6$ & push $5$ & roll & pop & push $5$ & push $1$ & roll\\
+               \hline
+               4       & 3 & 2 & 1 & 1 & 4     & 1     & 1 & 3 & 2 & 6 & 6     & 4 & 1 & 6     & 7 & 6 & 5
+               & 7     & 7     & 5 & 1 & 7     \\\hline
+               6       & 4     & 3 & 4 & 1 & 1 & 4 & 4 & 1 & 3 & 1     & 6     & 6     & 4 & 1 & 4     & 7 & 6
+               & 7     & 4     & 7     & 5 & 4 \\\hline
+               1       & 6     & 4     & 6 & 4 & 1 & 1 & 6     & 4     & 1 & 4 & 1     & 6     & 6     & 4     & 6     & 4     & 7
+               & 4     & 6     & 4     & 7     & 6     \\\hline
+               2       & 1     & 6     & 1     & 6 & 4 & 1 & 1 & 6     & 4     & 1     & 4     & 1     & 6     & 6     & 1     & 6     & 4
+               & 6     & 1     & 6     & 4     & 1     \\\hline
+               7       & 2     & 1     & 2     & 1     & 6 & 4 & 2     & 1     & 6     & 2     & 1     & 4     & 1     & 1     & 2     & 1     & 6
+               & 1     & 2     & 1     & 6     & 2     \\\hline
+               8       & 7     & 2     & 7     & 2     & 1     & 6 & 7 & 2     & 1     & 7     & 2     & 1     & 4     & 2     & 7     & 2     & 1
+               & 2     & 8     & 2     & 1     & 7     \\\hline
+                       & 8     & 7     & 8     & 7     & 2     & 1     & 8     & 7     & 2     & 8     & 7     & 2     & 1     & 7     & 8     & 7     & 2
+               & 8     &       & 8     & 2     & 8     \\\hline
+                       &       & 8     &       & 8     & 7     & 2     &       & 8     & 7     &       & 8     & 7     & 2     & 8     &       & 8     & 7
+               &       &       &       & 8     &       \\\hline
+                       &       &       &       &       & 8     & 7     &       &       & 8     &       &       & 8     & 7     &       &       &       & 8
+               &       &       &       &       &       \\\hline
+                       &       &       &       &       &       & 8     &       &       &       &       &       &       & 8     &       &       &       &
+               &       &       &       &       &       \\\hline
        \end{tabular}
 \end{table}
+\end{landscape}