Читать книгу Algorithmen und Datenstrukturen - Gunter Saake - Страница 50
2.3.5Felder und Zeichenketten
ОглавлениеEine ganze Reihe weiterer Datentypen werden im Laufe dieses Buches behandelt. Für die praktischen Übungen, ein paar Beispiele und die Umsetzung in Java sind einige Datentypen besonders relevant, die wir nun kurz skizzieren werden:
Datentyp char für Zeichen
Der Datentyp char hat als Wertebereich die Zeichen in Texten {A, .., Z, a, ..} mit der einzigen Operation =. Als Erweiterung kann man Operationen für die lexikographische Ordnung und eine Nachfolgerfunktion definieren.
string für Zeichenketten
Der Datentyp string hat als Wertebereich Zeichenketten über Zeichen in char.Für Zeichenketten sind eine ganze Reihe von Operationen sinnvoll:
Gleichheit: =
Konkatenation (»Aneinanderhängen«): +
Selektion des i-ten Zeichens: s[i]
Länge: length
jeder Wert aus char wird als ein string der Länge 1 aufgefasst, wenn er wie folgt notiert wird: "A"
empty oder auch ε als leerer string der Länge 0
weitere Operatoren, etwa substring
array für Felder
Der Datentyp array erlaubt die Definition von »Feldern« mit Werten eines Datentyps als Eintrag, wobei die Ausdehnung fest vorgegeben ist. Ein Array kann eindimensional oder auch mehrdimensional sein und ist damit das Gegenstück zu den mathematischen Konstrukten Vektor und Matrix.Beispiele für Werte dieses Datentyps sind im Falle von Feldern über ganze Zahlen die folgenden Werte:In diesen Beispielen sind die Dimensionen jeweils auf 3 Werte begrenzt. Eine Definition der zugehörigen Wertebereiche könnte wie folgt aussehen:array 1..3 of int;array 1..3, 1..3 of int;Mit den Angaben 1..3 werden die einzelnen Elemente selektierbar oder auch adressierbar. Einige Programmiersprachen, so auch Java, ziehen es vor, mit der Adressierung bei 0 anstelle von 1 zu beginnen – das Prinzip bleibt dasselbe.Typische Operationen auf Feldern sind die folgenden:Gleichheit: =Selektion eines Elementes aus einem Feld A : A[n] oder A[1, 2]Konstruktion eines Feldes: (1, 2, 3) oder ((1, 2, 3), (3, 4, 5), (6, 7, 8))
Datentypkonstruktoren
Letzterer Datentyp ist genau genommen ein Datentypkonstruktor, da mit ihm Felder verschiedener Ausdehnung, Dimensionalität und verschiedener Basisdatentypen gebildet werden können, die jeweils unterschiedliche Datentypen darstellen. Diese Art von Datentypen wird später noch genauer behandelt; die bisherigen Erläuterungen reichen aber aus, um Felder in Beispielen nutzen zu können.