Universit¨ at Paderborn Fakult¨ at V (EIM) Institut f¨ ur ET & IT
ANGEWANDTE DATENTECHNIK (SOFTWARETECHNIK)
Prof. Dr.-Ing. F. Belli
WS 2012/2013
Ubung 9 ¨
Ubungen zum Fach Grundlagen der Datenverarbeitung ¨
Ubung 9, Rechner¨ ¨ ubungen am 17.12. und 18.12.2012 (Poolraum - P7.2.02.1)
Aufgabe 1:
Kurzaufgaben zu Zeigern (interaktive Wiederholung):
1. Erkl¨aren Sie, wie eine Zeigervariable eines bestimmten Datentyps (z.B. Zeiger aufchar) definiert wird.
2. Erl¨autern Sie die semantischen Unterschiede zwischen einer Variablen eines Datentyps und einer ent- sprechenden Zeigervariablen des selben Datentyps (z.B.int xvs.int *x).
3. Welche zwei grundlegenden Operatoren stellt die Programmiersprache C zur Verf¨ugung, um mit Zeigern arbeiten zu k¨onnen?
4. Listen Sie alle Ihnen bekannten Semantiken der C-Konstrukte*und&auf und erkl¨aren Sie sie!
5. Nehmen Sie Stellung zu den folgenden zwei Codefragmenten:
int *pInt; *pInt = 10;undint *pInt; pInt = 10;
Aufgabe 2:
Implementieren Sie zwei Funktionen, die jeweils die Summe der nat¨urlichen Zahlen von 1 bisnberechnen (
Pn i=1
i = 1 + 2 + 3 +...+n−1 +n). Die erste Funktion soll iterativ, die zweite rekursiv implementiert werden. Innerhalb des Funktionsrumpfes der Funktion, die die L¨osung rekursiv berechnet, sollen keine lokalen Variablen benutzt werden.
Aufgabe 3:
Implementieren Sie eine rekursive Funktion zur Berechnung der Potenz (s. ¨Ubung 2, Aufgabe 2). ¨Uberlegen Sie sich dazu, wie ein einzelner Rekursionsschritt bzw. das Rekursionsende aussieht.
Aufgabe 4:
Gegeben sei eine nat¨urliche Zahlnzur Basis 10. Implementieren Sie eine rekursive Funktion, die diese Zahl zu einer Basisb∈ {N\ {1}}stellenweise auf die Konsole ausgibt.
Beispiel: Eingabe vonn= 1234 undb= 8, Ausgabe auf die Konsole: 2 3 2 2
Hinweis: Die letzte Stelle einer Zahl nzur Basisberh¨alt man durchnmodb. Mittelsndiv b(ganzzahlige Division) l¨aßt sich die letzte Stelle eliminieren.