added overview readme
This commit is contained in:
62
README.md
62
README.md
@ -1,2 +1,62 @@
|
|||||||
# eidp-klausuraufgaben-2023
|
# Übungsaufgaben zur EidP (WS2023) Klausur
|
||||||
|
|
||||||
|
Alle Aufgaben hier behandeln Konzepte aus der Vorlesung **Einführung in die Programmierung** von der Albert-Ludwig-Universität Freiburg. Hierbei handelt es sich um selbsterstellte Aufgaben der EidP-Tutoren [**Nils Pukropp**](mailto:nils@narl.io) und [**Daniel Mironow**](mailto:mail@danielmironov.dev) die bei der Vorbereitung auf die Klausur helfen sollen.
|
||||||
|
|
||||||
|
## Reihenfolge der Themen
|
||||||
|
|
||||||
|
Es gibt keine direkte Reihenfolge, lediglich Themen die sich teilweise überschneiden. Dennoch gibt es eine Reihenfolge nach Wichtigkeit der Themen:
|
||||||
|
|
||||||
|
- [Grundkonzept Schleifen (`for`, `while`, ...)](./loops)
|
||||||
|
- allgemeine Knobelaufgaben rund um Schleifen
|
||||||
|
- Einfach mit ein paar schwierigeren Aufgaben zum Nachdenken
|
||||||
|
- [Zeichenketten (Strings `str`)](./strings)
|
||||||
|
- allgemeine Knobelaufgaben rund um `str`
|
||||||
|
- Einfach mit ein paar schwierigeren Aufgaben zum Nachdenken
|
||||||
|
- [Dataclasses (OOP `@dataclass`)](./dataclasses)
|
||||||
|
- Objekt orientierte Programmierung mit `@dataclass`
|
||||||
|
- Einfach (Auswendig lernen)
|
||||||
|
- [Pattern Matching (`match`)](./pattern_matching)
|
||||||
|
- Intensive Übungen zu `match`
|
||||||
|
- Mittel (Auswendig lernen, aber erfordert grundlegende Konzepte)
|
||||||
|
- [Typvariabeln (Generics `[T]`)](./generics)
|
||||||
|
- Platzhalter Variabeln um generische Typannotation umzusetzen
|
||||||
|
- Mittel (Auswendig lernen, aber erfordert grundlegende Konzepte)
|
||||||
|
- [Rekursion (Tree)](./recursion)
|
||||||
|
- Sich selbst aufrufende Funktionen
|
||||||
|
- Schwer, da das Konzept etwas verwirrend ist, aber gut für schnelle Punkte in der Klausur!
|
||||||
|
- [Generator](./generator)
|
||||||
|
- Erzeugen von Iteratoren auf die seltsame Python Art und Weise!
|
||||||
|
- Mittel, da das Konzept etwas seltsam ist. Muss man einfach ein paar mal machen!
|
||||||
|
- [Funktionale Programmierung](./functional_programming)
|
||||||
|
- Programmieren-Paradigma bei dem der Programmfluss durch Funktionen bestimmt wird!
|
||||||
|
- Schwer, da das Konzept etwas schwer zu verstehen ist und viele Grundlagen vorraussetzt
|
||||||
|
|
||||||
|
## Wie funktionierts?
|
||||||
|
|
||||||
|
- In jedem Themen-Ordner habt ihr wieder verschiedene Ordner, welche jeweils beinhalten:
|
||||||
|
- **Aufgabenstellungen** zum jeweiligen Thema als `README.md`
|
||||||
|
- Eine **Template-Datei**
|
||||||
|
- Eine **Test-Datei**, damit ihr nicht direkt in die Lösung schauen müsst
|
||||||
|
- Und einen `solution` Ordner der die Musterlösung beinhaltet
|
||||||
|
|
||||||
|
## Wie benutze ich die Test-Datei?
|
||||||
|
|
||||||
|
- Zunächst braucht Ihr `pytest` welches ihr mit `pip install -m pytest` installieren könnt
|
||||||
|
- Könnt auch gerne nachfragen wenn was nicht funktioniert!
|
||||||
|
- Dann könnt ihr einfach die Tests mit `pytest` in der Konsole aufrufen
|
||||||
|
- Schlagen die Tests fehl sieht das so aus:
|
||||||
|

|
||||||
|
- Hier sagt euch Pytest auch was alles nicht an eurem Code funktioniert
|
||||||
|
- Funktioniert euer Code sieht das so aus:
|
||||||
|

|
||||||
|
|
||||||
|
## Kontakt
|
||||||
|
|
||||||
|
- Nils Pukropp (Tutor)
|
||||||
|
- [E-Mail](mailto:nils@narl.io)
|
||||||
|
- [Discord](https://discord.com/users/208979474988007425)
|
||||||
|
- [Telegram](https://t.me/narl_np)
|
||||||
|
- Daniel Mironow (Tutor)
|
||||||
|
- [E-Mail](mailto:mail@danielmironov.dev)
|
||||||
|
- [Discord](https://discord.com/users/236939658301407243)
|
||||||
|
- [Discord-Server](https://discord.gg/naeprrX7hB)
|
0
generator/README.md
Normal file
0
generator/README.md
Normal file
0
generics/README.md
Normal file
0
generics/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Loops
|
12
loops/primes/bak
Normal file
12
loops/primes/bak
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
def is_prime(n: int) -> bool:
|
||||||
|
# TODO: implement
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def next_prime(n: int) -> int:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
|
||||||
|
def prime_factorize(n: int) -> list[int]:
|
||||||
|
# TODO: implement
|
||||||
|
return []
|
@ -1,12 +1,36 @@
|
|||||||
def is_prime(n: int) -> bool:
|
def is_prime(n: int) -> bool:
|
||||||
# TODO: implement
|
if n < 2:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
for i in range(2, n // 2 + 1):
|
||||||
|
if n % i == 0:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def next_prime(n: int) -> int:
|
def next_prime(n: int) -> int:
|
||||||
return -1
|
return n + 1 if is_prime(n + 1) else next_prime(n + 1)
|
||||||
|
|
||||||
|
|
||||||
|
def next_prime_iterative(n: int) -> int:
|
||||||
|
num = n + 1
|
||||||
|
while not is_prime(num):
|
||||||
|
num += 1
|
||||||
|
return num
|
||||||
|
|
||||||
def prime_factorize(n: int) -> list[int]:
|
def prime_factorize(n: int) -> list[int]:
|
||||||
# TODO: implement
|
prime_factors: list[int] = []
|
||||||
return []
|
num = n
|
||||||
|
prime = 2
|
||||||
|
while num > 1:
|
||||||
|
if num % prime == 0:
|
||||||
|
prime_factors.append(prime)
|
||||||
|
num //= prime
|
||||||
|
prime = 2
|
||||||
|
else:
|
||||||
|
prime = next_prime(prime)
|
||||||
|
return prime_factors
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
prime_factorize(10)
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user