{ "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": [] }, { "cell_type": "code", "execution_count": 1, "id": "b0deac5e-d859-47d0-a220-80d4cdcb98d4", "metadata": { "collapsed": true, "editable": false, "jupyter": { "outputs_hidden": true, "source_hidden": true }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "01.03.1: function ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(1,1) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(1,0) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(0,1) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.1: nand(0,0) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "\n", "\u001b[0m\u001b[1m\u001b[37m\u001b[41m ERRORS \u001b[0m\n", "\n", "01.03.1: function \u001b[0m\u001b[38;5;245m=> :1:27\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m2\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.1: nand(1,1) \u001b[0m\u001b[38;5;245m=> :4:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m5\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.1: nand(1,0) \u001b[0m\u001b[38;5;245m=> :7:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m8\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.1: nand(0,1) \u001b[0m\u001b[38;5;245m=> :10:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m11\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.1: nand(0,0) \u001b[0m\u001b[38;5;245m=> :13:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m14\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "\u001b[0m\u001b[1m\u001b[37m\u001b[41m FAILURES \u001b[0m\n", "\n", "01.03.1: function \u001b[0m\u001b[38;5;245m=> :1:27\u001b[0m\n", "01.03.1: nand(1,1) \u001b[0m\u001b[38;5;245m=> :4:6\u001b[0m\n", "01.03.1: nand(1,0) \u001b[0m\u001b[38;5;245m=> :7:6\u001b[0m\n", "01.03.1: nand(0,1) \u001b[0m\u001b[38;5;245m=> :10:6\u001b[0m\n", "01.03.1: nand(0,0) \u001b[0m\u001b[38;5;245m=> :13:6\u001b[0m\n", "\n", "\u001b[0m\u001b[31mFAILED\u001b[0m | 0 passed | 5 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": null, "id": "7e1929b1-033a-4b9c-ba66-f67d2b0dab89", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 2, "id": "82ff9541-bb28-4520-9c93-57185f3ea9bf", "metadata": { "collapsed": true, "editable": false, "jupyter": { "outputs_hidden": true, "source_hidden": true }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "01.03.2: function ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(1,1) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(1,0) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(0,1) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "01.03.2: nor(0,0) ... \u001b[0m\u001b[31mFAILED\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n", "\n", "\u001b[0m\u001b[1m\u001b[37m\u001b[41m ERRORS \u001b[0m\n", "\n", "01.03.2: function \u001b[0m\u001b[38;5;245m=> :1:27\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m2\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.2: nor(1,1) \u001b[0m\u001b[38;5;245m=> :4:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m5\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.2: nor(1,0) \u001b[0m\u001b[38;5;245m=> :7:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m8\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.2: nor(0,1) \u001b[0m\u001b[38;5;245m=> :10:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m11\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "01.03.2: nor(0,0) \u001b[0m\u001b[38;5;245m=> :13:6\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[31merror\u001b[0m: ReferenceError: assertEquals is not defined\n", " at \u001b[0m\u001b[36m\u001b[0m:\u001b[0m\u001b[33m14\u001b[0m:\u001b[0m\u001b[33m3\u001b[0m\n", "\n", "\u001b[0m\u001b[1m\u001b[37m\u001b[41m FAILURES \u001b[0m\n", "\n", "01.03.2: function \u001b[0m\u001b[38;5;245m=> :1:27\u001b[0m\n", "01.03.2: nor(1,1) \u001b[0m\u001b[38;5;245m=> :4:6\u001b[0m\n", "01.03.2: nor(1,0) \u001b[0m\u001b[38;5;245m=> :7:6\u001b[0m\n", "01.03.2: nor(0,1) \u001b[0m\u001b[38;5;245m=> :10:6\u001b[0m\n", "01.03.2: nor(0,0) \u001b[0m\u001b[38;5;245m=> :13:6\u001b[0m\n", "\n", "\u001b[0m\u001b[31mFAILED\u001b[0m | 0 passed | 5 failed \u001b[0m\u001b[38;5;245m(1ms)\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": null, "id": "c80d2fe9-4d8b-445a-8d1c-5803776b3d74", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d76d78ff-6a02-42d4-93bc-eb9e19be39ce", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "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": true, "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": null, "id": "a98dce86-57ee-41d7-bf1b-f8648430bee5", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "1af5c359-2df3-49af-82a2-0d6cc8324746", "metadata": { "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "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'), false)\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 }