1. Einführung
2. Pointer Grundlagen
2.1 Fragen
2.2 Aufgaben
3. Pointer & Felder
3.1 Fragen
3.2 Aufgaben
4. Pointer & Funktionen
4.2 Fragen
4.3 Aufgaben
5. Lösungen
6. Download

4.2 Aufgaben
4.2.1 Zahlentausch
Schreibe ein Programm, in dem 2 float Zahlen von der Tastatur eingelesen werden. Diese sollen in einer tausche - Funktion miteinander vertauscht werden. Gib die beiden Variablen vor und nach dem Tauschen zur Überprüfung auf dem Bildschirm aus.
4.2.2 Kaugummiautomat
Schreibe ein Programm für einen Kaugummiautomaten. Folgende Funktionsprototypen sind gegeben:
 void aufgeldwarten(int *geldeinwurf_pt);
 void kaugummiausgeben(int *geldeinwurf_pt, int *geldstand_pt, int *kaugummistand_pt);
Ein „Sensor“ (Eingabeaufforderung über if-Abfrage) soll überprüfen, ob 1€ eingeworfen worden ist. Wurde der Automat mit 1€ gefüttert, so soll
  1. Ein Kaugummi ausgegeben werden (natürlich Symbolisch)
  2. Der Zählerstand für die Anzahl der Kaugummis um eins verringert werden
  3. Der Zählerstand für sie Summe des Geldes um 1€ erhöht werden
  4. Das Programm in den „Sensor“ Modus zurückkehren
Wenn keine Kaugummis mehr im Automaten sind oder die Geldkassette des Automaten mit 100€ gefüllt ist, soll ein Warnhinweis erscheinen mit der Bitte Kaugummis aufzufüllen oder die Geldkassette zu leeren.
4.2.3 Vektor 3D
Schreibe ein Programm, in dem 2 dreidimensionale Punkte im Raum definiert sind. Das Programm soll eine Funktion enthalten, die den Vektor zwischen den Punkten bestimmt und den Betrag des Vektors ausrechnet. Der Betrag des Vektors soll als Rückgabewert der Funktion zurückgegeben werden und der Vektor soll über Pointer so ausgegeben werden, dass er auch in der main - Funktion abrufbar ist. Nach dem Funktionsaufruf sollen die beiden Punkte und der Vektor, sowie der Betrag des Vektors auf den Bildschirm ausgegeben werden. Für die Berechnungen in der Funktion werden die Befehle "double pow(double x, double y);" und "double sqrt(double x);" benötigt, die in der Header - Datei maht.h stehen. Als Hilfestellung ist folgender Funktionsprototyp gegeben:
	double abstand_3d_zwischen_a_und_b(int *a, int *b, int *c);