First Commit
This commit is contained in:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user