Musterlösungen zu 01 Einführung
parent
b35d699056
commit
d30b596ab8
|
|
@ -0,0 +1,172 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "636d4527-50fc-4836-ae08-00c12844da8d",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d90b7734-c902-4300-80ef-d8bf55a64813",
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.01.1\n",
|
||||
"Deklariere eine Variable `vorname` und initialisiere sie mit dem Wert `'Franz'`.."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "594735d3-e90e-443e-9eff-e4600c331bc2",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"let vorname = 'Franz'"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "245aec76-71a6-478e-9301-08ca4e14ff71",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"Test"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"A1: vorname ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 1 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"A1: vorname\", () => {\n",
|
||||
" assertEquals(vorname, 'Franz')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "9eb66210-476a-499e-8965-9c63da2de3e7",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.01.2\n",
|
||||
"Deklariere eine Variable `blume` und weise ihr den Wert `'Rose'` zu.\n",
|
||||
"\n",
|
||||
"Deklariere eine zweite Variable `tier` und weise ihr den Wert `'Käfer'` zu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "7daea9ea-3417-48d9-9416-3462cc38f8bc",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"let blume = 'Rose'\n",
|
||||
"let tier = 'Käfer'"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "4f710df6-8465-4da1-a997-4e34ea80d6ed",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"Test"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"A2: blume ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"A2: tier ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 2 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"A2: blume\", () => {\n",
|
||||
" assertEquals(blume, 'Rose')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"A2: tier\", () => {\n",
|
||||
" assertEquals(tier, 'Käfer')\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
|
||||
}
|
||||
|
|
@ -0,0 +1,265 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "4fbccfbc-2e07-4214-a665-4b13afb2723e",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\";"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "86eb640a-2c5b-4498-90d7-774984742f45",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.02.1\n",
|
||||
"Definiere eine Funktion `hallo`, die `'Hallo Welt!'` zurückgibt."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "90e1aef5-ac02-45a6-9f98-3c812ed506f0",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function hallo() {\n",
|
||||
" return 'Hallo Welt!'\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "a6e2ef7a-6785-44b4-be55-55ef733320bd",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.02.1: hallo ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.1: hallo ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 2 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.02.1: hallo\", () => {\n",
|
||||
" assertEquals(typeof hallo, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.1: hallo\", () => {\n",
|
||||
" assertEquals(hallo(), 'Hallo Welt!')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "7b17b7b9-9337-43f9-904b-3d8e11d1d9c3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.02.2\n",
|
||||
"Definiere zwei Funktionen. Die erste Funktion `a` soll `'Hallo a!'` zurückgeben. Die zweite Funktion `b` soll `'Hallo b!'` zurückgeben."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "89bda355-b2d5-4e47-9c7e-e711a5663f72",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function a() {\n",
|
||||
" return 'Hallo a!'\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"function b() {\n",
|
||||
" return 'Hallo b!'\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "f084bd1d-cd11-49f7-a0aa-ee33fd7886d3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.02.2: a ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.2: b ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.2: a ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.2: b ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 4 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.02.2: a\", () => {\n",
|
||||
" assertEquals(typeof a, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.2: b\", () => {\n",
|
||||
" assertEquals(typeof b, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.2: a\", () => {\n",
|
||||
" assertEquals(a(), 'Hallo a!')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.2: b\", () => {\n",
|
||||
" assertEquals(b(), 'Hallo b!')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "302df880-f486-4cd5-b0e4-987a122d2b17",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.02.3\n",
|
||||
"1. Definiere eine Funktion `begruesse`, die den Wert `'Moin!'` zurückgibt.\n",
|
||||
"2. Deklariere eine Variable `begruessung`. Rufe die Funktion `begruesse` auf und weise der Variablen `begruessung` die Rückgabe dieses Aufrufs zu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "956109e0-0e4a-416b-94a3-4a6f6c88caf9",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function begruesse() {\n",
|
||||
" return 'Moin!'\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"let begruessung = begruesse()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "d013cd3d-eb31-4a4f-a679-990fb77243c7",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.02.3: begruesse ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.3: begruesse ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.3: begruessung ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.3: begruessung ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 4 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.02.3: begruesse\", () => {\n",
|
||||
" assertEquals(typeof begruesse, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.3: begruesse\", () => {\n",
|
||||
" assertEquals(begruesse(), 'Moin!')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.3: begruessung\", () => {\n",
|
||||
" assertEquals(typeof begruessung, 'string')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.3: begruessung\", () => {\n",
|
||||
" assertEquals(begruessung, 'Moin!')\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
|
||||
}
|
||||
|
|
@ -0,0 +1,196 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "13e0b4fc-3ea3-4fc8-9293-7d9f58eb82fb",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "12998cb3-fe6b-4be9-83de-4d725210c5b1",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.02.4\n",
|
||||
"Schreibe eine Funktion `echo`, die ebenfalls den übergebenen Parameter wieder zurückgibt."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "3bc621d3-8101-4588-9a9a-73480f296a5d",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function echo(param) {\n",
|
||||
" return param\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "288a67d3-1aab-4f24-ac41-ab24c2d098eb",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.02.4: echo ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.4: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.4: Greta ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.4: CO2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 4 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.02.4: echo\", () => {\n",
|
||||
" assertEquals(typeof echo, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.4: Parameter\", () => {\n",
|
||||
" assertEquals(echo.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.4: Greta\", () => {\n",
|
||||
" assertEquals(echo('Greta'), 'Greta')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.4: CO2\", () => {\n",
|
||||
" assertEquals(echo('CO2'), 'CO2')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "f80f8e2f-f8e0-48d4-9ffb-21a17b14b473",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.02.5\n",
|
||||
"Schreibe eine Funktion `welcome`, die einen Parameter entgegennimmt und die `'Hallo <Parameter>!'` zurückgibt.\n",
|
||||
"\n",
|
||||
"Beispiel: Übergibt man der Funktion `welcome` den Wert `'Ada'`, so sollte die Funktion `'Hallo Ada!'` zurückgeben."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "8fd18a65-713b-48af-a6ad-ade656a3f7dd",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function welcome(name) {\n",
|
||||
" return 'Hallo ' + name + '!'\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "21b1f649-6e1f-4c1a-a8f3-f3653dd4eb89",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.02.5: welcome ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.5: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.5: Ada ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.5: Marianne ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.02.5: Mitchell ... \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.02.5: welcome\", () => {\n",
|
||||
" assertEquals(typeof welcome, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.5: Parameter\", () => {\n",
|
||||
" assertEquals(welcome.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.5: Ada\", () => {\n",
|
||||
" assertEquals(welcome('Ada'), 'Hallo Ada!')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.5: Marianne\", () => {\n",
|
||||
" assertEquals(welcome('Marianne'), 'Hallo Marianne!')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.02.5: Mitchell\", () => {\n",
|
||||
" assertEquals(welcome('Mitchell'), 'Hallo Mitchell!')\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
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ab876578-aa1d-4a24-9534-f2b8d3e83bea",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.02.6\n",
|
||||
"Lasse den Nutzer nacheinander zwei ganze Zahlen `a` und `b` eingeben und gib anschließend\n",
|
||||
"* die Summe\n",
|
||||
"* die Differenz\n",
|
||||
"* das Produkt\n",
|
||||
"* den Quotienten\n",
|
||||
"aus.\n",
|
||||
"\n",
|
||||
"Mögliche Ausgabe:\n",
|
||||
"\n",
|
||||
"```\n",
|
||||
"Erste Zahl eingeben: 12\n",
|
||||
"Zweite Zahl eingeben: 3\n",
|
||||
"Summe: 15\n",
|
||||
"Differenz: 9\n",
|
||||
"Produkt: 36\n",
|
||||
"Quotient: 4\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"*Hinweis: bei dieser Aufgabe gibt es keinen automatisierten Test auf Korrektheit!*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "b8e700ea-3053-4d6b-b905-d7c116b98f33",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdin",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Erste Zahl eingeben: 12\n",
|
||||
"Zweite Zahl eingeben: 3\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Summe: 15\n",
|
||||
"Differenz: 9\n",
|
||||
"Produkt: 36\n",
|
||||
"Quotient: 4\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let a = parseInt( prompt('Erste Zahl eingeben:') )\n",
|
||||
"let b = parseInt( prompt('Zweite Zahl eingeben:') )\n",
|
||||
"\n",
|
||||
"console.log('Summe: ' + (a+b))\n",
|
||||
"console.log('Differenz: ' + (a-b))\n",
|
||||
"console.log('Produkt: ' + (a*b))\n",
|
||||
"console.log('Quotient: ' + (a/b))"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
||||
|
|
@ -0,0 +1,386 @@
|
|||
{
|
||||
"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
|
||||
}
|
||||
|
|
@ -0,0 +1,340 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "a474ad60-bfa2-4e43-9d97-88c553bfdc53",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\";"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a36a9ffd-a123-434a-9148-b8c7c75c30d4",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.03.5\n",
|
||||
"Schreibe eine Funktion `gleich`, die 2 Werte auf strikte Gleichheit überprüft. Sind die beiden Werte gleich, so soll der String `'GLEICH'` zurückgegeben werden. Sind sie ungleich, so soll man `'UNGLEICH'` erhalten."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "f21bb2d9-d623-4083-a0ee-d4219678c93c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function gleich(a, b) {\n",
|
||||
" if (a === b) return 'GLEICH'\n",
|
||||
" return 'UNGLEICH'\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "b6985fdb-5098-40f9-a1e8-48a6d763cfb5",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.03.5: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: gleich(1,1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: gleich(1,0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: gleich(1,'1') ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: gleich(1,2) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: gleich('klein','klein') ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.5: 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(1ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.03.5: function\", () => {\n",
|
||||
" assertEquals(typeof gleich, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: Parameter\", () => {\n",
|
||||
" assertEquals(gleich.length, 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: gleich(1,1)\", () => {\n",
|
||||
" assertEquals(gleich(1, 1), 'GLEICH')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: gleich(1,0)\", () => {\n",
|
||||
" assertEquals(gleich(1, 0), 'UNGLEICH')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: gleich(1,'1')\", () => {\n",
|
||||
" assertEquals(gleich(1, '1'), 'UNGLEICH')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: gleich(1,2)\", () => {\n",
|
||||
" assertEquals(gleich(1, 2), 'UNGLEICH')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: gleich('klein','klein')\", () => {\n",
|
||||
" assertEquals(gleich('klein', 'klein'), 'GLEICH')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.5: gleich('Links','Rechts')\", () => {\n",
|
||||
" assertEquals(gleich('Links', 'Rechts'), 'UNGLEICH')\n",
|
||||
"})\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "dfe85401-6a4a-4da0-b9f9-bb0ea368698a",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Mathematischer Hintergrund: Modulo-Rechnung\n",
|
||||
"Die Modulo-Rechnung kennt ihr bereits aus der Grundschule! Dort rechnet man die Division nur mit ganzen Zahlen, so gilt beispielsweise: **17 geteilt durch 5 ergibt 3 Rest 2**.\n",
|
||||
"\n",
|
||||
"Genau das ist in der Informatik die Modulo-Rechnung - sie ergibt genau den Rest einer ganzzahligen Division und wird mit einem `%` geschrieben. Somit gilt: `17 % 5 = 2`.\n",
|
||||
"\n",
|
||||
"Das kann man beispielweise nutzen, um Teilbarkeiten herauszufinden. So ist eine Zahl `z` genau dann durch `t` teilbar, wenn `z % t === 0` ergibt."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "616cfd74-357f-457f-81a4-a94d7c71582b",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.03.6\n",
|
||||
"Programmiere eine Funktion `teilbarDurch7`, die einen ganzzahligen Parameter übernimmt und als Ergebnis einen `boolean`-Wert zurückgibt, der `true` ist, wenn eine durch 7 teilbare Zahl übergeben wurde und andernfalls `false`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "de0fe960-c7e1-40b0-8ee8-f0cb91964889",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function teilbarDurch7(param) {\n",
|
||||
" if (param % 7 === 0) return true\n",
|
||||
" return false\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "4737d8de-51a5-4d5e-afc1-5d5a29700e00",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.03.6: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: teilbarDurch7(0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: teilbarDurch7(5) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: teilbarDurch7(7) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: teilbarDurch7(49) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: teilbarDurch7(71) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.6: teilbarDurch7(230580) ... \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.6: function\", () => {\n",
|
||||
" assertEquals(typeof teilbarDurch7, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: Parameter\", () => {\n",
|
||||
" assertEquals(teilbarDurch7.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: teilbarDurch7(0)\", () => {\n",
|
||||
" assertEquals(teilbarDurch7(0), true)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: teilbarDurch7(5)\", () => {\n",
|
||||
" assertEquals(teilbarDurch7(5), false)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: teilbarDurch7(7)\", () => {\n",
|
||||
" assertEquals(teilbarDurch7(7), true)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: teilbarDurch7(49)\", () => {\n",
|
||||
" assertEquals(teilbarDurch7(49), true)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: teilbarDurch7(71)\", () => {\n",
|
||||
" assertEquals(teilbarDurch7(71), false)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.6: teilbarDurch7(230580)\", () => {\n",
|
||||
" assertEquals(teilbarDurch7(230580), true)\n",
|
||||
"})\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "340e8acf-97ee-4267-b92b-88d77ed15da0",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.03.7\n",
|
||||
"Programmiere eine Funktion `istSchaltjahr`, die eine Jahreszahl als Parameter übernimmt und zurückgibt, ob dieses angegebene Jahr ein Schaltjahr ist.\n",
|
||||
"\n",
|
||||
"## Hinweis\n",
|
||||
"Ein Jahr ist genau dann ein Schaltjahr, wenn die Jahreszahl...\n",
|
||||
"* durch 4 teilbar ist...\n",
|
||||
"* *außer* wenn sie durch 100 teilbar ist...\n",
|
||||
"* *außer wiederum* wenn sie durch 400 teilbar ist."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "3d5a41a2-5f48-4375-aaae-a466a625598c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function istSchaltjahr(jahr) {\n",
|
||||
" if (jahr % 400 === 0) return true\n",
|
||||
" if (jahr % 100 === 0) return false\n",
|
||||
" if (jahr % 4 === 0) return true\n",
|
||||
" return false\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "f8335a26-0e7a-477a-9b68-804e8161bfc7",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.03.7: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.7: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.7: istSchaltjahr(0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.7: istSchaltjahr(2024) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.7: istSchaltjahr(2025) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.7: istSchaltjahr(1900) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.03.7: istSchaltjahr(2000) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 7 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.03.7: function\", () => {\n",
|
||||
" assertEquals(typeof istSchaltjahr, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.7: Parameter\", () => {\n",
|
||||
" assertEquals(istSchaltjahr.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.7: istSchaltjahr(0)\", () => {\n",
|
||||
" assertEquals(istSchaltjahr(0), true)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.7: istSchaltjahr(2024)\", () => {\n",
|
||||
" assertEquals(istSchaltjahr(2024), true)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.7: istSchaltjahr(2025)\", () => {\n",
|
||||
" assertEquals(istSchaltjahr(2025), false)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.7: istSchaltjahr(1900)\", () => {\n",
|
||||
" assertEquals(istSchaltjahr(1900), false)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.03.7: istSchaltjahr(2000)\", () => {\n",
|
||||
" assertEquals(istSchaltjahr(2000), true)\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
|
||||
}
|
||||
|
|
@ -212,7 +212,7 @@
|
|||
"outputs": [],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.3: function\", () => {\n",
|
||||
" assertEquals(typeof addiereBis, 'function')\n",
|
||||
" assertEquals(typeof fakultaet, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: Parameter\", () => {\n",
|
||||
" assertEquals(fakultaet.length, 1)\n",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,380 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "86976bb8-a009-4ccf-8df3-69ac302459e9",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Module: null prototype] { }"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\"\n",
|
||||
"import \"https://git.amgdhg.de/kg/tslib/raw/branch/main/logger.ts\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "0e2e4f01-d929-4182-9237-886ba70551f0",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.1\n",
|
||||
"\n",
|
||||
"Programmiere eine Methode `quadratzahlen` (ohne Parameter) und lasse darin mithilfe einer Schleife die Quadratzahlen von 1 bis 20 ausgeben. Das Ergebnis soll so aussehen:\n",
|
||||
"\n",
|
||||
"```\n",
|
||||
"Die Quadratzahl von 1 ist 1\n",
|
||||
"Die Quadratzahl von 2 ist 4\n",
|
||||
"...\n",
|
||||
"Die Quadratzahl von 20 ist 400\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"#### Hinweis:\n",
|
||||
"du kannst bei den kommenden Aufgaben auch die Funktion zum Testen in deiner Programmierung selbst aufrufen!"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "4f755769-2d3c-443b-bcb8-8609914d0921",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Die Quadratzahl von 1 ist 1\n",
|
||||
"Die Quadratzahl von 2 ist 4\n",
|
||||
"Die Quadratzahl von 3 ist 9\n",
|
||||
"Die Quadratzahl von 4 ist 16\n",
|
||||
"Die Quadratzahl von 5 ist 25\n",
|
||||
"Die Quadratzahl von 6 ist 36\n",
|
||||
"Die Quadratzahl von 7 ist 49\n",
|
||||
"Die Quadratzahl von 8 ist 64\n",
|
||||
"Die Quadratzahl von 9 ist 81\n",
|
||||
"Die Quadratzahl von 10 ist 100\n",
|
||||
"Die Quadratzahl von 11 ist 121\n",
|
||||
"Die Quadratzahl von 12 ist 144\n",
|
||||
"Die Quadratzahl von 13 ist 169\n",
|
||||
"Die Quadratzahl von 14 ist 196\n",
|
||||
"Die Quadratzahl von 15 ist 225\n",
|
||||
"Die Quadratzahl von 16 ist 256\n",
|
||||
"Die Quadratzahl von 17 ist 289\n",
|
||||
"Die Quadratzahl von 18 ist 324\n",
|
||||
"Die Quadratzahl von 19 ist 361\n",
|
||||
"Die Quadratzahl von 20 ist 400\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"function quadratzahlen() {\n",
|
||||
" for (let i = 1; i <= 20; i++) {\n",
|
||||
" console.log('Die Quadratzahl von ' + i + ' ist ' + (i*i))\n",
|
||||
" }\n",
|
||||
"}\n",
|
||||
"quadratzahlen()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "e25e4a01-1c3f-4e8b-bd94-bcfe0ac04594",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.1: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.1: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.1: Ausgabe ...Die Quadratzahl von 1 ist 1\n",
|
||||
"Die Quadratzahl von 2 ist 4\n",
|
||||
"Die Quadratzahl von 3 ist 9\n",
|
||||
"Die Quadratzahl von 4 ist 16\n",
|
||||
"Die Quadratzahl von 5 ist 25\n",
|
||||
"Die Quadratzahl von 6 ist 36\n",
|
||||
"Die Quadratzahl von 7 ist 49\n",
|
||||
"Die Quadratzahl von 8 ist 64\n",
|
||||
"Die Quadratzahl von 9 ist 81\n",
|
||||
"Die Quadratzahl von 10 ist 100\n",
|
||||
"Die Quadratzahl von 11 ist 121\n",
|
||||
"Die Quadratzahl von 12 ist 144\n",
|
||||
"Die Quadratzahl von 13 ist 169\n",
|
||||
"Die Quadratzahl von 14 ist 196\n",
|
||||
"Die Quadratzahl von 15 ist 225\n",
|
||||
"Die Quadratzahl von 16 ist 256\n",
|
||||
"Die Quadratzahl von 17 ist 289\n",
|
||||
"Die Quadratzahl von 18 ist 324\n",
|
||||
"Die Quadratzahl von 19 ist 361\n",
|
||||
"Die Quadratzahl von 20 ist 400\n",
|
||||
" \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(14ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 3 passed | 0 failed \u001b[0m\u001b[38;5;245m(15ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.1: function\", () => {\n",
|
||||
" assertEquals(typeof quadratzahlen, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.1: Parameter\", () => {\n",
|
||||
" assertEquals(quadratzahlen.length, 0)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.1: Ausgabe\", () => {\n",
|
||||
" console.start(true)\n",
|
||||
" quadratzahlen()\n",
|
||||
" assertEquals(console.end(), 'Die Quadratzahl von 1 ist 1\\nDie Quadratzahl von 2 ist 4\\nDie Quadratzahl von 3 ist 9\\nDie Quadratzahl von 4 ist 16\\nDie Quadratzahl von 5 ist 25\\nDie Quadratzahl von 6 ist 36\\nDie Quadratzahl von 7 ist 49\\nDie Quadratzahl von 8 ist 64\\nDie Quadratzahl von 9 ist 81\\nDie Quadratzahl von 10 ist 100\\nDie Quadratzahl von 11 ist 121\\nDie Quadratzahl von 12 ist 144\\nDie Quadratzahl von 13 ist 169\\nDie Quadratzahl von 14 ist 196\\nDie Quadratzahl von 15 ist 225\\nDie Quadratzahl von 16 ist 256\\nDie Quadratzahl von 17 ist 289\\nDie Quadratzahl von 18 ist 324\\nDie Quadratzahl von 19 ist 361\\nDie Quadratzahl von 20 ist 400')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "df8eae72-81d5-4f28-a608-e203b429cab6",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.2\n",
|
||||
"\n",
|
||||
"Schreibe eine Funktion `addiereBis`, die eine Zahl als Parameter entgegennimmt und die alle natürlichen Zahlen kleiner gleich dem Paramter aufaddiert. Das Ergebnis der Addition soll zurückgegeben werden.\n",
|
||||
"\n",
|
||||
"Beispiel: `addiereBis(3)` soll `1+2+3 = 6` ergeben."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "361cd6dd-883f-4668-b469-84502ca9ec8a",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function addiereBis(n) {\n",
|
||||
" let ergebnis = 0\n",
|
||||
" for (let i = 1; i <= n; i++) {\n",
|
||||
" ergebnis = ergebnis + i\n",
|
||||
" }\n",
|
||||
" return ergebnis\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "1cf5880f-25cc-43d2-aee1-697d29c7a773",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.2: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.2: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.2: addiereBis(0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.2: addiereBis(1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.2: addiereBis(2) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.2: addiereBis(3) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.2: addiereBis(9) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 7 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.2: function\", () => {\n",
|
||||
" assertEquals(typeof addiereBis, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.2: Parameter\", () => {\n",
|
||||
" assertEquals(addiereBis.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.2: addiereBis(0)\", () => {\n",
|
||||
" assertEquals(addiereBis(0), 0)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.2: addiereBis(1)\", () => {\n",
|
||||
" assertEquals(addiereBis(1), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.2: addiereBis(2)\", () => {\n",
|
||||
" assertEquals(addiereBis(2), 3)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.2: addiereBis(3)\", () => {\n",
|
||||
" assertEquals(addiereBis(3), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.2: addiereBis(9)\", () => {\n",
|
||||
" assertEquals(addiereBis(9), 45)\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "596dbf4f-51cf-4f2b-abea-5e9b919c5113",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.3\n",
|
||||
"Die `for`-Schleife soll nochmal anhand der in der Mathematik verwendeten Fakultät geübt werden. Die Fakultät einer natürlichen Zahl `n` ist das Produkt aller natürlichen Zahlen (ohne Null) kleiner oder gleich `n`. Sie wird durch ein nachgestelltes Ausrufezeichen abgekürzt: `3! = 1*2*3 = 6`. Per Definition gilt `0! = 1`.\n",
|
||||
"\n",
|
||||
"Schreibe eine Funktion `fakultaet`, die die Fakultät einer natürlichen Zahl berechnet und zurückgibt.\n",
|
||||
"\n",
|
||||
"Beispiel: `fakultaet(3)` sollte `1*2*3 = 6` ergeben."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "341d72f8-6076-4c8f-9f0a-28e0afb0dfbb",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function fakultaet(n) {\n",
|
||||
" let ergebnis = 1\n",
|
||||
" for (let i = 1; i <= n; i++) {\n",
|
||||
" ergebnis = ergebnis * i\n",
|
||||
" }\n",
|
||||
" return ergebnis\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "8635d86d-2a2d-4228-82ed-eab5f39348ce",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.3: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: fakultaet(0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: fakultaet(1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: fakultaet(2) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: fakultaet(3) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: fakultaet(4) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.3: fakultaet(9) ... \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(1ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.3: function\", () => {\n",
|
||||
" assertEquals(typeof fakultaet, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: Parameter\", () => {\n",
|
||||
" assertEquals(fakultaet.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: fakultaet(0)\", () => {\n",
|
||||
" assertEquals(fakultaet(0), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: fakultaet(1)\", () => {\n",
|
||||
" assertEquals(fakultaet(1), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: fakultaet(2)\", () => {\n",
|
||||
" assertEquals(fakultaet(2), 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: fakultaet(3)\", () => {\n",
|
||||
" assertEquals(fakultaet(3), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: fakultaet(4)\", () => {\n",
|
||||
" assertEquals(fakultaet(4), 24)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.3: fakultaet(9)\", () => {\n",
|
||||
" assertEquals(fakultaet(9), 362880)\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
|
||||
}
|
||||
|
|
@ -0,0 +1,531 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "e77a8d37-be27-42fe-84a4-7b762e26f730",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Module: null prototype] { }"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\"\n",
|
||||
"import \"https://git.amgdhg.de/kg/tslib/raw/branch/main/logger.ts?5\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b4399c83-ae7b-44dd-b786-d85bff292661",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.4 - größter gemeinsamer Teiler\n",
|
||||
"\n",
|
||||
"Programmiere eine Methode `ggT`, die 2 Zahlen `a` und `b` als Parameter annimmt und den größten gemeinsamen Teiler dieser Zahlen bestimmt und diesen als Ergebnis zurückgibt.\n",
|
||||
"\n",
|
||||
"#### Hinweis 1:\n",
|
||||
"der größte gemeinsame Teiler `ggT` ist die ganze Zahl ≥1, die sowohl ein Teiler von `a` ist, als auch ein Teiler von `b`. Gleichzeitig ist der `ggT` auch die größte Zahl, die diese Bedingungen erfüllt.\n",
|
||||
"\n",
|
||||
"#### Hinweis 2:\n",
|
||||
"die Teilbarkeit überprüft man, indem man Modulo rechnet. Gilt `a % t === 0` so ist `t` ein Teiler von `a`. (D.h. beim Teilen von `a` durch `t` gibt es den Rest `0`)\n",
|
||||
"\n",
|
||||
"#### Beispiel:\n",
|
||||
"`ggT(6,15)=3`\n",
|
||||
"\n",
|
||||
"#### Tipp zur Programmierung:\n",
|
||||
"beginne bei `t = a` und zähle dann `t` so lange runter, bis `t` ein Teiler von `a` und `b` ist."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "0a26736e-986c-4a54-bd6d-b41e8c48332f",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function ggT(a, b) {\n",
|
||||
" let t = a\n",
|
||||
" while (a % t !== 0 || b % t !== 0) {\n",
|
||||
" t--\n",
|
||||
" }\n",
|
||||
" return t\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "6420fb99-b5db-41b4-b8ca-e9e8d57522da",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.4: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(1,1)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(1,2)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(2,3)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(2,4)=2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(15,6)=3 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(12,18)=6 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(18,12)=6 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(15,45)=15 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.4: ggT(45,15)=15 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 11 passed | 0 failed \u001b[0m\u001b[38;5;245m(2ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.4: function\", () => {\n",
|
||||
" assertEquals(typeof ggT, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: Parameter\", () => {\n",
|
||||
" assertEquals(ggT.length, 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(1,1)=1\", () => {\n",
|
||||
" assertEquals(ggT(1,1), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(1,2)=1\", () => {\n",
|
||||
" assertEquals(ggT(1,2), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(2,3)=1\", () => {\n",
|
||||
" assertEquals(ggT(2,3), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(2,4)=2\", () => {\n",
|
||||
" assertEquals(ggT(2,4), 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(15,6)=3\", () => {\n",
|
||||
" assertEquals(ggT(15,6), 3)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(12,18)=6\", () => {\n",
|
||||
" assertEquals(ggT(12,18), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(18,12)=6\", () => {\n",
|
||||
" assertEquals(ggT(18,12), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(15,45)=15\", () => {\n",
|
||||
" assertEquals(ggT(15,45), 15)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.4: ggT(45,15)=15\", () => {\n",
|
||||
" assertEquals(ggT(45,15), 15)\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d6b3211a-cc44-404d-84c5-93aba9b53155",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.5 - Fibonacci-Folge\n",
|
||||
"\n",
|
||||
"Programmiere eine Methode `fibonacci` die einen Zahl als Parameter entgegennimmt und die Fibonacci-Folge auf der Konsole ausgibt bis zur angegebenen Zahl (oder kleiner).\n",
|
||||
"\n",
|
||||
"#### Hinweis:\n",
|
||||
"Die Fibonacci-Folge ist folgendermaßen definiert: man beginnt mit den Zahlen 0 und 1. Die jeweils folgende Zahl ist die Summe der beiden Vorgänger.\n",
|
||||
"\n",
|
||||
"#### Beispiel:\n",
|
||||
"0,1,1,2,3,5,8,13,21,34,55,89,144,...\n",
|
||||
"\n",
|
||||
"#### Hinweis zur Ausgabe:\n",
|
||||
"Wird als Parameter `10` angegeben, soll die Fibonacci nach der 8 abbrechen. Gib jede Zahl mit `console.log` ohne Komma aus.\n",
|
||||
"\n",
|
||||
"#### Tipp zur Programmierung:\n",
|
||||
"Speichere die beiden Zahlen in Variablen ab und überlege dir, was du wann addieren und zuweisen musst"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "7eb0df34-14be-4854-9a37-5bae80607753",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function fibonacci(n) {\n",
|
||||
" let a = 0\n",
|
||||
" let b = 1\n",
|
||||
"\n",
|
||||
" while (a <= n) {\n",
|
||||
" console.log(a)\n",
|
||||
" let c = a+b\n",
|
||||
" a = b\n",
|
||||
" b = c\n",
|
||||
" }\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "8b02d832-1cc3-4d0d-a8fc-b377bf8b5e7e",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.5: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: fibonacci(0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: fibonacci(1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: fibonacci(6) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: fibonacci(10) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: fibonacci(100) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.5: fibonacci(500) ... \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.04.5: function\", () => {\n",
|
||||
" assertEquals(typeof fibonacci, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: Parameter\", () => {\n",
|
||||
" assertEquals(fibonacci.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: fibonacci(0)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" fibonacci(0)\n",
|
||||
" assertEquals(console.end(), '0')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: fibonacci(1)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" fibonacci(1)\n",
|
||||
" assertEquals(console.end(), '0\\n1\\n1')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: fibonacci(6)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" fibonacci(6)\n",
|
||||
" assertEquals(console.end(), '0\\n1\\n1\\n2\\n3\\n5')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: fibonacci(10)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" fibonacci(10)\n",
|
||||
" assertEquals(console.end(), '0\\n1\\n1\\n2\\n3\\n5\\n8')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: fibonacci(100)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" fibonacci(100)\n",
|
||||
" assertEquals(console.end(), '0\\n1\\n1\\n2\\n3\\n5\\n8\\n13\\n21\\n34\\n55\\n89')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.5: fibonacci(500)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" fibonacci(500)\n",
|
||||
" assertEquals(console.end(), '0\\n1\\n1\\n2\\n3\\n5\\n8\\n13\\n21\\n34\\n55\\n89\\n144\\n233\\n377')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "fd3274ce-bd67-4d1e-9329-c386a4a461ec",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.6 - Collatz-Folge\n",
|
||||
"\n",
|
||||
"Die Collatz-Folge ist folgendermaßen definiert:\n",
|
||||
"* beginne bei einer Zahl `x`\n",
|
||||
"* ist die Zahl `x` gerade, so ist die nächste Zahl `x/2`\n",
|
||||
"* ist die Zahl `x` ungerade, so ist die nächste Zahl `3*x + 1`\n",
|
||||
"* die Folge endet, wenn man bei 1 angekommen ist.\n",
|
||||
"\n",
|
||||
"Programmiere eine Methode `collatz`, die einen Startwert als Parameter bekommt und ausgehend davon die Collatz-Folge ausgibt.\n",
|
||||
"\n",
|
||||
"#### Beispiele:\n",
|
||||
"* 3,10,5,16,8,4,2,1\n",
|
||||
"* 7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1\n",
|
||||
"\n",
|
||||
"#### Hinweis zur Ausgabe:\n",
|
||||
"Gib jede Zahl mit `console.log` ohne Komma aus."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "238eece7-d51b-4776-acaa-27c4a1ccbb98",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function collatz(c) {\n",
|
||||
" while(c > 1) {\n",
|
||||
" console.log(c)\n",
|
||||
" if (c % 2 === 0) c = c/2\n",
|
||||
" else c = 3*c + 1\n",
|
||||
" }\n",
|
||||
" console.log(c)\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "f65373b5-e2de-4b58-9966-2c6883607cc3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.6: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: collatz(0) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: collatz(1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: collatz(2) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: collatz(5) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: collatz(7) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.6: collatz(97) ... \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(17ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.6: function\", () => {\n",
|
||||
" assertEquals(typeof collatz, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: Parameter\", () => {\n",
|
||||
" assertEquals(collatz.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: collatz(0)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" collatz(0)\n",
|
||||
" assertEquals(console.end(), '0')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: collatz(1)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" collatz(1)\n",
|
||||
" assertEquals(console.end(), '1')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: collatz(2)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" collatz(2)\n",
|
||||
" assertEquals(console.end(), '2\\n1')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: collatz(5)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" collatz(5)\n",
|
||||
" assertEquals(console.end(), '5\\n16\\n8\\n4\\n2\\n1')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: collatz(7)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" collatz(7)\n",
|
||||
" assertEquals(console.end(), '7\\n22\\n11\\n34\\n17\\n52\\n26\\n13\\n40\\n20\\n10\\n5\\n16\\n8\\n4\\n2\\n1')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.6: collatz(97)\", () => {\n",
|
||||
" console.start(false)\n",
|
||||
" collatz(97)\n",
|
||||
" assertEquals(console.end(), '97\\n292\\n146\\n73\\n220\\n110\\n55\\n166\\n83\\n250\\n125\\n376\\n188\\n94\\n47\\n142\\n71\\n214\\n107\\n322\\n161\\n484\\n242\\n121\\n364\\n182\\n91\\n274\\n137\\n412\\n206\\n103\\n310\\n155\\n466\\n233\\n700\\n350\\n175\\n526\\n263\\n790\\n395\\n1186\\n593\\n1780\\n890\\n445\\n1336\\n668\\n334\\n167\\n502\\n251\\n754\\n377\\n1132\\n566\\n283\\n850\\n425\\n1276\\n638\\n319\\n958\\n479\\n1438\\n719\\n2158\\n1079\\n3238\\n1619\\n4858\\n2429\\n7288\\n3644\\n1822\\n911\\n2734\\n1367\\n4102\\n2051\\n6154\\n3077\\n9232\\n4616\\n2308\\n1154\\n577\\n1732\\n866\\n433\\n1300\\n650\\n325\\n976\\n488\\n244\\n122\\n61\\n184\\n92\\n46\\n23\\n70\\n35\\n106\\n53\\n160\\n80\\n40\\n20\\n10\\n5\\n16\\n8\\n4\\n2\\n1')\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6ab68dbf-26c0-4e28-b75d-17fd9afaaf23",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.04.6 - Länge der Collatz-Folge\n",
|
||||
"\n",
|
||||
"Modifiziere deine Programmierung von oben so und programmiere diese als Funktion `collatzlaenge`, dass die Funktion als Rückgabewert (mit `return`) die Anzahl der Zahlen zurückgibt. Die Ausgabe auf der Konsole kannst du dabei weglassen.\n",
|
||||
"\n",
|
||||
"#### Beispiel:\n",
|
||||
"* `collatzlaenge(3)=8` (da 3,10,5,16,8,4,2,1 -> 8 Zahlen)\n",
|
||||
"* `collatzlaenge(7)=17` (da 7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1 -> 17 Zahlen)\n",
|
||||
"\n",
|
||||
"#### Zusatzaufgabe:\n",
|
||||
"Finde mit dieser Hilfe die Startzahl ≤100, die die längste Collatzfolge erzeugt."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"id": "031e69cd-e7ce-4495-89ce-a265425cf809",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function collatzlaenge(c) {\n",
|
||||
" let l = 1\n",
|
||||
" \n",
|
||||
" while(c > 1) {\n",
|
||||
" l++\n",
|
||||
" if (c % 2 === 0) c = c/2\n",
|
||||
" else c = 3*c + 1\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" return l\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"id": "11bc9be9-218f-4677-b08e-3ad1386e2aec",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.04.7: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(1)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(7)=17 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(13)=10 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(32)=6 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(51)=25 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(82)=111 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.04.7: collatzlaenge(100)=26 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 9 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Deno.test(\"01.04.7: function\", () => {\n",
|
||||
" assertEquals(typeof collatzlaenge, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: Parameter\", () => {\n",
|
||||
" assertEquals(collatzlaenge.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(1)=1\", () => {\n",
|
||||
" assertEquals(collatzlaenge(1), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(7)=17\", () => {\n",
|
||||
" assertEquals(collatzlaenge(7), 17)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(13)=10\", () => {\n",
|
||||
" assertEquals(collatzlaenge(13), 10)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(32)=6\", () => {\n",
|
||||
" assertEquals(collatzlaenge(32), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(51)=25\", () => {\n",
|
||||
" assertEquals(collatzlaenge(51), 25)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(82)=111\", () => {\n",
|
||||
" assertEquals(collatzlaenge(82), 111)\n",
|
||||
"})\n",
|
||||
"Deno.test(\"01.04.7: collatzlaenge(100)=26\", () => {\n",
|
||||
" assertEquals(collatzlaenge(100), 26)\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
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,523 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "d948a729-2d3e-4c5c-9407-82405bf0865e",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Module: null prototype] { }"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\"\n",
|
||||
"import \"https://git.amgdhg.de/kg/tslib/raw/branch/main/logger.ts\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2cc36d84-90e4-41bd-a892-678c483ae88f",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.06.1\n",
|
||||
"Programmiere eine Funktion `getFirstElement`, die ein Array als Parameter bekommt und den ersten Eintrag dieses Arrays zurückgibt."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "b0ce656f-b119-4fe6-bfbf-bbb32a7ca176",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function getFirstElement(a) {\n",
|
||||
" return a[0]\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "6855ea9a-b465-4c3f-b93b-9d4c9bba3aca",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.06.1: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.1: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.1: getFirstElement([1, 2])=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.1: getFirstElement(['Hänsel', 'Gretel'])='Hänsel' ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.1: getFirstElement(['a', 'b', 'c'])='a' ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.1: getFirstElement([4, 2, 9, 4])=4 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 6 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.06.1\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof getFirstElement, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(getFirstElement.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getFirstElement([1, 2])=1`, () => {\n",
|
||||
" assertEquals(getFirstElement([1,2]), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getFirstElement(['Hänsel', 'Gretel'])='Hänsel'`, () => {\n",
|
||||
" assertEquals(getFirstElement(['Hänsel','Gretel']), 'Hänsel')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getFirstElement(['a', 'b', 'c'])='a'`, () => {\n",
|
||||
" assertEquals(getFirstElement(['a','b','c']), 'a')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getFirstElement([4, 2, 9, 4])=4`, () => {\n",
|
||||
" assertEquals(getFirstElement([4,2,9,4]), 4)\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4cb2f333-f1f1-475f-8fe8-a06302a31a62",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.06.2\n",
|
||||
"Programmiere eine Funktion `getLastElement`, die ein Array als Parameter bekommt und den letzten Eintrag dieses Arrays zurückgibt.\n",
|
||||
"### Tipp:\n",
|
||||
"Überlege dir zunächst, wie denn der Index des letzten Elementes ist."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "158385fd-be34-4f1d-9725-7cedee736958",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function getLastElement(a) {\n",
|
||||
" return a[ a.length - 1 ]\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "58a9cc6d-683d-4f86-84b7-600d80d7b06d",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.06.2: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.2: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.2: getLastElement([1, 2])=2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.2: getLastElement(['Hänsel', 'Gretel'])='Gretel' ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.2: getLastElement(['a', 'b', 'c'])='c' ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.2: getLastElement([4, 2, 9, 4])=4 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 6 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.06.2\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof getLastElement, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(getLastElement.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getLastElement([1, 2])=2`, () => {\n",
|
||||
" assertEquals(getLastElement([1,2]), 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getLastElement(['Hänsel', 'Gretel'])='Gretel'`, () => {\n",
|
||||
" assertEquals(getLastElement(['Hänsel','Gretel']), 'Gretel')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getLastElement(['a', 'b', 'c'])='c'`, () => {\n",
|
||||
" assertEquals(getLastElement(['a','b','c']), 'c')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: getLastElement([4, 2, 9, 4])=4`, () => {\n",
|
||||
" assertEquals(getLastElement([4,2,9,4]), 4)\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "3de65b2d-d74b-4eaa-b11e-beed0e658cd3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.06.3 - Zufallszahlen\n",
|
||||
"Programmiere eine Methode `zufallsArray`, die einen Wert `laenge` als Parameter bekommt.\n",
|
||||
"\n",
|
||||
"Zurückgegeben werden soll ein Array, das genau `laenge` Einträge hat und mit Zufallszahlen gefüllt ist.\n",
|
||||
"\n",
|
||||
"### Hinweis:\n",
|
||||
"Zufallszahlen kann man mit `Math.random()` erzeugen.\n",
|
||||
"\n",
|
||||
"### Tipp:\n",
|
||||
"Beginne mit einem leeren Array `let arr = []` und füge anschließend mit einer Schleife und dem `push`-Befehl Einträge hinzu.\n",
|
||||
"\n",
|
||||
"### Tipp:\n",
|
||||
"Rufe die Funktion selbst mit `zufallsArray(10)` auch auf, damit du das Ergebnis auch direkt siehst!"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "367c5e53-49de-4dd0-ba10-723170affff2",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function zufallsArray(n) {\n",
|
||||
" let res = []\n",
|
||||
" for (let i = 0; i < n; i++) {\n",
|
||||
" res.push( Math.random() )\n",
|
||||
" }\n",
|
||||
" return res\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "dfc977ed-abac-4c9f-9867-3227b2d869d6",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.06.3: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.3: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.3: zufallsArray(0)=[] ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.3: zufallsArray(1) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(12ms)\u001b[0m\n",
|
||||
"01.06.3: zufallsArray(10) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.3: zufallsArray(1000) ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 6 passed | 0 failed \u001b[0m\u001b[38;5;245m(14ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.06.3\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof zufallsArray, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(zufallsArray.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: zufallsArray(0)=[]`, () => {\n",
|
||||
" assertEquals(zufallsArray(0), [])\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: zufallsArray(1)`, () => {\n",
|
||||
" let last = 0\n",
|
||||
" for(let i = 0; i < 10; i++) {\n",
|
||||
" let now = zufallsArray(1)\n",
|
||||
" assertEquals(now.length, 1)\n",
|
||||
" assertEquals(now[0] >= 0, true)\n",
|
||||
" assertEquals(now[0] <= 1, true)\n",
|
||||
" assertEquals(now[0] === last, false)\n",
|
||||
" last = now[0]\n",
|
||||
" }\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: zufallsArray(10)`, () => {\n",
|
||||
" let arr = zufallsArray(10)\n",
|
||||
" assertEquals(arr.length, 10)\n",
|
||||
" for (let i = 1; i < arr.length; i++) {\n",
|
||||
" assertEquals(arr[i] >= 0, true)\n",
|
||||
" assertEquals(arr[i] <= 1, true)\n",
|
||||
" if (i > 1) assertEquals(arr[i] === arr[i-1], false)\n",
|
||||
" }\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: zufallsArray(1000)`, () => {\n",
|
||||
" let arr = zufallsArray(1000)\n",
|
||||
" assertEquals(arr.length, 1000)\n",
|
||||
" for (let i = 1; i < arr.length; i++) {\n",
|
||||
" assertEquals(arr[i] >= 0, true)\n",
|
||||
" assertEquals(arr[i] <= 1, true)\n",
|
||||
" if (i > 1) assertEquals(arr[i] === arr[i-1], false)\n",
|
||||
" }\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "383f906a-4a8a-40d0-a5be-1231c3a787eb",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.06.4 - Summe\n",
|
||||
"Programmiere eine Funktion `summe`, die ein Array mit Zahlen als Parameter bekommt und die Summe aller Einträge berechnet und zurückgibt."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"id": "30bef368-4084-4b96-877e-e58549ac4477",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function summe(a) {\n",
|
||||
" let s = 0\n",
|
||||
" for (let i = 0; i < a.length; i++) {\n",
|
||||
" s = s + a[i]\n",
|
||||
" }\n",
|
||||
" return s\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"id": "44dfc6a0-98b3-4c3c-a6b6-79c9b87efeab",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.06.4: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.4: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.4: summe([])=0 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.4: summe([1])=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.4: summe([1,2,3])=6 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.4: summe([1.2, 3.4, 5.6, 7.8, 9.10])=27.1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 6 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.06.4\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof summe, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(summe.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: summe([])=0`, () => {\n",
|
||||
" assertEquals(summe([]), 0)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: summe([1])=1`, () => {\n",
|
||||
" assertEquals(summe([1]), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: summe([1,2,3])=6`, () => {\n",
|
||||
" assertEquals(summe([1,2,3]), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: summe([1.2, 3.4, 5.6, 7.8, 9.10])=27.1`, () => {\n",
|
||||
" assertEquals(summe([1.2, 3.4, 5.6, 7.8, 9.10]), 27.1)\n",
|
||||
"})"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6800b795-bd76-407c-af6f-dc2d2fb9faaf",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.06.5 - Mittelwert\n",
|
||||
"Programmiere eine Funktion `mittelwert`, die vom als Parameter übergebenen Array den Mittelwert berechnet.\n",
|
||||
"\n",
|
||||
"### Tipp:\n",
|
||||
"Nutze die eben programmierte Methode `summe`"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"id": "8ae1ddd8-6969-488c-9308-c9901bd868f7",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function mittelwert(a) {\n",
|
||||
" return summe(a) / a.length\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "55e1afdf-9dc9-4328-8b31-cc2c122af64c",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.06.5: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.5: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.5: mittelwert([0])=0 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.5: mittelwert([1])=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.5: mittelwert([1,2,3])=2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.5: mittelwert([-2, -4, 17, 34])=11.25 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.06.5: mittelwert([1.2, 3.4, 5.6, 7.8, 9.10])=5.42 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 7 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.06.5\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof mittelwert, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(mittelwert.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: mittelwert([0])=0`, () => {\n",
|
||||
" assertEquals(mittelwert([0]), 0)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: mittelwert([1])=1`, () => {\n",
|
||||
" assertEquals(mittelwert([1]), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: mittelwert([1,2,3])=2`, () => {\n",
|
||||
" assertEquals(mittelwert([1,2,3]), 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: mittelwert([-2, -4, 17, 34])=11.25`, () => {\n",
|
||||
" assertEquals(mittelwert([-2, -4, 17, 34]), 11.25)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: mittelwert([1.2, 3.4, 5.6, 7.8, 9.10])=5.42`, () => {\n",
|
||||
" assertEquals(mittelwert([1.2, 3.4, 5.6, 7.8, 9.10]), 5.42)\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
|
||||
}
|
||||
|
|
@ -0,0 +1,223 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "0609fa9a-6337-43c0-a8d2-f947558066ac",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Module: null prototype] { }"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\"\n",
|
||||
"import \"https://git.amgdhg.de/kg/tslib/raw/branch/main/logger.ts\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "e2253715-005d-4a31-b577-4ba32a314da6",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.07.1 - Fakultät\n",
|
||||
"\n",
|
||||
"Eine wichtige mathematische Funktion ist die Fakultät:\n",
|
||||
"$$n! = 1\\cdot2\\cdot3\\cdots(n-2)\\cdot(n-1)\\cdot n$$\n",
|
||||
"zum Beispiel:\n",
|
||||
"$$5!=1\\cdot2\\cdot3\\cdot4\\cdot5=120$$\n",
|
||||
"\n",
|
||||
"Ziel soll sein, die Funktion `fakultaet` rekursiv zu programmieren. Dafür gibt es zunächst einige Vorüberlegungen:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "81e736ba-89cd-4d1a-9b98-8475de6820bd",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 1\n",
|
||||
"Notiere zunächst die rekursiven Funktionsaufrufe für das konkrete Zahlenbeispiel $n=5$:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "58f5ec36-ae74-4ff0-9e47-4f0f83adbd7b",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"fakultaet(5) = fakultaet(4) * 5\n",
|
||||
"fakultaet(4) = fakultaet(3) * 5\n",
|
||||
"fakultaet(3) = fakultaet(2) * 5\n",
|
||||
"fakultaet(2) = fakultaet(1) * 5\n",
|
||||
"fakultaet(1) = 1\n",
|
||||
"\n",
|
||||
"allgemein: fakultaet(n) = fakultaet(n-1) * n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ba4b1f2a-51cc-47ff-8b1f-f8444cddd7b9",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 2\n",
|
||||
"Wann bricht die Rekursion ab, d.h. wann wird nicht mehr erneut die Funktion `fakultaet` aufgerufen?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "261e0c80-0169-424f-840a-47c774029ced",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"bei n === 1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "37316573-632d-440f-9674-1dddbd5039f3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 3\n",
|
||||
"Programmiere die Funktion `fakultaet`:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "b8c40034-1b97-458a-9e30-648c41cb3d7c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function fakultaet(n) {\n",
|
||||
" if (n === 1) return 1\n",
|
||||
" return fakultaet(n-1) * n\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "e114cca7-8b8a-4f7e-8861-1a507a679d3d",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.07.1: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.1: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.1: fakultaet(1)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.1: fakultaet(3)=6 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.1: fakultaet(5)=120 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.1: fakultaet(11)=39916800 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 6 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.07.1\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof fakultaet, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(fakultaet.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fakultaet(1)=1`, () => {\n",
|
||||
" assertEquals(fakultaet(1), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fakultaet(3)=6`, () => {\n",
|
||||
" assertEquals(fakultaet(3), 6)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fakultaet(5)=120`, () => {\n",
|
||||
" assertEquals(fakultaet(5), 120)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fakultaet(11)=39916800`, () => {\n",
|
||||
" assertEquals(fakultaet(11), 39916800)\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
|
||||
}
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "0609fa9a-6337-43c0-a8d2-f947558066ac",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Module: null prototype] { }"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\"\n",
|
||||
"import \"https://git.amgdhg.de/kg/tslib/raw/branch/main/logger.ts\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "e2253715-005d-4a31-b577-4ba32a314da6",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.07.2 - Fibonacci\n",
|
||||
"\n",
|
||||
"Die Fibonacci Folge $F$\n",
|
||||
"$$0,1,1,2,3,5,8,13,21,34,55,\\dots$$\n",
|
||||
"ist folgendermaßen definiert:\n",
|
||||
"* $F(0)=0$\n",
|
||||
"* $F(1)=1$\n",
|
||||
"* $F(2)=F(0)+F(1)$\n",
|
||||
"* $F(3)=F(1)+F(2)$\n",
|
||||
"* bzw. allgemein: $F(n)=F(n-2)+F(n-1)$\n",
|
||||
"\n",
|
||||
"Diese soll nun mit einer Funktion `fibo` programmiert werden, die einen Parameter $n$ übergeben bekommt und dann die $n$-te Fibonacci-Zahl berechnet.\n",
|
||||
"\n",
|
||||
"### Hinweis:\n",
|
||||
"$0$ ist die \"nullte\" Zahl, 1 die erste."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "81e736ba-89cd-4d1a-9b98-8475de6820bd",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 1\n",
|
||||
"Notiere zunächst die rekursiven Funktionsaufrufe für das konkrete Zahlenbeispiel $n=5$:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "58f5ec36-ae74-4ff0-9e47-4f0f83adbd7b",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"fibo(5) = fibo(4) + fibo(3)\n",
|
||||
"fibo(4) = fibo(3) + fibo(2)\n",
|
||||
"fibo(3) = fibo(2) + fibo(1)\n",
|
||||
"fibo(2) = fibo(1) + fibo(0)\n",
|
||||
"fibo(1) = 1\n",
|
||||
"fibo(0) = 0\n",
|
||||
"\n",
|
||||
"allgemein: fibo(n) = fibo(n-1) + fibo(n-2)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ba4b1f2a-51cc-47ff-8b1f-f8444cddd7b9",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 2\n",
|
||||
"Wann bricht die Rekursion ab, d.h. wann wird nicht mehr erneut die Funktion `fibo` aufgerufen?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "261e0c80-0169-424f-840a-47c774029ced",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"bei n === 1 -> return 1\n",
|
||||
"bei n === 0 -> return 0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "37316573-632d-440f-9674-1dddbd5039f3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 3\n",
|
||||
"Programmiere die Funtion `fibo`:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "b8c40034-1b97-458a-9e30-648c41cb3d7c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function fibo(n) {\n",
|
||||
" if (n === 1) return 1\n",
|
||||
" if (n === 0) return 0\n",
|
||||
"\n",
|
||||
" return fibo(n-1) + fibo(n-2)\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "e114cca7-8b8a-4f7e-8861-1a507a679d3d",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.07.2: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.2: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.2: fibo(1)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.2: fibo(3)=2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.2: fibo(5)=5 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.2: fibo(11)=89 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.2: fibo(23)=28657 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(2ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 7 passed | 0 failed \u001b[0m\u001b[38;5;245m(3ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.07.2\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof fibo, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(fibo.length, 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fibo(1)=1`, () => {\n",
|
||||
" assertEquals(fibo(1), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fibo(3)=2`, () => {\n",
|
||||
" assertEquals(fibo(3), 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fibo(5)=5`, () => {\n",
|
||||
" assertEquals(fibo(5), 5)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fibo(11)=89`, () => {\n",
|
||||
" assertEquals(fibo(11), 89)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: fibo(23)=28657`, () => {\n",
|
||||
" assertEquals(fibo(23), 28657)\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
|
||||
}
|
||||
|
|
@ -0,0 +1,260 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "0609fa9a-6337-43c0-a8d2-f947558066ac",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Module: null prototype] { }"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import { assertEquals } from \"jsr:@std/assert\"\n",
|
||||
"import \"https://git.amgdhg.de/kg/tslib/raw/branch/main/logger.ts\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "e2253715-005d-4a31-b577-4ba32a314da6",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Aufgabe 01.07.3 - Pascal'sches Dreieck\n",
|
||||
"\n",
|
||||
"Das Pascal'sche Dreieck sieht folgendermaßen aus:\n",
|
||||
"\n",
|
||||
"$$\\begin{matrix}1\\\\1\\quad1\\\\1\\quad2\\quad1\\\\1\\quad3\\quad3\\quad1\\\\1\\quad4\\quad6\\quad4\\quad1\\\\1\\quad5\\quad10\\quad10\\quad5\\quad1\\\\1\\quad6\\quad15\\quad20\\quad15\\quad6\\quad1\\\\\\vdots\\qquad\\qquad\\vdots\\qquad\\qquad\\vdots\\end{matrix}$$\n",
|
||||
"\n",
|
||||
"Die Zahlen darin sollen mit der Methode `binom(n,k)` berechnet werden, wobei $n$ die Zeile und $k$ die Spalte (innerhalb der Zeile) angibt.\n",
|
||||
"\n",
|
||||
"### Hinweis:\n",
|
||||
"Die Zeilen- und Spaltennummerierung beginnt bei 0!"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b84a4891-d9e8-43ca-a0cd-b7b7a1e700ed",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 1\n",
|
||||
"Recherchiere im Internet, wie das Pascal'sche Dreieck bzw. dessen Inhalte **rekursiv** berechnet werden können."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "9a45ec13-32cd-420c-9c45-3f317edce6fb",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"binom(n,k) = binom(n-1,k) + binom(n-1,k-1)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "81e736ba-89cd-4d1a-9b98-8475de6820bd",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 2\n",
|
||||
"Notiere zunächst die rekursiven Funktionsaufrufe für das konkrete Zahlenbeispiel $n=3$ und $k=2$:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "58f5ec36-ae74-4ff0-9e47-4f0f83adbd7b",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ba4b1f2a-51cc-47ff-8b1f-f8444cddd7b9",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 3\n",
|
||||
"Wann bricht die Rekursion ab, d.h. wann wird nicht mehr erneut die Funktion `binom` aufgerufen?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "261e0c80-0169-424f-840a-47c774029ced",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"raw_mimetype": "",
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"bei k === 0 -> return 1 (linke Kante)\n",
|
||||
"bei k === n -> return 1 (rechte Kante)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "37316573-632d-440f-9674-1dddbd5039f3",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Teil 3\n",
|
||||
"Programmiere die Funtion `binom`:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "b8c40034-1b97-458a-9e30-648c41cb3d7c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function binom(n, k) {\n",
|
||||
" if (k === 0) return 1\n",
|
||||
" if (k === n) return 1\n",
|
||||
"\n",
|
||||
" return binom(n-1, k) + binom(n-1, k-1)\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "e114cca7-8b8a-4f7e-8861-1a507a679d3d",
|
||||
"metadata": {
|
||||
"editable": false,
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
},
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"01.07.3: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.3: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.3: binom(0,0)=1 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.3: binom(2,1)=2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.3: binom(5,3)=10 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.3: binom(9,4)=126 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"01.07.3: binom(20,7)=77520 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
||||
"\n",
|
||||
"\u001b[0m\u001b[32mok\u001b[0m | 7 passed | 0 failed \u001b[0m\u001b[38;5;245m(2ms)\u001b[0m\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"let _nr = \"01.07.3\"\n",
|
||||
"Deno.test(`${_nr}: function`, () => {\n",
|
||||
" assertEquals(typeof binom, 'function')\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
||||
" assertEquals(binom.length, 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: binom(0,0)=1`, () => {\n",
|
||||
" assertEquals(binom(0,0), 1)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: binom(2,1)=2`, () => {\n",
|
||||
" assertEquals(binom(2,1), 2)\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: binom(5,3)=10`, () => {\n",
|
||||
" console.start()\n",
|
||||
" assertEquals(binom(5,3), 10)\n",
|
||||
" console.end()\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: binom(9,4)=126`, () => {\n",
|
||||
" console.start()\n",
|
||||
" assertEquals(binom(9,4), 126)\n",
|
||||
" console.end()\n",
|
||||
"})\n",
|
||||
"Deno.test(`${_nr}: binom(20,7)=77520`, () => {\n",
|
||||
" console.start()\n",
|
||||
" assertEquals(binom(20,7), 77520)\n",
|
||||
" console.end()\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
|
||||
}
|
||||
Loading…
Reference in New Issue