Christoph Ott Institut für Angewandte Informationsverarbeitung 25. August 2008
Blatt 2
WiMa-Praktikum/ Programmier-Praktikum (SS 2008)
Präsenz-Übungsaufgaben
Tutoriumstermin: 26. August 2008 11-13 Uhr
Schreibt ein Programm, das das ''kleine Einmaleins'' vollständig am
Bildschirm ausgibt. Achtet bitte auf eine tabellarische,
schöne Ausgabeformatierung.
Hinweis: Es empfiehlt sich die Verwendung von for-Schleifen.
Die Datei teams.dat
enthält die Top-Ten des Medaillenspiegels der
Olympischen Sommerspiele von Athen 2004. In der ersten Zeile befindet sich der
Name des besten Teams, in der zweiten Zeile die Anzahl der gewonnenen
Goldmedaillen, in der dritten Zeile die der Silbermedailen, entsprechend in der
vierten Zeile die der Bronzemedaillen. In der fünften Zeile geht es entsprechend
mit dem zweitbesten Team weiter.
Schreibt ein Programm, das die Datei teams.dat
einliest und am
Bildschirm ausgibt. Die Ausgabe der Medaillenanzahl soll dabei von etwas Text
wie z.B. Anzahl Goldmediallen: 36
umrahmt
werden. Fehlersituationen (wie z.B. ''Datei lässt sich nicht öffnen'' oder
''Eingelesener Wert ist keine Zahl'') müssen in dieser wie in den weiteren
Teilaufgaben nicht unbedingt berücksichtigt werden.
Legt nun für jedes Team eine Struktur an, in der der Name des Teams sowie die
Anzahl der Gold-, Silber- und Bronzemedaillen verwaltet werden. All diese
Strukturen verwaltet Ihr am besten in einem Array (Array-Elemente können schließlich
nicht nur primitive Datentypen sein, sondern auch Strukturen!). Zum Anlegen des
Arrays dürft Ihr davon ausgehen, dass sich genau 10 Teams in der Datei
teams.dat
befinden und somit 10 Teams angelegt werden sollen.
Vergleicht nun die Anzahl der Goldmedaillen zweier aufeinander folgender Teams
und gebt in etwa folgenden Text auf dem Bildschirm aus:
- USA hat 4 Goldmedaillen mehr als China
- China hat 5 Goldmedaillen mehr als Russland
- Russland hat 10 Goldmedaillen mehr als Australien
- Australien hat 1 Goldmedaillen mehr als Japan
- Japan hat 3 Goldmedaillen mehr als Deutschland
- Deutschland hat 2 Goldmedaillen mehr als Frankreich
- Frankreich hat 1 Goldmedaillen mehr als Italien
- Italien hat 1 Goldmedaillen mehr als Suedkorea
- Suedkorea hat 0 Goldmedaillen mehr als Grossbritannien
Nehmt nun an Ihr wisst nicht wie viele Team sich in der Datei teams.dat
befinden. Sucht nach einer geeigneten Möglichkeit die vorige Teilaufgabe dennoch
zu erfüllen.
Ein paar kleine Aufgabe zu Zeigern...
Schreibt ein kleines Programm (ähnlich wie Aufgabe 1.3 auf dem 1.Übungsblatt),
das die Größe eines Zeigers auf eine Integer, eine Double, einen Character und eine
Boolean augibt. Was fällt auf? Waraum ist das so? Auf wieviele verschiedene Adressen kann ein C++-Programm folglich
maximal zugreifen.
Ist es möglich selbst zu bestimmen an welcher Stelle im Speicher eine Variable abgelegt werden soll? Wenn ja, wie
(Tipp: Einfach mal ausprobieren)?
Schreibt ein kleines Programm, das eine ganze Zahl , einen Zeiger und einen Zeiger auf diesen Zeiger
anlegt. Weist den Wert zu und gebt für alle drei Variablen die Adresse, den Wert und gegebenenfalls den Wert
der Variablen, auf den diese Variable zeigt, am Bildschirm aus.
Schreibt das Programm zur Berechnung des Body-Maß-Indizes unter Verwendung von Zeigern. Diesmal sollen Gewicht und
Größe nicht in
Variablen vom Typ eingelesen werden, sondern in .
Auch die Berechnung (Division und Multiplikation) soll über Zeigervariablen durchgeführt werden. Das Ergebnis sollte
natürlich das selbe sein.
Viel Erfolg!
Christoph Ott
2008-08-25