Skip to content

Commit be58f72

Browse files
committed
feat: Add exercise and 2 Kleine Aufgaben
1 parent 4b14baa commit be58f72

2 files changed

Lines changed: 97 additions & 0 deletions

File tree

020-Projekt_Taschenrechner/000-Einleitung.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,25 @@ In diesem Kapitel erlernen Sie, …
2222
2323
```
2424

25+
```{hint} 📝 Kleine Aufgabe 1
26+
:icon: false
27+
28+
Die [Aufgabe am Ende des Kapitels](./070-Aufgabe_Erweiterung) kann als Kleine Aufgabe abgegeben werden.
29+
```
30+
31+
```{hint} 📝 Kleine Aufgabe 2
32+
:icon: false
33+
34+
Protokollieren Sie Ihre Nutzung des Kurses. Formulieren Sie, wie Sie an Aufgaben herangegangen sind und wo Sie Probleme hatten.
35+
36+
- Welche Informationen haben Ihnen wo gefehlt?
37+
- Haben Sie die Informationen selbst recherchieren können oder sind Sie "stecken geblieben"?
38+
- Wo ging es Ihrer Meinung nach zu schnell? Wo zu langsam?
39+
- Der Kurs übergeht (teilw. absichtlich) bestimmte Details. Sind Ihnen diese Sprünge aufgefallen und war das schlimm?
40+
41+
Arbeiten Sie die ersten Kapitel des Kurses für insg. mindestens 3 Stunden durch und geben Sie Feedback.
42+
```
43+
2544
```{note} Projektziel
2645
2746
Ziel des Projekts ist es, einen Taschenrechner zu entwickeln, der Berechnungen

020-Projekt_Taschenrechner/070-Aufgabe_Erweiterung.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,81 @@ numbering:
88
---
99

1010
# 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+
except ValueError as 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.
88+
```

0 commit comments

Comments
 (0)