Datentypen (III): Hash/Array/Dictionary

Erklärung: Wie kann ich mir zu einem Wert (z.B. einem Namen) einen weiteren Wert merken (z.B. das Alter)? Oft ist es nützlich, zusätzlich zu einem bekannten Wert (dem Schlüssel) einen weiteren Wert zu kennen (den „Wert“).

Beispiel:

Wie kann man sich die Datenstruktur vorstellen? Bild mit Eimer und Fähnchen

Syntaxaufgaben

Doku

Perl * Python * Ruby * PHP * JavaScript * Go

Problemlösungsaufgabe: donau

Schreibe ein Programm donau, dass vom Benutzer eine Eingabe eines der Datenfelder name, länge, quelle, quellhöhe, mündungshöhe erwartet. Und darauf den entsprechenden Wert aus folgendem Datensatz ausgibt:

  name: 'Donau',
  länge: 2857,
  quelle: 'Bregquelle',
  quellhöhe: 1078,
  mündungshöhe: 0,

Aufruf des Programms:

./donau

Ausgabe/Eingabe:

Bitte geben Sie das gewünschte Feld ein: (name, länge, quelle, quellhöhe oder mündungshöhe)
name
Donau

Problemlösungsaufgabe: statistik

Schreibe ein Programm statistik, das vom Benutzer eine Eingabe erwartet. Sobald der Benutzer eine leere Zeile eingibt, gibt das Programm eine Statistik über die Häufigkeit der eingegebenen Zeichen aus.

Aufruf des Programms:

./statistik

Ausgabe/Eingabe:

Bitte geben Sie Zeichen ein. Beenden durch Leerzeile!
Dies ist ein Text. Dies ist MEIN Text. Mein Text ist ein toller Text und nicht nur ein Test!

D --   2
E --   1
I --   1
M --   2
N --   1
T --   5
n --   7
  --  18
! --   1
c --   1
d --   1
e --  12
h --   1
i --  10
l --   2
. --   2
o --   1
r --   2
s --   6
t --  10
u --   2
x --   4

Zusatz 1: Sortiere die Statistik nach dem eingegebenen Zeichen. Aufruf des Programms:

./statistik

Ausgabe/Eingabe:

Bitte geben Sie Zeichen ein. Beenden durch Leerzeile!
Dies ist ein Text. Dies ist MEIN Text. Mein Text ist ein toller Text und nicht nur ein Test!

  --  18
! --   1
. --   2
D --   2
E --   1
I --   1
M --   2
N --   1
T --   5
c --   1
d --   1
e --  12
h --   1
i --  10
l --   2
n --   7
o --   1
r --   2
s --   6
t --  10
u --   2
x --   4

Zusatz 2: Sortiere die Statistik nach der Anzahl der Zeichen. Aufruf des Programms:

./statistik

Ausgabe/Eingabe:

Bitte geben Sie Zeichen ein. Beenden durch Leerzeile!
Dies ist ein Text. Dies ist MEIN Text. Mein Text ist ein toller Text und nicht nur ein Test!

  --  18
e --  12
i --  10
t --  10
n --   7
s --   6
T --   5
x --   4
M --   2
D --   2
. --   2
l --   2
r --   2
u --   2
I --   1
N --   1
E --   1
h --   1
o --   1
c --   1
! --   1
d --   1

Zusatz 3: Gib ein Ascii-Diagramm der Statistik aus. Die Breite der Balken soll dabei für das meist-eingegebene Zeichen auf 60 gesetzt werden. Aufruf des Programms:

./statistik

Ausgabe/Eingabe:

Bitte geben Sie Zeichen ein. Beenden durch Leerzeile!
Dies ist ein Text. Dies ist MEIN Text. Mein Text ist ein toller Text und nicht nur ein Test!

  --  18 888888888888888888
e --  12 222222222222
i --  10 0000000000
t --  10 0000000000
n --   7 7777777
s --   6 666666
T --   5 55555
x --   4 4444
D --   2 22
. --   2 22
M --   2 22
l --   2 22
u --   2 22
r --   2 22
E --   1 1
N --   1 1
I --   1 1
d --   1 1
! --   1 1
c --   1 1
o --   1 1
h --   1 1