inf-abi2027/01 Einführung/03 Bedingungen/04 Übungen.ipynb

274 lines
7.4 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"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": null,
"id": "f21bb2d9-d623-4083-a0ee-d4219678c93c",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "b6985fdb-5098-40f9-a1e8-48a6d763cfb5",
"metadata": {
"editable": false,
"jupyter": {
"source_hidden": true
},
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"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": null,
"id": "de0fe960-c7e1-40b0-8ee8-f0cb91964889",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "4737d8de-51a5-4d5e-afc1-5d5a29700e00",
"metadata": {
"editable": false,
"jupyter": {
"source_hidden": true
},
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"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": null,
"id": "3d5a41a2-5f48-4375-aaae-a466a625598c",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f8335a26-0e7a-477a-9b68-804e8161bfc7",
"metadata": {
"editable": false,
"jupyter": {
"source_hidden": true
},
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"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(0)\", () => {\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
}