{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "0a476912-ee13-42d8-b705-b711433d149a", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "import { assertEquals } from \"jsr:@std/assert\";" ] }, { "cell_type": "markdown", "id": "d31a7ba1-13af-40a1-bb9d-4733096cc531", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Aufgabe 01.03.1\n", "Schreibe eine Funktion `nand`, die zwei boolesche Werte als Parameter entgegennimmt. Die Rückgabe der Funktion soll `false` sein, wenn beide Paramter `true` sind. In den anderen Fällen soll die Rückgabe `true` sein.\n", "\n", "D.h.:\n", "* `nand(true, true)` soll `false` liefern\n", "* `nand(true, false)`, `nand(false, true)` und `nand(false, false)` sollen `true` zurückgeben." ] }, { "cell_type": "code", "execution_count": 2, "id": "9a0582d4-9acb-4dd1-86c5-3b9d4d2bd4fb", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "function nand(a, b) {\n", " return !(a && b)\n", "}" ] }, { "cell_type": "code", "execution_count": 3, "id": "b0deac5e-d859-47d0-a220-80d4cdcb98d4", "metadata": { "editable": false, "jupyter": { "source_hidden": true }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "01.03.1: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(1,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(1,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(0,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(0,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "\n", "\u001b[0m\u001b[32mok\u001b[0m | 5 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n" ] } ], "source": [ "Deno.test(\"01.03.1: function\", () => {\n", " assertEquals(typeof nand, 'function')\n", "})\n", "Deno.test(\"01.03.1: nand(1,1)\", () => {\n", " assertEquals(nand(true, true), false)\n", "})\n", "Deno.test(\"01.03.1: nand(1,0)\", () => {\n", " assertEquals(nand(true, false), true)\n", "})\n", "Deno.test(\"01.03.1: nand(0,1)\", () => {\n", " assertEquals(nand(false, true), true)\n", "})\n", "Deno.test(\"01.03.1: nand(0,0)\", () => {\n", " assertEquals(nand(false, false), true)\n", "})" ] }, { "cell_type": "markdown", "id": "57c3c062-b29e-40dc-add0-97b5c5a999c1", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Aufgabe 01.03.2\n", "Schreibe eine Funktion `nor`, die zwei boolesche Werte als Parameter entgegennimmt. Die Rückgabe der Funktion soll genau dann `true` sein, wenn beide Paramter `false` sind. In den anderen Fällen soll die Rückgabe `false` sein.\n", "\n", "D.h.:\n", "* `nor(false, false)` soll `true` liefern\n", "* `nor(false, true)`, `nor(true, false)` und `nor(true, true)` sollen `false` zurückgeben." ] }, { "cell_type": "code", "execution_count": 4, "id": "7e1929b1-033a-4b9c-ba66-f67d2b0dab89", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "function nor(a, b) {\n", " return !(a || b)\n", "}" ] }, { "cell_type": "code", "execution_count": 5, "id": "82ff9541-bb28-4520-9c93-57185f3ea9bf", "metadata": { "editable": false, "jupyter": { "source_hidden": true }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "01.03.2: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(1,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(1,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(0,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(0,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "\n", "\u001b[0m\u001b[32mok\u001b[0m | 5 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n" ] } ], "source": [ "Deno.test(\"01.03.2: function\", () => {\n", " assertEquals(typeof nor, 'function')\n", "})\n", "Deno.test(\"01.03.2: nor(1,1)\", () => {\n", " assertEquals(nor(true, true), false)\n", "})\n", "Deno.test(\"01.03.2: nor(1,0)\", () => {\n", " assertEquals(nor(true, false), false)\n", "})\n", "Deno.test(\"01.03.2: nor(0,1)\", () => {\n", " assertEquals(nor(false, true), false)\n", "})\n", "Deno.test(\"01.03.2: nor(0,0)\", () => {\n", " assertEquals(nor(false, false), true)\n", "})" ] }, { "cell_type": "markdown", "id": "340a44a5-5010-4b46-8c4c-2d7c459750eb", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Aufgabe 01.03.3\n", "Schreibe eine Funktion `xor`, die zwei boolesche Werte als Parameter entgegennimmt. Die Rückgabe der Funktion soll `true` sein, wenn beide Paramter verschieden sind. In den anderen Fällen soll die Rückgabe `false` sein.\n", "\n", "D.h.:\n", "* `xor(true, false)` und `xor(false, true)` sollen `true` liefern\n", "* `xor(true, true)` und `xor(false, false)` sollen `false` zurückgeben." ] }, { "cell_type": "code", "execution_count": 6, "id": "c80d2fe9-4d8b-445a-8d1c-5803776b3d74", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "function xor(a, b) {\n", " return a !== b\n", "}" ] }, { "cell_type": "code", "execution_count": 7, "id": "d76d78ff-6a02-42d4-93bc-eb9e19be39ce", "metadata": { "editable": false, "jupyter": { "source_hidden": true }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "01.03.3: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.3: xor(1,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.3: xor(1,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.3: xor(0,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.3: xor(0,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "\n", "\u001b[0m\u001b[32mok\u001b[0m | 5 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n" ] } ], "source": [ "Deno.test(\"01.03.3: function\", () => {\n", " assertEquals(typeof xor, 'function')\n", "})\n", "Deno.test(\"01.03.3: xor(1,1)\", () => {\n", " assertEquals(xor(true, true), false)\n", "})\n", "Deno.test(\"01.03.3: xor(1,0)\", () => {\n", " assertEquals(xor(true, false), true)\n", "})\n", "Deno.test(\"01.03.3: xor(0,1)\", () => {\n", " assertEquals(xor(false, true), true)\n", "})\n", "Deno.test(\"01.03.3: xor(0,0)\", () => {\n", " assertEquals(xor(false, false), false)\n", "})" ] }, { "cell_type": "markdown", "id": "e15e95e4-89e5-4cea-be8f-d95ea68eb9a7", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Aufgabe 01.03.4\n", "Schreibe eine Funktion `gleich`, die zwei Werte auf strikte Gleichheit überprüft.\n", "\n", "Beispiel: `gleich(1, 1)` soll `true` und `gleich(1, 2)` soll `false` ergeben.\n", "\n", "*Hinweis: sollen bei einem Parameter unterschiedliche Datentypen übergeben werden können, so kann als Datentyp `any` genutzt werden!*" ] }, { "cell_type": "code", "execution_count": 8, "id": "a98dce86-57ee-41d7-bf1b-f8648430bee5", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "function gleich(a, b) {\n", " return a === b\n", "}" ] }, { "cell_type": "code", "execution_count": 9, "id": "1af5c359-2df3-49af-82a2-0d6cc8324746", "metadata": { "editable": false, "jupyter": { "source_hidden": true }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "01.03.4: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: gleich(1,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: gleich(1,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: gleich(1,'1') ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: gleich(1,2) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: gleich('klein','klein') ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.4: gleich('Links','Rechts') ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "\n", "\u001b[0m\u001b[32mok\u001b[0m | 8 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n" ] } ], "source": [ "Deno.test(\"01.03.4: function\", () => {\n", " assertEquals(typeof gleich, 'function')\n", "})\n", "Deno.test(\"01.03.4: Parameter\", () => {\n", " assertEquals(gleich.length, 2)\n", "})\n", "Deno.test(\"01.03.4: gleich(1,1)\", () => {\n", " assertEquals(gleich(1, 1), true)\n", "})\n", "Deno.test(\"01.03.4: gleich(1,0)\", () => {\n", " assertEquals(gleich(1, 0), false)\n", "})\n", "Deno.test(\"01.03.4: gleich(1,'1')\", () => {\n", " assertEquals(gleich(1, '1'), false)\n", "})\n", "Deno.test(\"01.03.4: gleich(1,2)\", () => {\n", " assertEquals(gleich(1, 2), false)\n", "})\n", "Deno.test(\"01.03.4: gleich('klein','klein')\", () => {\n", " assertEquals(gleich('klein', 'klein'), true)\n", "})\n", "Deno.test(\"01.03.4: gleich('Links','Rechts')\", () => {\n", " assertEquals(gleich('Links', 'Rechts'), false)\n", "})\n" ] } ], "metadata": { "kernelspec": { "display_name": "Deno", "language": "typescript", "name": "deno" }, "language_info": { "codemirror_mode": "typescript", "file_extension": ".ts", "mimetype": "text/x.typescript", "name": "typescript", "nbconvert_exporter": "script", "pygments_lexer": "typescript", "version": "5.8.3" } }, "nbformat": 4, "nbformat_minor": 5 }