Sie sind auf Seite 1von 3

Einführung in die Programmierung

Prof. Dr. Franziska Matthäus

Prof. Dr. Matthias Kaschube

Dr. Karsten Tolle

Ausgabe: 08.11.2023
Übungsblatt ÜE-03 Abgabe: 18.11.2023
13:00 Uhr

Module und Imports


Hinweise:
● Es dürfen keine Lösungen aus dem Skript, dem Internet oder anderen Quellen abgeschrieben
werden. Diese Quellen dürfen nur mit Quellenangaben verwendet werden und es muss ein
hinreichend großer Eigenanteil in den Lösungen deutlich zu erkennen sein.
● Digitale Abgaben, die nicht im Format .pdf oder .txt für Texte oder .py für Code erfolgen,
werden nicht bewertet. Bei Abgaben mehrerer Dateien müssen diese als .zip zusammengefasst
werden.
● Achten Sie darauf die Variable __author__ in allen Quellcode Dateien (.py) korrekt zu setzen
(am Anfang des Quellcodes): __author__ = "<Matr-Nr>, <Nachname>"
Beispiel: __author__ = "1234567, Tolle"
… Leerstellen vor und nach dem „=“ und Leerstelle nach dem Komma beachten, sowie keine
spitzen Klammern verwenden.
● Außerdem muss Ihr Name in jeder abgegebenen .pdf und .txt Datei zu finden sein. Abgaben der
Dokumentation, die per Hand geschrieben und eingescannt werden, sind nur in zuvor
abgesprochenen Ausnahmefällen erlaubt.
● Datei- und Ordnernamen sollen keine Umlaute, diakritische oder Sonderzeichen, mit Ausnahme
des Unterstrichs in der Namesmitte, enthalten!

Aktualisierung der Hinweise:


● Beim Programmieren und Kommentieren halten Sie sich an die Regeln im Programmierhandbuch, siehe
Moodle-Kurs (Programmierhandbuch WiSe 23/24 (Style Guide)). Im Zweifelsfall gilt PEP 8.

∑ 10 Punkte
Aufgabe 1 6,5 Punkte
Erstellen Sie ein Python-Modul mit dem Namen "epr_functions.py" und implementieren Sie die folgenden
Funktionen innerhalb dieses Moduls. Achten Sie auch auf den Unterschied zwischen „zurückgeben“ und
„ausgeben“.

1
EPR WiSe 2023/2024
Das Modul soll kommentiert und auch mit DocString-Texten versehen werden. Eine zusätzliche Dokumentation
oder Readme-Datei ist für diese Aufgabe nicht notwendig. Je Funktion sollen aber mindestens drei Testfälle im
Code eingebunden sein (diese sollten ausgeführt werden, wenn das Modul als „main“ ausgeführt wird, also unter
Nutzung von: if __name__ == '__main__': … )

a) Oktal-Rechner
Implementieren Sie eine Funktion "decimal_to_octal", welche als Argument eine positive Ganzzahl (inkl.
der 0) zur Basis 10 entgegennimmt und einen String dieser in der entsprechenden Oktaldarstellung
zurückgibt. Geben Sie außerdem in der Konsole Schritt für Schritt die Umwandlung aus, z.B. nach dem
in GPR erlernten Schema (siehe Folien vom 06.11.2023).

b) Basis-Rechner
Implementieren Sie eine Funktion "decimal_to_basis", welche als Argument zwei positive Ganzzahlen
entgegennimmt. Die erste Zahl entspricht einer Zahl zur Basis 10, die zweite Zahl soll die neue Basis
darstellen. Die Funktion soll einen String der ersten Zahl in entsprechender Basis-Darstellung zurück
geben. Geben Sie außerdem in der Konsole Schritt für Schritt die Umwandlung aus, z.B. nach dem in
GPR erlernten Schema (siehe Folien vom 06.11.2023).

Hinweis: a) und b) geben bis zu 3,5 Punkte. Man kann/sollte den Rumpf der Funktion aus a) durch einen
Aufruf der Funktion von b) ersetzten: decimal_to_basis(<x>,8). Die Aufgabe a) dient also eher zum Einstieg.
Trotzdem müssen beide Funktionen vorhanden sein! Die Funktionen erwarten „positive Ganzzahlen“. In den
Testfällen sollten auch 0-Werte bzw. negative Werte behandelt werden und über Kommentare bzw.
DocStrings sollte der Umgang damit deutlich werden.

c) Turtle 3 Punkte
Die Funktion „chaos_turtle“, welche mit dem Modul turtle umgesetzt werden soll. Dieses Modul ist
Teil der Python Distribution, mit welchem man einfache Zeichnungen erstellen kann.

Hinweis: Sie sollten mit dem Befehl help(turtle) Informationen hierzu erhalten und sich mit dem
Modul vertraut machen.

In IDLE finden Sie ebenfalls Beispielimplementierungen im Package turtledemo. Um sich diese


Anzeigen zu lassen und mit den Beispielen spielen zu können, in IDLE unter dem Menüpunkt Help auf
Turtle Demo drücken (siehe Abbildung 1).

Die Funktion soll folgendes umsetzten: Abbildung 1

1. Es sollen folgende Übergaben möglich sein:


a. Eine positive Zahl welche die Anzahl von Iterationen angeben soll.
b. Die Lage/Position eines Startpunktes (x, y – Werte) für die Turtle (so wird quasi der Stift
genannt).
2. In der Funktion sollen drei verschiedene Punkte definiert werden, diese bilden entsprechen ein
Dreieck (also fest definiert und sollen nicht übergeben werden).
3. Die Turtle soll von seiner aktuellen Position (angefangen beim Startpunkt) den halben Weg zu
einem der Eckpunkte des Dreiecks (zufällig ausgewählt – siehe Modul random) gehen und dort
einen Punkt zeichnen.
4. … der Punkt 3 soll entsprechend der angegebenen Anzahl von Iterationen wiederholt werden.

5. Die Funktion soll nichts zurückgeben.

Bemerkungen: Machen Sie sich vorab mal Gedanken, was final an Zeichnung hierbei herauskommt, es
ist schon verblüffend.
Dokumentation random: https://docs.python.org/3/library/random.html#module-random
2
EPR WiSe 2023/2024
Aufgabe 2 3,5 Punkt
Schreiben Sie ein Python 3.X Programm (in einer separaten Python-Datei), welches das in Aufgabe 1 erstelle
Modul "epr_functions.py" importiert. Über eine Eingabe in der Konsole soll der/die Nutzer/-in entscheiden
können, welches der implementierten Funktionen ausgeführt werden soll und die Möglichkeit haben
Übergabeparameter zu übergeben.

Denken Sie bitte an die Dokumentation für diese Aufgabe. Ebenfalls sollen hierfür Testfälle vorliegen (wobei
diese nicht bei der main-Ausführung laufen sollen, dies ist ja das Hauptprogramm;-).

3
EPR WiSe 2023/2024

Das könnte Ihnen auch gefallen