C-Kurs/Punktstrukturen: Unterschied zwischen den Versionen
Mutax (Diskussion | Beiträge) K (cp error) |
K |
||
Zeile 6: | Zeile 6: | ||
=== Teil a === | === Teil a === | ||
− | Schreibe je eine struct <tt>punkt_cart</tt> und <tt>punkt_polar</tt>, die einen Punkt in Kartesischen bzw. Polarkoordinaten beschreibt sowie Hilfsfunktionen um solche Punkte zu erzeugen und die Entfernung zwischen Punkten desselben Koordinatensystems zu berechnen. | + | Schreibe je eine <i>struct</i> <tt>punkt_cart</tt> und <tt>punkt_polar</tt>, die einen Punkt in Kartesischen bzw. Polarkoordinaten beschreibt sowie Hilfsfunktionen, um solche Punkte zu erzeugen und die Entfernung zwischen Punkten desselben Koordinatensystems zu berechnen. |
=== Teil b === | === Teil b === | ||
− | Schreibe Hilfsfunktionen, die die Punkte von einem | + | Schreibe Hilfsfunktionen, die die Punkte von einem Typ in einen anderen konvertieren. Dabei soll die bei C typische Vorgehensweise beachtet werden: |
− | Zunächst wird für den neuen Punkt | + | Zunächst wird für den neuen Punkt Speicher alloziiert, dann wird die Hilfsfunktion mit zwei Pointern aufgerufen - dem vorhandenen Punkt und dem Speicherplatz für den umgewandelten Punkt. Der Rückgabewert der Hilfsfunktion soll angeben, ob die Konvertierung erfolgreich war. |
=== Teil c === | === Teil c === | ||
− | Schreibe das Programm nun so um, dass es nur noch eine Art von Punkten gibt. Diese soll intern eine union enthalten, um beide Arten von Koordinatensystemen verarbeiten zu können. In der umgebenden struct soll in einem enum der Typ des Koordinatensystems gespeichert werden. | + | Schreibe das Programm nun so um, dass es nur noch eine Art von Punkten gibt. Diese soll intern eine <i>union</i> enthalten, um beide Arten von Koordinatensystemen verarbeiten zu können. In der umgebenden <i>struct</i> soll in einem <i>enum</i> der Typ des Koordinatensystems gespeichert werden. |
− | Die Hilfsfunkion zum | + | Die Hilfsfunkion zum Berechnen der Entfernungen zwischen Punkten soll nun mit unterschiedlichen Punkten aufgerufen werden können und die korrekte Entfernung der Punkte zueinander ausgeben. |
=== Zusatzaufgabe === | === Zusatzaufgabe === | ||
− | Schreibe ein Programm, dass die Koordinaten und Farben von Punkten auf der Standardeingabe entgegennimmt. Anhand der Eingabe soll | + | Schreibe ein Programm, dass die Koordinaten und Farben von Punkten auf der Standardeingabe entgegennimmt. Anhand der Eingabe soll das Koordinatensystem erkannt werden (float, int) rrggbb oder (int,int) rrggbb. |
− | das Koordinatensystem erkannt werden (float, int) rrggbb oder (int,int) rrggbb. | ||
Das Programm soll dann die Entfernung aller Punkte zueinander berechnen und die Punkte grafisch darstellen. | Das Programm soll dann die Entfernung aller Punkte zueinander berechnen und die Punkte grafisch darstellen. |
Version vom 14. September 2010, 17:17 Uhr
In dieser Aufgabe soll eine Programm erstellt werden, dass Punkte in verschiedenen Koordinatensystemen 'verwalten' und beim Rechnen automatisch konvertieren kann.
Inhaltsverzeichnis
Aufgaben
Teil a
Schreibe je eine struct punkt_cart und punkt_polar, die einen Punkt in Kartesischen bzw. Polarkoordinaten beschreibt sowie Hilfsfunktionen, um solche Punkte zu erzeugen und die Entfernung zwischen Punkten desselben Koordinatensystems zu berechnen.
Teil b
Schreibe Hilfsfunktionen, die die Punkte von einem Typ in einen anderen konvertieren. Dabei soll die bei C typische Vorgehensweise beachtet werden:
Zunächst wird für den neuen Punkt Speicher alloziiert, dann wird die Hilfsfunktion mit zwei Pointern aufgerufen - dem vorhandenen Punkt und dem Speicherplatz für den umgewandelten Punkt. Der Rückgabewert der Hilfsfunktion soll angeben, ob die Konvertierung erfolgreich war.
Teil c
Schreibe das Programm nun so um, dass es nur noch eine Art von Punkten gibt. Diese soll intern eine union enthalten, um beide Arten von Koordinatensystemen verarbeiten zu können. In der umgebenden struct soll in einem enum der Typ des Koordinatensystems gespeichert werden.
Die Hilfsfunkion zum Berechnen der Entfernungen zwischen Punkten soll nun mit unterschiedlichen Punkten aufgerufen werden können und die korrekte Entfernung der Punkte zueinander ausgeben.
Zusatzaufgabe
Schreibe ein Programm, dass die Koordinaten und Farben von Punkten auf der Standardeingabe entgegennimmt. Anhand der Eingabe soll das Koordinatensystem erkannt werden (float, int) rrggbb oder (int,int) rrggbb.
Das Programm soll dann die Entfernung aller Punkte zueinander berechnen und die Punkte grafisch darstellen.
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)