diff --git a/EPR/ue01/README.md.txt b/EPR/ue01/README.md.txt new file mode 100644 index 0000000..020b4d2 --- /dev/null +++ b/EPR/ue01/README.md.txt @@ -0,0 +1,65 @@ +author: 7987847, Werner + +Aufgabe 1 +--- + +a. Lauffähig: ja, Ausgabe: Größer als 5 +b. Lauffähig: nein, Fehlerklasse: TypeError, Begründung: 4,2 wird zu einem Tupel, da ein Komma und kein Punkt verwendet wird. Tupel können nicht mit einem Integer verglichen werden. +c. Lauffähig: nein, Fehlerklasse: NameError, Begründung: Die Variable "b" wurde nicht definiert. +d. Lauffähig: ja, Ausgabe: b gibt True + + +Aufgabe 2 +--- + +Das Programm berechnet die für die Klausur angerechneten Bonuspunkte von EPR und GPR. + +Zur Nutzung muss eine kompatible Python version installiert sein. +Akzeptiert werden alle Python 3.x Versionen. + +Das Programm kann mit dem Befehl `python3 main.py` im Ordner gestartet werden. + +Nach dem Aufrufen wird zunächst nach der Anzahl der EPR, GPR und Zur Klausur notwendige Bonus-Punkten gefragt. +Diese müssen als Integer angegeben werden. + +Hinweis: Es kommt zu einem Fehler, wenn kein Integer angegeben wird und das Programm wird abgebrochen. +Hinweis: Es kommt zu einem Fehler wenn die Anzahl der Bonuspunkte für EPR oder GPR nicht im Bereich 0-110 liegt. oder die Zur Klausur notwendigen Bonuspunkte nicht im positiven Zahlenbereich liegt. + +Das Programm berechnet dann die Anzahl der Bonuspunkte, die für die Klausur angerechnet werden. + +Testfälle: + +Im Programmcode sind zu jeder der beiden Mittel jeweils 3 Testfälle angegeben. + +PEP8: + +Der Programmcode ist soweit wie möglich nach PEP8 abgestimmt. +Von der Aufgabe vorgegebene Funktions- und Variablennamen wurden beibehalten. + +Aufgabe 3 +--- + +Das Programm üperprüft, ob die kleinere von zwei Zahlen durch 2, 4 oder 8 teilbar. + +Zur Nutzung muss eine kompatible Python version installiert sein. +Akzeptiert werden alle Python 3.x Versionen. + +Das Programm kann mit dem Befehl `python3 main.py` im Ordner gestartet werden. + +Nach dem Aufrufen wird Aufgabe 2 ausgeführt. +Danach wird nach zwei Zahlen nacheinander gefragt. +Diese müssen als Integer angegeben werden. + +Hinweis: Es kommt zu einem Fehler, wenn kein Integer angegeben wird und das Programm wird abgebrochen. + +Das Programm überprüft dann, ob die kleinere der beiden Zahlen durch 2, 4 oder 8 teilbar ist. +Es wird dann ausgegeben, ob die Zahl durch 2, 4 oder 8 teilbar ist. + +Testfälle: + +Im Programmcode sind zu jeder der beiden Mittel jeweils 3 Testfälle angegeben. + +PEP8: + +Der Programmcode ist soweit wie möglich nach PEP8 abgestimmt. +Von der Aufgabe vorgegebene Funktions- und Variablennamen wurden beibehalten. \ No newline at end of file diff --git a/EPR/ue01/main.py b/EPR/ue01/main.py new file mode 100644 index 0000000..02978fd --- /dev/null +++ b/EPR/ue01/main.py @@ -0,0 +1,84 @@ +'''EPR Übungsblatt 01''' +__author__ = "7987847, Werner" + +# Aufgabe 2 +def bonuspunkte_rechner(bp_epr: int, bp_gpr: int, zbnp: int) -> int: + ''' + Berechnet die Anzahl der Bonuspunkte + :param bonuspunkte_epr: Bonuspunkte EPR + :param bonuspunkte_gpr: Bonuspunkte GPR + :param zbnp: Zum bestehen benötigte Punkte + :return: Anzahl der Bonuspunkte + ''' + # Überprüfung, ob die Werte im erlaubten Bereich liegen + if bp_epr not in range(0, 111) or bp_gpr not in range(0, 111) or zbnp < 0: + raise ValueError("Die Werte sind nicht im erlaubten Bereich.") + return int(min(zbnp/4, (bp_epr+bp_gpr)/14)) + +print("Rechner zur Berechnung der Bonuspunkte für EPR und GPR") + +epr_bp = int(input('Bitte geben Sie die Bonuspunkte EPR ein: ')) +epr_bp = int(input('Bitte geben Sie die Bonuspunkte GPR ein: ')) +zbnp_ = int(input('Bitte geben Sie die zum Bestehen benötigten Punkte ein: ')) + +bonuspunkte = bonuspunkte_rechner(epr_bp, epr_bp, zbnp_) +ergebnis_text = f"Die Anzahl der Bonuspunkte für die Klausur: {bonuspunkte}" +print(ergebnis_text) + +# Testfälle + +# Einfacher Aufruf mit 0 +# bonuspunkte_rechner(0, 0, 0) +# Ausgabe: 0 + +# Aufruf mit Dezimalzahlen und negativen Zahlen +# bonuspunkte_rechner(-3.6, 3.14, 0) +# Ausgabe: ValueError: Die Werte sind nicht im erlaubten Bereich. + +# Aufruf mit realen Werten +# bonuspunkte_rechner(89, 102, 50) +# Ausgabe: 12 + + + +# Aufgabe 3 +def aufgabe_3(zahl_1:int, zahl_2:int) -> None: + ''' + Prüft ob die kleinere Zahl durch 2, 4 oder 8 teilbar ist + ''' + kleinere_zahl = min(zahl_1, zahl_2) + + ist_teilbar = False + + # Überprüfung, ob die kleinere Zahl durch 2, 4 oder 8 teilbar ist + if kleinere_zahl % 8 == 0: + print(f"{kleinere_zahl} ist durch 8 teilbar.") + ist_teilbar = True + if kleinere_zahl % 4 == 0: + print(f"{kleinere_zahl} ist durch 4 teilbar.") + ist_teilbar = True + if kleinere_zahl % 2 == 0: + print(f"{kleinere_zahl} ist durch 2 teilbar.") + ist_teilbar = True + if not ist_teilbar: + print(f"{kleinere_zahl} ist weder durch 2, 4 noch 8 teilbar.") + +print("Rechner zur Prüfung ob die kleinere Zahl durch 2, 4 oder 8 teilbar ist") +aufgabe_3(int(input("Bitte geben Sie die erste Zahl ein: ")), + int(input("Bitte geben Sie die zweite Zahl ein: "))) + +# Testfälle + +# Einfacher Aufruf mit 0 +# aufgabe_3(0, 0) +# Ausgabe: 0 ist durch 8 teilbar. +# 0 ist durch 4 teilbar. +# 0 ist durch 2 teilbar. + +# Aufruf mit Dezimalzahlen und negativen Zahlen +# aufgabe_3(-3.6, 3.14) +# Ausgabe: ValueError: Es muss ein Integer übergeben werden. + +# Aufruf mit natürlichen Werten +# aufgabe_3(89, 102) +# Ausgabe: 89 weder durch 2, 4 noch 8 teilbar. diff --git a/EPR/ue01/temp.py b/EPR/ue01/temp.py new file mode 100644 index 0000000..0d6fdd5 --- /dev/null +++ b/EPR/ue01/temp.py @@ -0,0 +1,5 @@ +a = 5 +b = 10 +if b: + print("b gibt True") +else: print("b gibt False") \ No newline at end of file