erstellt 13.03.99; übersetzt 08.04.03; überarbeitet 08.06.04, 06.06.05, 03.10.06; © Copyright 2003 - 2006 Deutsche Übersetzung Heinrich Gailer


Kapitel 23 Programmieraufgaben — Datei Input

Größe: ungefähr 80 Zeilen, inklusive Leerzeilen und Kommentare

Zeit: ein halber Nachmittag

Problem: Angenommen Sie führen ein Experiment durch, um die Wirkung von ballaststoffreicher Diät auf den Cholesterinspiegel zu testen. Sie haben verschiedene Gruppen von Testpersonen. Zum Beginn des Experiments wird der Cholesterinspiegel jeder Testperson in jeder Gruppe gemessen.

Das Experiment wird für die Dauer eines Monats durchgeführt. Jede Gruppe verzehrt eine unterschiedliche Menge von Ballaststoffen. Am Ende des Monats möchten Sie feststellen, ob es in den Testgruppen eine Verbesserung des Cholesterinspiegel gegeben hat.

Die Daten für das Experiment befinden sich in einer Textdatei. Jede Zeile der Textdatei enthält einen einzeln Integer (in Form von Character-Daten) für die folgenden Informationen.

Anzahl der Gruppen
Anzahl der Mitglieder in Gruppe 1
Gruppe1 Mitglied1 Anfangswert Cholesterin
Gruppe1 Mitglied1 Endwert Cholesterin
Gruppe1 Mitglied2 Anfangswert Cholesterin
Gruppe1 Mitglied2 Endwert Cholesterin
 . . . . .
Gruppe1 letztes Mitglied Anfangswert Cholesterin
Gruppe1 letztes Mitglied Endwert Cholesterin

Anzahl der Mitglieder in Gruppe 2
Gruppe2 Mitglied1 Anfangswert Cholesterin
Gruppe2 Mitglied1 Endwert Cholesterin
 . . . . .
Gruppe2 letztes Mitglied Anfangswert Cholesterin
Gruppe2 letztes Mitglied Endwert Cholesterin
Anzahl der Mitglieder in Gruppe 3
Gruppe3 Mitglied1 Anfangswert Cholesterin
Gruppe3 Mitglied1 Endwert Cholesterin
 . . . . .
Gruppe3 letztes Mitglied Anfangswert Cholesterin
Gruppe3 letztes Mitglied Endwert Cholesterin
Anzahl der Mitglieder in der letzten Gruppe
letzte Gruppe Mitglied1 Anfangswert Cholesterin
letzte Gruppe Mitglied1 Endwert Cholesterin
 . . . . .
letzte Gruppe letztes Mitglied Anfangswert Cholesterin
letzte Gruppe letztes Mitglied Endwert Cholesterin

Die folgende Textdatei ist z.B. für drei Gruppen. Die erste Gruppe hat zwei Mitglieder, die zweite Gruppe hat drei Mitglieder und die letzte Gruppe hat 1 Mitglied:

3
2
200
190
212
210
3
240
220
204
208
256
230
1
202
185

Setzen wir voraus, dass die Daten korrekt sind und die Zahlen in der richtigen Reihenfolge stehen. Schreiben Sie ein Programm, das jede Anzahl von Gruppen (inklusive 0) und jede Anzahl von Mitgliedern in den Gruppen (inklusive 0) zulässt.

Das Programm soll folgendes leisten: Für jede Gruppe soll der Durchschnittswert des Anfangs- und Endwerts des Cholesterinspiegels und der Änderungswert berechnet und ausgegeben werden. Zum Beispiel mit den obenstehenden Daten soll das Programm in etwa folgendes ausgeben:

Gruppe 1  2 Mitglied(er)
  Durchschnittswert Anfangswert Cholesterinspiegel:  206
  Durchschnittswert Endwert Cholesterinspiegel:      200
  Änderung Cholesterinspiegel:                        -6
Gruppe 2  3 Mitglied(er)
  Durchschnittswert Anfangswert Cholesterinspiegel:  233
  Durchschnittswert Endwert Cholesterinspiegel:      219
  Änderung Cholesterinspiegel:                       -14
Gruppe 3  1 Mitglied(er)
  Durchschnittswert Anfangswert Cholesterinspiegel:  202
  Durchschnittswert Endwert Cholesterinspiegel:      185
  Änderung Cholesterinspiegel:                       -17
Fertig mit der Datenverarbeitung.

Hinweise: Verwenden Sie durchweg Integer-Arithmetik. Wenn eine Gruppe aus 0 Mitgliedern besteht, geben Sie diesen Tatbestand aus, aber Sie berechnen in diesem Fall weder den Durchschnitt bzw. die Änderung, noch geben Sie etwas aus. Es wäre sehr hilfreich bevor Sie mit dem Programmieren anfangen, sich das Programm mit einem Programmablaufplan klar zu machen. Der Hauptteil des Programms besteht aus zwei ineinandergeschachtelten Zählschleifen.

Verwenden Sie wohl durchdachte Kommentare, um zu zeigen wie Ihr Programm organisiert ist. Strukturieren Sie Ihr Programm ebenfalls durch entsprechende Einrückungen. Ein schlechtes Einrücken hat einen massiven Punkteverlust zur Folge.

Nehmen Sie als Ausgangspunkt für Ihr Programm das AddiereAusDatei-Programm aus Kapitel 22.

Hier ist ein weiteres Beispiel für eine Input-Datei und deren Output:

4        
5
230
210
230
215
230
220
230
225
230
230
3
210
200
210
200
210
200
0
2
200
190
210
200
Gruppe 1  5 Mitglied(er)
  Durchschnittswert Anfangswert Cholesterinspiegel:  230
  Durchschnittswert Endwert Cholesterinspiegel:      220
  Änderung Cholesterinspiegel:                       -10
Gruppe 2  3 Mitglied(er)
  Durchschnittswert Anfangswert Cholesterinspiegel:  210
  Durchschnittswert Endwert Cholesterinspiegel:      200
  Änderung Cholesterinspiegel:                       -10
Gruppe 3  0 Mitglied(er)
Gruppe 4  2 Mitglied(er)
  Durchschnittswert Anfangswert Cholesterinspiegel:  205
  Durchschnittswert Endwert Cholesterinspiegel:      195
  Änderung Cholesterinspiegel:                       -10
Fertig mit der Datenverarbeitung.

Zurück zum Inhaltsverzeichnis.