292 lines
7.5 KiB
Plaintext
292 lines
7.5 KiB
Plaintext
{
|
|
"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": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"# Aufgabe 03.01.1\n",
|
|
"Lege ein Objekt `p1` an mit den Attributen `x` und `y`. `x` soll dabei 5 sein, `y` -3."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "594735d3-e90e-443e-9eff-e4600c331bc2",
|
|
"metadata": {
|
|
"editable": true,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"let p1 = {\n",
|
|
" x: 5,\n",
|
|
" y: -3\n",
|
|
"}"
|
|
]
|
|
},
|
|
{
|
|
"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": [
|
|
"03.01.1: object ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.1: x ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.1: y ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"\n",
|
|
"\u001b[0m\u001b[32mok\u001b[0m | 3 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"let _nr = \"03.01.1\"\n",
|
|
"Deno.test(`${_nr}: object`, () => {\n",
|
|
" assertEquals(typeof p1, 'object')\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: x`, () => {\n",
|
|
" assertEquals(p1.x, 5)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: y`, () => {\n",
|
|
" assertEquals(p1.y, -3)\n",
|
|
"})"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9eb66210-476a-499e-8965-9c63da2de3e7",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"# Aufgabe 03.01.2\n",
|
|
"Lege einen zweiten Punkt `p2` mit den Koordinaten $(2\\mid1)$ an."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "7daea9ea-3417-48d9-9416-3462cc38f8bc",
|
|
"metadata": {
|
|
"editable": true,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"let p2 = {\n",
|
|
" x: 2,\n",
|
|
" y: 1\n",
|
|
"}"
|
|
]
|
|
},
|
|
{
|
|
"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": [
|
|
"03.01.2: object ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.2: x ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.2: y ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"\n",
|
|
"\u001b[0m\u001b[32mok\u001b[0m | 3 passed | 0 failed \u001b[0m\u001b[38;5;245m(1ms)\u001b[0m\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"let _nr = \"03.01.2\"\n",
|
|
"Deno.test(`${_nr}: object`, () => {\n",
|
|
" assertEquals(typeof p2, 'object')\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: x`, () => {\n",
|
|
" assertEquals(p2.x, 2)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: y`, () => {\n",
|
|
" assertEquals(p2.y, 1)\n",
|
|
"})"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d96b8c74-089f-4ded-85ad-72fca3c93bcd",
|
|
"metadata": {
|
|
"editable": true,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"# Aufgabe 03.01.3\n",
|
|
"\n",
|
|
"Programmiere eine Funktion `abstand`, die zwei Parameter `punkt1` und `punkt2` übergeben bekommt. Es soll angenommen werden, dass diese beiden Parameter Objekte sind mit jeweils den Attributen `x` und `y`.\n",
|
|
"\n",
|
|
"Zurückgegeben werden soll der Abstand der beiden angegebenen Punkte.\n",
|
|
"\n",
|
|
"#### Tipp:\n",
|
|
"Der Abstand wird mit dem Pythagoras berechnet, die Wurzel kann man mit `Math.sqrt(...)` berechnen lassen.\n",
|
|
"\n",
|
|
"#### Beispiel:\n",
|
|
"Wird `abstand(p1, p2)` - also mit den beiden Punkten der letzten beiden Aufgaben aufgerufen, so soll `5` zurückgegeben werden."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "cccdfe03-92f4-4d0f-b3cb-56332dc31b66",
|
|
"metadata": {
|
|
"editable": true,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"function abstand(punkt1, punkt2) {\n",
|
|
" let dx = punkt2.x - punkt1.x\n",
|
|
" let dy = punkt2.y - punkt1.y\n",
|
|
"\n",
|
|
" return Math.sqrt( dx*dx + dy*dy )\n",
|
|
"}"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "87a2ab19-819c-43d6-9fc3-11e53dff9be7",
|
|
"metadata": {
|
|
"editable": false,
|
|
"jupyter": {
|
|
"source_hidden": true
|
|
},
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"03.01.3: function ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.3: Parameter ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.3: abstand(p1,p2)=5 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.3: abstand()=0 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.3: abstand()=0 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.3: abstand()=2 ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"03.01.3: abstand()=13 ... \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\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"let _nr = \"03.01.3\"\n",
|
|
"Deno.test(`${_nr}: function`, () => {\n",
|
|
" assertEquals(typeof abstand, 'function')\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: Parameter`, () => {\n",
|
|
" assertEquals(abstand.length, 2)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: abstand(p1,p2)=5`, () => {\n",
|
|
" assertEquals(abstand(p1,p2), 5)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: abstand()=0`, () => {\n",
|
|
" assertEquals(abstand({x:0,y:0},{x:0,y:0}), 0)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: abstand()=0`, () => {\n",
|
|
" assertEquals(abstand({x:1,y:1},{x:1,y:1}), 0)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: abstand()=2`, () => {\n",
|
|
" assertEquals(abstand({x:5,y:0},{x:5,y:2}), 2)\n",
|
|
"})\n",
|
|
"Deno.test(`${_nr}: abstand()=13`, () => {\n",
|
|
" assertEquals(abstand({x:3,y:8},{x:8,y:-4}), 13)\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
|
|
}
|