summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--senc.sty3
-rw-r--r--task1.tex30
2 files changed, 32 insertions, 1 deletions
diff --git a/senc.sty b/senc.sty
index 17c1186..f08edb0 100644
--- a/senc.sty
+++ b/senc.sty
@@ -10,3 +10,6 @@
\def\tt{\mathbf{tt}}
\def\ff{\mathbf{ff}}
+\def\AND{\mathtt{\;\&\&\;}}
+\def\OR{\mathtt{\;||\;}}
+
diff --git a/task1.tex b/task1.tex
index 3816fba..aee5f4d 100644
--- a/task1.tex
+++ b/task1.tex
@@ -6,12 +6,15 @@
\title{Semantiek \& Correctheid\\\Large{Leertaak 1}}
\usepackage{senc}
+\usepackage{multicol}
\begin{document}
\maketitle
-\section*{1.8}
+\begin{multicols}{2}
+
+\section*{Opdracht 1.8}
\begin{alignat*}{3}
\B{\lnot(\x=1)}\s &= \tt && \text{want}\\
\B{\x=1}\s &= \ff && \text{want}\\
@@ -20,5 +23,30 @@
3 &\neq 1.
\end{alignat*}
+\section*{Conditionele And en Or}
+\begin{align*}
+ \B{b_1 \AND b_2}s &= \begin{cases}
+ \ff & \text{als $\B{b_1}s=\ff$}\\
+ \ff & \text{als $\B{b_2}s=\ff$}\\
+ \tt & \text{anders}\\
+ \end{cases}\\
+ \B{b_1 \OR b_2}s &= \begin{cases}
+ \tt & \text{als $\B{b_1}s=\tt$}\\
+ \tt & \text{als $\B{b_2}s=\tt$}\\
+ \ff & \text{anders}\\
+ \end{cases}
+\end{align*}
+
+De conditionele And verschilt van de gewone And: de rechteroperator wordt alleen ge\"evalueerd als de linkeroperator tot $\tt$ evalueert. De twee zijn equivalent wat betreft de uitkomst (niet wat betreft eventuele bijwerkingen).
+
+\section*{And en Or in Java}
+\texttt{result1} zal \texttt{true} zijn. Eerst wordt \texttt{f()} ge\"evalueerd. Dit geeft \texttt{false}. Hierom wordt \texttt{!f()} ook ge\"evalueerd. Dit geeft \texttt{true}. De waarde van de Or is dan ook \texttt{true}.
+
+\texttt{result2} zal \texttt{false} zijn. Aan het begin is \texttt{b} \texttt{true}. Dan wordt \texttt{!f()} ge\"evalueerd, tot \texttt{false}. Hierom wordt de rechterkant van de And niet meer ge\"evalueerd en wordt \texttt{false} teruggegeven.
+
+Er verandert niets aan het uiteindelijke resultaat als we een gewone And en Or gebruiken, omdat deze equivalent zijn met de conditionele And en Or. Wel zal de laatste \texttt{f()} nog worden ge\"evalueerd, waardoor \texttt{b} aan het eind \texttt{true} zal zijn in plaats van \texttt{false}.
+
+\end{multicols}
+
\end{document}