diff --git a/s1_a4.py b/s1_a4.py new file mode 100644 index 0000000..ca9f928 --- /dev/null +++ b/s1_a4.py @@ -0,0 +1,20 @@ +import math + + +def is_equal_to_with_digits(expected, actual, digits): + return round(expected, digits) == round(actual, digits) + + +expected_value = math.pi ** 2 / 6 + +n = 1 +sum = 0 + +while not is_equal_to_with_digits(expected_value, sum, 6): + sum += 1 / n ** 2 + n += 1 + + if n % 100000 == 0: + print(n, round(sum, 6), round(expected_value, 6), expected_value - sum) + +print("result after", n, "iterations:", round(sum, 6), "; compare value:", round(expected_value, 6), expected_value - sum) diff --git a/s1_a51.py b/s1_a51.py new file mode 100644 index 0000000..b6d10e9 --- /dev/null +++ b/s1_a51.py @@ -0,0 +1,53 @@ +import numbers + + +class BetterMatrix: + def __init__(self, matrix): + zero_count = 0 + self.matrix = [] + self.width = len(matrix) + self.height = len(matrix[0]) + + for row in matrix: + for col in row: + if col == 0: + zero_count += 1 + elif zero_count != 0: + self.matrix.append([zero_count]) + self.matrix.append(col) + zero_count = 0 + else: + self.matrix.append(col) + + if zero_count != 0: + self.matrix.append([zero_count]) + + print(self.matrix) + + def __getitem__(self, row): + if row > self.height or row < 0: + raise ValueError("Value must be between 0 and " + str(self.height - 1)) + + dest_array = [] + dest_amount = (row + 1) * self.width + index = 0 + while dest_amount > len(dest_array): + if isinstance(self.matrix[index], numbers.Number): + dest_array.append(self.matrix[index]) + else: + for i in range(self.matrix[index][0]): + if dest_amount > len(dest_array): + dest_array.append(0) + index += 1 + + while len(dest_array) > self.width: + dest_array.pop(0) + + return dest_array + + +converted = BetterMatrix([[3, 0, -2, 11], [0, 0, 9, 0], [0, 7, 0, 0], [0, 0, 0, -3]]) +print(converted[0][0]) +print(converted[1][1]) +print(converted[2][2]) +print(converted[3][3]) diff --git a/s1_a52.pdf b/s1_a52.pdf new file mode 100644 index 0000000..76caa18 Binary files /dev/null and b/s1_a52.pdf differ diff --git a/s1_a53_6.py b/s1_a53_6.py new file mode 100644 index 0000000..62fe5f5 --- /dev/null +++ b/s1_a53_6.py @@ -0,0 +1,33 @@ +print("Teilaufgabe 5.3") +# Durch das Prinzip von Slicing und Verketten +list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +newlist = list[7:] + list[:7] + +print(newlist) + +print("\nTeilaufgabe 5.4") +long_word = "Donaudampfschiffahrtsgesellschaftsstewardess" + +char_array = [*long_word] +print(char_array) +print("Das Wort hat", len(char_array), "viele Buchstaben.") + +unique_characters = set(char_array) +print(unique_characters) +print("Das Wort hat", len(unique_characters), "eindeutige Buchstaben.") + +print("\nTeilaufgabe 5.5") +list = [[1, 2, 3], [2, 1, 3], [4, 0, 1]] +list.sort(key=lambda x: x[1]) +print(list) + +print("\nTeilaufgabe 5.6") + + +def tiergeraeusch(tier): + return {"kuh": "muuh", "schwein": "oink", "pferd": "wieher"}[tier] + + +print(tiergeraeusch("kuh")) +print(tiergeraeusch("schwein")) +print(tiergeraeusch("pferd")) diff --git a/s1_a61_2.py b/s1_a61_2.py new file mode 100644 index 0000000..c0c8b1f --- /dev/null +++ b/s1_a61_2.py @@ -0,0 +1,21 @@ +print("Teilaufgabe 6.1") +text = "This is a test" + +ergebnis_text = text.replace(" ", "-") +print(ergebnis_text) + +print("\nTeilaufgabe 6.2") +s1 = "Hello, World" + +s2 = s1[0:s1.find(" ")] + +# zwei alternative lösungen: +# 1 +ergebnis_text = s2[::-1] +print(ergebnis_text) + +# 2 +ergebnis_text = "".join(reversed(s2)) +print(ergebnis_text) + +s1 = ergebnis_text