Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.

Ähnliche Präsentationen


Präsentation zum Thema: "Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays."—  Präsentation transkript:

1 Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays

2 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Strukturierte Variablen: Wieso? Strukturierte Variablen erlauben mit einem einzigen Bezeicher die Bezugnahme auf mehr als einen Datenwert. Konsequenzen: Mehr Möglichkeiten für die Datenmodellierung Einfachere Anpassung von Algorithmen an die Bedürfnisse der Anwendung Die verbreitetsten strukturierten Datentypen: Array Record 2/13

3 Strukturierte Variablen ArraysArrays

4 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Strukturierte Datentypen: Der Array Eine Variable vom Typ array ist definiert durch einen Indexbereich und den Datentyp der Elemente des Arrays. BezeichnerIndexbereich Basistyp var Vektor: array[1..10] of real; Diese Deklaration definiert 1 Variable, bestehend aus 10 Elementen, alle vom Typ Real, auf die gesamthaft über den Bezeichner ( Vektor ) oder individuell über den Bezeichner und einen Index ( Vektor[i] ) zugegriffen werden kann. 3/13

5 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Zuweisungsanweisungen mit Arrays u, v: array['a'..'z'] of integer; Die Anweisung u:= v ist gleichbedeutend mit der Anweisungsfolge u['a']:= v['a']; u['b']:= v['b']; u['c']:= v['c']; etc. 4/13

6 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Arraydeklarationen Wenn in Pascal Arrays wie folgt deklariert werden: var u: array[1..3] of real; v: array[1..3] of real; dann ist die Anweisung u:= v nicht möglich, wohl aber u[1]:= v[1]; 5/13

7 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Typische Operationen mit Arrays const N = 200; var MessWerte: array [1..N] of real; i: integer; sum: real; Initialisieren: for i:= 1 to N do MessWerte[i]:= 0 6/13

8 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Typische Operationen mit Arrays Summieren: sum:= 0; for i:= 1 to N do sum:= MessWerte[i] + sum 7/13

9 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Einfache Algorithmen mit Arrays var MessWerte: array [1..N] of real; i, k: integer; min: real; Minimum suchen: for i:= 1 to N do read(MessWerte[i]); k:= 1; min:= MessWerte[k]; for i:= 2 to N do if MessWerte[i] < min thenbegin k:= i; min:= MessWerte[k] end min enthält den kleinsten Wert, k dessen Position im Array 8/13

10 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Minimum suchen, Beispiel 812517292661511 Variablenwerte DurchlaufikminMessWerte[i] 121812 23355 343517 45522 56529 675226 78526 895215 9105211 Wert Index i 9/13 12345678910

11 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Einfache Algorithmen mit Arrays Lineares Suchen eines Wertes in einem Array Im folgenden Array MessWerte soll der Wert 26 gesucht werden: i:= 1; x:= 26; while MessWerte[i] <> x do i:= i + 1 Was passiert, wenn der Wert 4 gesucht wird? Der Algorithmus "schiesst" über die Arraygrenze hinaus! = Laufzeitfehler 10/13 812517292661511 Wert Index i 12345678910

12 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Einfache Algorithmen mit Arrays Lineares Suchen, korrekte Version: i:= 1; x:= 4; N:= 10; while (i x) do i:= i + 1 i 11 Funktioniert allerdings nur mit dem Kurzschlussverfahren bei der Auswertung Boolescher Ausdrücke: Wenn (i <= N) false ergibt dann wird MessWerte[i] <> x nicht ausgewertet. 11/13 812517292661511 Wert Index i 12345678910

13 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Zweidimensionale Arrays Arrayelemente können auch von einem strukturierten Typ sein. Insbesondere können sie ebenfalls vom Typ Array sein. Damit lassen sich mehrdimensionale Strukturen verwalten (z.B. Matrizen) Var A: array[1..8] of array [1..5] of integer; A A[2] A[5,3] 12/13

14 Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich Verschiedene Deklarationen für 2-d Arrays a) var B: array [1..N] of array ['a'..'z'] of integer; b) var B: array [1..N,'a'..'z'] of integer; 13/13


Herunterladen ppt "Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays."

Ähnliche Präsentationen


Google-Anzeigen