diff options
-rw-r--r-- | senc.sty | 3 | ||||
-rw-r--r-- | task1.tex | 30 |
2 files changed, 32 insertions, 1 deletions
@@ -10,3 +10,6 @@ \def\tt{\mathbf{tt}} \def\ff{\mathbf{ff}} +\def\AND{\mathtt{\;\&\&\;}} +\def\OR{\mathtt{\;||\;}} + @@ -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} |