You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 020-Projekt_Taschenrechner/070-Aufgabe_Erweiterung.md
+78Lines changed: 78 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,3 +8,81 @@ numbering:
8
8
---
9
9
10
10
# Aufgabe: Erweiterung des Taschenrechners
11
+
12
+
::::{important} Erweiterung des Taschenrechners um zwei Funktionalitäten
13
+
14
+
**Funktionalität 1:**
15
+
16
+
Erweitern Sie den Taschenrechner um Multiplikation (`*`), Subtraktion (`-`) und Division (`/`).
17
+
18
+
Dazu müssen Sie:
19
+
- überarbeiten, wie Sie die zugelassenen Operatoren überprüfen,
20
+
- diese bei der Berechnung jeweils korrekt verarbeiten und
21
+
- und die leere Operatoren-Eingabe korrekt behandeln.
22
+
23
+
:::{hint} Testen ob ein Element `in` einer Liste ist
24
+
```python
25
+
abc = ["a", "b", "c"]
26
+
print("a"in abc) # True
27
+
print("d"in abc) # False
28
+
```
29
+
:::
30
+
31
+
:::{hint} "Neutrale" Werte bei mathematischen Berechnungen
32
+
Für mathematische Operationen gibt es Werte, welche Sie mehrmals in die Berechnung einbeziehen können, ohne das Ergebnis zu verändern.
33
+
34
+
Für die Addiditon ist dies 0:
35
+
$$ 42 + 0 = 42 \\
36
+
0 + 42= 42 $$
37
+
38
+
Für die Multikplikation ist dies 1:
39
+
$$ 42 \cdot 1 = 42\\
40
+
1 \cdot 42 = 42 $$
41
+
42
+
Für die Subtraktion ist dies ebenfalls 0, jedoch ist hier die Reihenfolge relevant:
43
+
$$ 42-0 = 42 $$
44
+
$$ 0-42 \neq 42\\
45
+
0 - 42 = -42$$
46
+
47
+
Ähnliches gilt für die Division:
48
+
$$ 42 \div 1 = 42 = \frac{42}{1} $$
49
+
$$ 1 \div 42 \neq 42\\
50
+
1 \div 42 = \frac{1}{42}$$
51
+
52
+
Wenn Sie überprüfen, dass es mindestens zwei Operanden gibt, können Sie Subtraktion und Division korrekt lösen, indem Sie anfangs Ihr Ergebnis auf den ersten Wert setzen und dann die restlichen Operanden einbeziehen. Hierzu gibt es die Funktion `.pop(0)`, welche Ihnen das Element am Index 0 zurückgibt und dieses dann aus der Liste entfernt.
53
+
54
+
```python
55
+
xs = [1,2,3]
56
+
print(xs)
57
+
x = xs.pop(0)
58
+
print(xs)
59
+
print(x)
60
+
```
61
+
:::
62
+
63
+
64
+
**Funktionalität 2:**
65
+
66
+
Verbessern Sie die Fehlertoleranz des Skripts. Geben Sie der Nutzer\*in Rückmeldung bei der Nutzung falscher Operatoren und wenn die Eingabe für einen Operand nicht als Zahl umgewandelt werden kann. Erlauben Sie dann jeweils weitere Versuche, solange keine leere Eingabe durch die Nutzer\*in erfolgt.
67
+
68
+
Hierfür müssen Sie die passenden Exceptions "einfangen" und korrekt behandeln. Dies geht analog zum folgenden Code:
69
+
70
+
```python
71
+
try: # enclose code you think will raise an Exception
72
+
n =int("Hallo")
73
+
exceptValueErroras e: # explicitly catch the ValueError; multiple except-clauses are allowed
74
+
print("Please only enter whole numbers. Try again.")
75
+
```
76
+
77
+
::::
78
+
79
+
```{hint} 📝 Kleine Aufgabe
80
+
:icon: false
81
+
82
+
Diese Aufgabe kann als Kleine Aufgabe abgegeben werden.
83
+
```
84
+
```{hint} 📝 Kleine Aufgabe
85
+
:icon: false
86
+
87
+
Diese Aufgabe kann als Kleine Aufgabe abgegeben werden.
0 commit comments