From cb574d21ac165f9faf07f8ad0a561fef2f417e9f Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Fri, 17 Nov 2023 08:43:44 +0100 Subject: [PATCH] exercises --- ...ta_classes.py => data_classes_solution.py} | 0 .../src/{primes.py => primes_solution.py} | 0 Tutorium/tut05/src/template.py | 68 +++++++++++++++++++ 3 files changed, 68 insertions(+) rename Tutorium/tut05/src/{data_classes.py => data_classes_solution.py} (100%) rename Tutorium/tut05/src/{primes.py => primes_solution.py} (100%) create mode 100644 Tutorium/tut05/src/template.py diff --git a/Tutorium/tut05/src/data_classes.py b/Tutorium/tut05/src/data_classes_solution.py similarity index 100% rename from Tutorium/tut05/src/data_classes.py rename to Tutorium/tut05/src/data_classes_solution.py diff --git a/Tutorium/tut05/src/primes.py b/Tutorium/tut05/src/primes_solution.py similarity index 100% rename from Tutorium/tut05/src/primes.py rename to Tutorium/tut05/src/primes_solution.py diff --git a/Tutorium/tut05/src/template.py b/Tutorium/tut05/src/template.py new file mode 100644 index 0000000..b23b3ef --- /dev/null +++ b/Tutorium/tut05/src/template.py @@ -0,0 +1,68 @@ +from dataclasses import dataclass + + +# the greatest common divisor of two numbers `a`, `b` +def gcd(a, b): + pass + + +# this shortens a fraction to its most reduced representation +def shorten_fraction(fraction): + pass + + +@dataclass +class Fraction: + + # Multiplication of two fractions + # `Fraction(1 / 2) * Fraction(2 / 6) -> Fraction(1, 6)` + # Extra: make it possible to multiply `int` with a fraction + # `Fraction(1 / 2) * 2 -> Fraction(1 / 4)` + def __mul__(self, o): + pass + + # The division of two fraction + # `Fraction(1 / 2) / Fraction(2 / 6) -> Fraction(3, 2)` + # Extra: make it possible to divide `int` with a fraction + # `Fraction(1 / 4) / 2 -> Fraction(1 / 2)` + + def __truediv__(self, o): + pass + + # The negative of a fraction + # `-Fraction(1 / 2) -> Fraction(-1 / 2)` + + def __neg__(self): + pass + + # The addition of two fractions + # `Fraction(1 / 4) + Fraction(2 / 8) -> Fraction(1 / 2)` + # Extra: make it possible to add `int` with a fraction + # `Fraction(1 / 4) + 1 -> Fraction(5 / 4)` + + def __add__(self, o): + pass + + # The subtraction of two fractions + # `Fraction(1 / 2) - Fraction(1 / 4) -> Fraction(1 / 4)` + # Extra: make it possible to subtract `int` with a fraction + # `Fraction(5 / 2) - 1 -> Fraction(3 / 2)` + + def __sub__(self, o): + pass + + # The `equal`-function is == and should only care about reduced fractions + # `Fraction(1 / 2) == Fraction(2 / 4)` is True + + def __eq__(self, o): + pass + + # The `not equal`-function is != and should only care about reduced fractions exactly as equal + + def __neq__(self, o): + pass + + # The str function should return this string `(divident / divisor)` + + def __str__(self): + pass