Übungen
Aufgabe 1
Am Automaten des Relax-Freibads kann man mit der eigenen Kundenkarte bezahlen. Der auf der Karte gespeicherte Name soll für eine individuelle Begrüßung genutzt werden.
(a) Schreibe eine Funktion, die einen Namen übergeben bekommt. Wenn der Name ein Palindrom ist, soll eine entsprechende Begrüßung zurückgegeben werden, ansonsten eine Standardbegrüßung wie z.B. "Hallo Bruno".
(b) Erweitere die Funktion mit Hilfe geschachtelter if-Ausdrücke um weitere Fälle. Diese könnten lauten:
- Lange Namen -> "Hui, das ist ein langer Name. Hoffentlich kannst du schnell schreiben!"
- Name ist "Michael Phelps" -> "Hi, ist heute nur Relax-Schwimmen angesagt?"
- ... sicher hast du noch eigene Ideen ...
(c) Der Mitarbeiter-Zugang erfolgt über einen gesonderten Automaten. Schreibe eine Funktion mit Hilfe eines Musterabgleichs, so dass die Chefin Frau Aal, der Buchhalter Herr Steinbeißer und die Personalchefin Frau Hecht angemessen begrüßt werden. Alle weiteren Mitarbeiter erhalten eine Standardbegrüßung.
Aufgabe 2
Vornamen können ganz kurz sein wie "Eva" oder "Bo". Sie können aber auch lang sein wie "Katharina" oder "Maximilian". Mit Hilfe einer Funktion sollen Vornamen, die aus mehr als 4 Buchstaben bestehen, nach dem 4. Buchstaben mit einem Punkt abgekürzt werden.
Beispiele für Abkürzungen: Katharina -> Kath. Maximilia -> Maxi. Betül -> Betü. Miran -> Mira. Anna -> Anna Finn -> Finn Eva -> Eva Bo -> Bo
(a) Entwickle eine geeignete Funktion, die solche Abkürzungen erstellt.
(b) Wenn man den Vornamen "Eva-Marie" nach der Regelung oben abkürzt, dann erhält man "Eva-.". Das ist unschön. Überlege dir selbst eine sinnvolle Regel für solche Fälle und berücksichtige sie bei der Implementierung.
Aufgabe 3
Mit einer geeigneten Funktion soll die mittlere von 3 Zahlen bestimmt werden.
Übergabe: - Zahl 1: 13 - Zahl 2: 7 - Zahl 3: 14 Rückgabe: - mittlere Zahl: 13
Entwickle eine geeignete Funktion und teste sie mit verschiedenen Funktionsaufrufen.
Aufgabe 4 (für Experten)
Die Darstellung von Zahlen im Textformat ist eine komplizierte Sache (siehe Zahlen ausschreiben).
Beispiele für Umwandlungen: 374 -> dreihundertsiebenundvierzig 507 -> fünfhundertsieben 111 -> einhundertelf
Entwickle eine Funktion, mit der man dreistellige Zahlen in das Textformat umwandeln kann. Die folgenden Hilfsfunktionen helfen dir beim Zugriff auf die Ziffern einer Zahl.
einer zahl =
modBy 10 zahl
zehner zahl =
(modBy 100 zahl) // 10
hunderter zahl =
...