First Commit

This commit is contained in:
Max
2026-07-20 12:51:12 +02:00
commit 68ab58d4a5
8 changed files with 1995 additions and 0 deletions
+358
View File
@@ -0,0 +1,358 @@
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": [
"# Aufgabe 1\n",
"## Aufgabenstellung\n",
"Schreiben Sie eine Funktion, die die Quersumme einer Zahl berechnet\n",
"- Übergabewert (Parameter): int zahl\n",
"- Rückgabewert: Die berechnete Quersumme\n",
"\n",
"Hinweis: Zur Berechung bietet sch der Modulo Operator (%) an"
],
"id": "87831b5e03132f2e"
},
{
"metadata": {
"collapsed": true
},
"cell_type": "code",
"source": [
"def quersumme(zahl: int) -> int:\n",
" quersumme = 0\n",
" while zahl > 0:\n",
" quersumme = quersumme + (zahl % 10)\n",
" zahl = zahl // 10\n",
" return quersumme"
],
"id": "22ff5a3be651c92c",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": "quersumme(123456)",
"id": "7199cdd91e59145e",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"# Aufgabe 2\n",
"## Aufgabenstellung\n",
"Schreiben Sie ein Programm, das Ihnen ausgibt, ob das über die Integer-Variable \"jahr\" eingeführte Jahr ein\n",
"Schaltjahr ist.\n",
"- Durch 4 ohne Rest teilbare Jahre sind normalerweise Schaltjahre\n",
"- Durch 100 ohne Rest teilbare Jahre sind keine Schaltjahre\n",
"- Durch 400 ohne Rest teilbare Jahre sind jedoch Schaltjahre\n",
"Nutzen Sie zu Umsetzung die Boolesche Variable schaltjahr und lassen Sie sich das Jahr, sowie ob es ein Schaltjahr st\n",
" oder nicht, auf der Konsole ausgeben"
],
"id": "cbff1da5def57156"
},
{
"metadata": {},
"cell_type": "code",
"source": [
"def schaltjahr(jahr:int):\n",
" schaltjahr = False\n",
" if jahr % 4 == 0 and (not jahr % 100 == 0 or jahr % 400 == 0):\n",
" schaltjahr = True\n",
" if schaltjahr:\n",
" print(str(jahr) + \" ist ein Schaltjahr.\")\n",
" else:\n",
" print(str(jahr) + \" ist kein Schaltjahr.\")"
],
"id": "b306c7fb66b3dd10",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": "schaltjahr(2000)",
"id": "5664a9baea24f5c6",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"# Aufgabe 3\n",
"## Aufgabenstellung\n",
"Schreiben Sie ein Programm, das eine Zufallszahl von 1 bis inklusive 99 auswürfelt und den Benutzer in einer Schleife\n",
" über eine Eingabe die Zahl erraten lässt.\n",
"\n",
"Dabei wird die eingegebene Zahl in einen Integer geparst. Bei falscher Eingabe soll wiederholt werden.\n",
"\n",
"Dat Programm teilt nun dem Benutzer mit, ob die Schätzung kleiner oder größer als die gewürfelte Zahl war.\n",
"\n",
"Die Schleife endet, wenn die gewürfte Zahl getroffen wurde. Dem Benutzer wird die Anzahl der Versuche ausgegeben."
],
"id": "6c4934d6e12ce2a6"
},
{
"metadata": {},
"cell_type": "code",
"source": [
"import random\n",
"\n",
"anzahl_versuche = 0\n",
"zufallszahl = 1 + random.randrange(99)\n",
"geratene_zahl = 0\n",
"while not geratene_zahl == zufallszahl:\n",
" geratene_zahl = int(input(\"Geben Sie eine Zahl zwischen 1 und 99 ein.\"))\n",
" print(\"Geraten: \" + str(geratene_zahl))\n",
" if geratene_zahl > zufallszahl:\n",
" print(\"Die gesuchte Zahl ist kleiner als die geratene.\")\n",
" if geratene_zahl < zufallszahl:\n",
" print(\"Die gesuchte Zahl ist größer als die geratene.\")\n",
" anzahl_versuche += 1\n",
"else:\n",
" print(\"Richtig geraten!\")\n",
" print(\"Anzahl Versuche: \" + str(anzahl_versuche))\n"
],
"id": "766664c110d382a8",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"# Aufgabe 4\n",
"## Aufgabenstellung\n",
"In Ihrem Unternehmen werden neue Artikelnummern vergeben. Sie bestehen aus fünf Ziffern und zusätzlich einer Prüfziffer.\n",
"\n",
"Sie sollen ein Programm entwefen, dass eine fünfstellige Zahl einliest, daraus die Prüfziffer errechnet und diese auf\n",
"der Konsole ausgibt.\n",
"\n",
"Wie Sie mit Fehleingaben umgehen, bleibt Ihnen überlassen.\n",
"\n",
"Folgende Informationen erhalten Sie für die Berechnung der Prüfziffer:\n",
"- die geraden Zahlen werden addiert, die ungeraden Zahlen werden mit 3 multipliziert und anschließend addiert\n",
"- die Prüfzimmer ergibt sich aus der letzten Stelle der resultierenden Summe\n",
"\n",
"Beispiel: 27493 -> 2 + 3 * 7 + 4 + 3 * 9 + 3 * 3 = 63 -> Prüfzimmer 3 -> Artikelnummer 27493-3"
],
"id": "68ba83034f1504ad"
},
{
"metadata": {},
"cell_type": "code",
"source": [
"def artikelnummer_bestimmen(zahl:int) -> str:\n",
" if type(zahl) is not int or len(str(zahl)) != 5:\n",
" return \"Die Eingabe muss eine fünfstellige Zahl sein\"\n",
" artikelnummer = str(zahl) + \"-\"\n",
" pruefziffer = 0\n",
" while zahl > 0:\n",
" next = zahl % 10\n",
" if (next % 2 == 1):\n",
" next *= 3\n",
" pruefziffer += next\n",
" zahl = zahl // 10\n",
" return artikelnummer + str(pruefziffer%10)"
],
"id": "c9202f56044a9e52",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"print(artikelnummer_bestimmen(27493))\n",
"print(artikelnummer_bestimmen(123456))\n",
"print(artikelnummer_bestimmen(\"hallo\"))"
],
"id": "9b251562c7cd189b",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"# Aufgabe 5\n",
"## Aufgabenstellung\n",
"Schreiben Sie bitte folgende Funktion:\n",
"```\n",
"Funktionsname: fill_dice_array\n",
"Übergabewerte: 1 Liste 'arr'\n",
" 2 Integer 'min' und 'max'\n",
" 1 Integer 'n'\n",
"Funktion: Die Funktion füllt die Liste arr mit 'n' Zufallszahlen zwischen (beiderseits einschließlich) min und max\n",
"Rückgabewert: keiner\n",
"```\n",
"\n",
"Verwenden Sie bitte die obige Funktion in folgendem Python-Programm - für dieses Programm soll gelten:\n",
"- Das Programm startet eine Schleife, pro Durchlauf\n",
" - wird eine Lsite mit 5 Zufalls-Würfelzahlen gefüllt\n",
" - wird die gefüllte Liste (numerisch) sortiert\n",
" - wird geprüft, ob es sich um eine \"große Straße\" handelt (1,2,3,4,5) oder (2,3,4,5,6)\n",
"- Die Schleife endet, falls eine \"große Straße\" gewürfelt wurde\n",
"- Das Programm endet mit der Anzahl der Schleifen-Durchläufe, die nötig waren, um die \"große Straße\" zu erreichen"
],
"id": "c86f19ff812e866c"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-20T10:46:31.733352413Z",
"start_time": "2026-07-20T10:46:31.623436116Z"
}
},
"cell_type": "code",
"source": [
"import random\n",
"\n",
"def fill_dice_array(min:int, max:int, n:int):\n",
" arr = []\n",
" for i in range(n):\n",
" arr = arr + [random.randrange(1+max-min) + min]\n",
" return arr\n",
"\n",
"def ist_grosse_Strasse(arr:list[int]):\n",
" for i in range (len(arr)-1):\n",
" if arr[i]+1 != arr[i+1]:\n",
" return False\n",
" else:\n",
" return True\n",
"\n",
"anzahl = 1\n",
"while True:\n",
" arr = fill_dice_array(1, 6, 5)\n",
" arr.sort()\n",
" if ist_grosse_Strasse(arr):\n",
" break\n",
" anzahl += 1\n",
"\n",
"print(\"Große Straße: \", arr)\n",
"print(\"Benötigte Versuche: \", anzahl)"
],
"id": "bae8089b2089e3c6",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Große Straße: [1, 2, 3, 4, 5]\n",
"Benötigte Versuche: 13\n"
]
}
],
"execution_count": 78
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Musterlösung",
"id": "79d5c499b765c033"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-07-20T10:46:22.707482868Z",
"start_time": "2026-07-20T10:46:22.563191355Z"
}
},
"cell_type": "code",
"source": [
"from random import randrange\n",
"\n",
"\n",
"def fill_dice_array(arr:list[int], min:int, max:int, n:int)->None:\n",
"\n",
" for i in range(n):\n",
" arr.append(randrange(min, max+1))\n",
"\n",
"\n",
"def is_large_straight(arr):\n",
" for i in range(len(arr)-1):\n",
" if arr[i+1]-arr[i] != 1:\n",
" return False\n",
" return True\n",
"\n",
"\n",
"def main():\n",
" count = 0\n",
" run = True\n",
" while run:\n",
" count = count + 1\n",
" arr = []\n",
" fill_dice_array(arr, 1, 6, 5)\n",
" arr.sort()\n",
" print(arr)\n",
" run = not is_large_straight(arr)\n",
"\n",
" print(\"Benötigte Durchläufe: \", count)\n",
"\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
],
"id": "6a4aa9c742c3cc74",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[2, 3, 3, 4, 5]\n",
"[1, 1, 3, 3, 6]\n",
"[2, 4, 4, 4, 6]\n",
"[2, 3, 4, 5, 5]\n",
"[1, 2, 2, 4, 4]\n",
"[1, 1, 3, 3, 6]\n",
"[2, 2, 3, 3, 4]\n",
"[1, 2, 2, 4, 6]\n",
"[1, 3, 4, 5, 6]\n",
"[1, 2, 4, 5, 5]\n",
"[2, 3, 3, 3, 5]\n",
"[1, 2, 4, 5, 6]\n",
"[2, 2, 4, 4, 6]\n",
"[1, 3, 3, 5, 5]\n",
"[1, 1, 1, 4, 6]\n",
"[1, 3, 4, 4, 5]\n",
"[1, 2, 2, 4, 4]\n",
"[2, 4, 4, 4, 6]\n",
"[1, 1, 2, 3, 4]\n",
"[1, 2, 3, 4, 4]\n",
"[2, 2, 3, 4, 5]\n",
"[1, 4, 4, 5, 6]\n",
"[2, 3, 4, 5, 6]\n",
"Benötigte Durchläufe: 23\n"
]
}
],
"execution_count": 73
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
print('Hello World')