Algorithmen und Datenstrukturen

| Algorithmen & Datenstrukturen Programmieren 1 von Prof. Jürgen Plate

# Programmierübungen in "C"

Zur Vorbereitung der Aufgabe gehören:

- sofern nicht in der Angabe vorgeschrieben, geeignete Datenstrukturen (mit Begründung),

- eine vernünftige Unterteilung in Teilprojekte (mit Beschreibung),

- sauber gezeichnete Struktogramme (sofern der Algorithmus sehr einfach ist, genügt eine verbale Beschreibung),

- abschließend vollständige C-Quellprogramme (deren Lauffähigkeit vorzuführen ist).

Je nach Komplexität der Aufgabe können einzelne Punkte stark gekürzt werden.

## Histogramm

Erstellen Sie ein ANSI-C-Programm, mit dem ein Histogramm von Prüfungsnoten ermittelt und in folgender Form auf dem Bildschirm ausgegeben werden kann:

                      Histogramm der Noten
      |
      |
      |
      |
      |
      |
      |
      |
      |
      |
      |
      |
      |
      |                   #
      |                #  #  #
      |             #  #  #  #  #
      |       #     #  #  #  #  #
      | #  #  #     #  #  #  #  #        #
      | #  #  #  #  #  #  #  #  #  #     #  #
      | #  #  #  #  #  #  #  #  #  #  #  #  #
      --+--+--+--+--+--+--+--+--+--+--+--+--+
        0  1  2  3  4  5  6  7  8  9 10 11 12

Die Noten werden bei der Eingabe in Kategorien (0 bis 12) eingeteilt und zwar nach folgenden Schema:

    Noten:      1.0 1.3 1.7 2.0 2.3 2.7 3.0 3.3 3.7 4.0 4.3 4.7 5.0
    Kategorie:   0   1   2   3   4   5   6   7   8   9  10  11  12

Damit die gesamte Bildschirmausgabe sichtbar ist, ist bei Noten, deren Auftritte die Anzahl 20 überschreitet die Ausgabe auf 19 Sternchen zu begrenzen und an der Position des 20. (obersten) Sternchens die tatsächliche Anzahl der Auftritte auszugeben.

Die Noten werden über die Tastatur eingegeben, jeweils eine Note pro Zeile. Das Programm wird bei Eingabe der Note "0" beendet. Danach wird das Histogramm ausgegeben.

### Hinweise zur Lösung :

- Die Eingabe besteht aus drei Zeichen. Prüfen Sie die Eingabe auf korrekte Noten gemäß obiger Skala und geben Sie eine Fehlermeldung bei Falscheingaben aus (der Eingabewert wird dann ignoriert).
- Legen Sie zur Aufnahme der Anzahlen der einzelnen Noten ein int-Array an, dessen Komponenten zweckmäßigerweise über die Noten-Kategorie indiziert werden.
- Die Bildschirmausgabe darf nicht über eine absolute Cursor-Positionierung erfolgen.

###### Letzte Aktualisierung: 16. Mar 2006