C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Ähnliche Dokumente
C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Excel VBA Arrays, Enumeration und benutzerdefinierte Typen

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Listen. ArrayList. Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren. Dr. Beatrice Amrhein

Schleifen Datenfelder (Arrays) Verzweigungen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Ausgabe:

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Grundlagen der OO- Programmierung in C#

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Objektorientierte Programmierung und Modellierung

2. Programmierung in C

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Grundlagen und Konzepte von C Datenstrukturen

Wertebereich und Genauigkeit der Zahlendarstellung

Felder (1) Allgemeines

C++ - Objektorientierte Programmierung Vererbung

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Objektorientierte Programmierung OOP Programmieren mit Java

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Sprachkonstrukte Verzweigungen und Array-Strukturen

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Java Einführung Collections

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

55 Ring-Queue. size. push. clear. get. Reinhard Schiedermeier / Klaus Köhler, Das Java-Praktikum, dpunkt.verlag, ISBN

C++ - Einführung in die Programmiersprache Schleifen

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Methoden und Wrapperklassen

+ C - Array (Vektoren, Felder)

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Einführung in die Programmierung

Propädeutikum zur Programmierung

Umsetzung einer Klassenkarte in einer Programmiersprache

Computeranwendung und Programmierung (CuP)

Tag 4 Repetitorium Informatik (Java)

Arrays. Einleitung. Deklarieren einer Array Variablen

Institut für Informatik

IT Basics 2 Handout u

Martin Unold INFORMATIK. Geoinformatik und Vermessung

C++ - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

9. Vektoren. (auch Felder/array)

Assoziative Container in C++ Christian Poulter

Algorithmen und Datenstrukturen

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

Probeklausur Informatik 2 Sommersemester 2013

Programmiersprachen Einführung in C

Einstieg in die Informatik mit Java

2. Programmierung in C

Einstieg in die Informatik mit Java

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Programmiertechnik Erweiterungen in Java 5

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden

3.2 Datentypen und Methoden

Studentische Lösung zum Übungsblatt Nr. 7

Programmieren in C/C++ und MATLAB

Variablen und Konstanten

Institut für Informatik

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Einstieg in die Informatik mit Java

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

Einführung in die Programmierung für NF MI. Übung 04

Felder, Zeiger und Adreßrechnung

Propädeutikum. Dipl.-Inf. Frank Güttler

Informatik II Übung 5

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Datenstrukturen / Container in Java

Vorlesung Programmieren

Arrays (Felder/Vektoren)

Arrays. 7.1 Was ist ein Array? Kapitel 7. In diesem Kapitel lernen Sie. Array-Variablen deklarieren

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Einführung in C#.NET. 1 Übersicht. 2 Typen (Types) Dieser Artikel stammt aus dem Magazin von C++.de (

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

4.2 Programmiersprache C

Algorithmen und Programmierung II

Einführung in die Java- Programmierung

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

Teil VII. Hashverfahren

Zustände umsetzen Enumerations (Aufzählungen) Zustandsobjekte

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Grundlagen der Programmierung

10 Die Programmiersprache C99: Zusammenfassung

Transkript:

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue

Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte wie zum Beispiel eine Messreihe zusammen. verwalten eine Menge von Daten, die über ein Index angesprochen werden. basieren auf der definierten Klasse Array. kann ein- oder mehrdimensional sein. C# - Einführung 26.06.12 Seite 2

Eindimensionale Arrays... sind aufeinander gestapelte Behälter gleicher Größe, aber unterschiedlichen Inhalts. sind Listen mit einer bestimmten Anzahl von Einträgen. Die Einträge haben alle den gleichen Datentyp. (0) 1 (1) 2 (2) 3 (3) 4 C# - Einführung 26.06.12 Seite 3

definieren int[] zahlenwerte; float[] messwerte = new float[10]; Datentyp[] variable; Dem Datentyp folgen direkt die eckigen Klammern. Anschließend folgt der frei wählbare Name des Arrays. Ein Array kann gleichzeitig definiert und erzeugt werden. C# - Einführung 26.06.12 Seite 4

erzeugen int[] zahlenwerte; float[] messwerte = new float[10]; zahlenwerte = new int[5];...= new Datentyp[Anzahl]; Mit Hilfe des Schlüsselwortes new wird ein Array von einem bestimmten Datentyp in einer bestimmten Größe erzeugt. Die Größe des Arrays kann durch einen konstanten Wert oder eine Variable festgelegt werden. Die angegebene Größe kann nicht verändert werden. C# - Einführung 26.06.12 Seite 5

Konstante für die Größenangabe nutzen const int MAX_SIZE = 5; int[] werte = new int[max_size]; Die Größenangabe kann nicht innerhalb des Programms verändert werden. Die Konstante muss vor der Nutzung definiert werden. Vorteil: Die Größenangabe des Arrays muss nur an einer Stelle geändert werden. C# - Einführung 26.06.12 Seite 6

automatisch initialisieren int[] zahlenwerte; float[] messwerte = new float[10]; zahlenwerte = new int[5]; Alle Felder sind bei einem Zahlen-Array mit 0 belegt. Referenztypen werden mit Null belegt. C# - Einführung 26.06.12 Seite 7

initialisieren int[] zahlenwerte; float[] messwerte = new float[10]; zahlenwerte = new int[5] { 1, 2, 3, 4, 5 ; In den geschweiften Klammern werden Werte für das Array aufgelistet. Die Elemente in der Liste werden durch Kommata getrennt. Der erste Wert in der Liste wird automatisch dem ersten Feld in dem Array zugewiesen. Durch die Initialisierung wird die Größe des Arrays festgelegt. new int[5] kann durch new int[] ersetzt werden. Die Größe wird durch die Anzahl der Elemente in der Liste festgelegt. C# - Einführung 26.06.12 Seite 8

Elemente eines Arrays int zahl; float[] messwerte = new float[10]; messwerte[0] = (float)zahl; Array[index]; In den eckigen Klammern wird ein Index zur Identifizierung eines Elements in einem Array angegeben. Das erste Element hat den Index 0 und so weiter. C# - Einführung 26.06.12 Seite 9

for-schleife nutzen for (int index = 0; index < zahlenwerte.length; index++) { messwerte[index] = (float) zahlenwerte[index] / 2; Die Methode.Length liefert die Länge aller Dimensionen. Bei einem eindimensionalen Array mit 10 Elementen wird die Größe 10 geliefert. Bei einem mehrdimensionalen Array von 5 x 2 Elementen wird die Größe 10 geliefert. Mit Hilfe der Methode.Rank kann die Anzahl der Dimensionen ermittelt werden. C# - Einführung 26.06.12 Seite 10

foreach-schleife nutzen foreach (float wert in messwerte) { Console.WriteLine(wert + "\n"); foreach (Datentyp Element in Array) Das Array wird vollständig durchlaufen. Der Index wird nicht benötigt. Für jedes Element in dem Array... Das Element muss den gleichen Datentyp wie das Array besitzen. C# - Einführung 26.06.12 Seite 11

Strings string text = "Dies ist ein Text"; string[] wort = new string[10]; foreach(char element in text){ Console.WriteLine(element); wort[0] = "Silber"; wort[1] = "Gold"; for (int index = 0; index < wort.length; index++){ Console.WriteLine(wort[index]); C# - Einführung 26.06.12 Seite 12

als Parameter nutzen private static void arraykopieren(int[] werte) { int[] zahlen = new int[20]; werte.copyto(zahlen, 0); C# - Einführung 26.06.12 Seite 13

Aufruf der Methode static void Main(string[] args) { int[] werte = new int[5]; for (int index = 0; index < werte.getlength(0); index++){ werte[index] = index; arraykopieren(werte); C# - Einführung 26.06.12 Seite 14

Reihenfolge des Arrays umkehren private static void arraykopieren(int[] werte) { int[] messung = new int[20]; Array.Reverse(messung); C# - Einführung 26.06.12 Seite 15

Suche nach einem Array-Elemente private static void arraysuche(){ string[] metalle = new string[10]; metalle[0] = "Silber"; metalle[1] = "Gold"; metalle[2] = "Platin"; metalle[3] = "Palladium"; metalle[4] = "Rhodium"; metalle[5] = "Osmium"; metalle[6] = "Iridium"; metalle[7] = "Ruthenium"; Console.WriteLine("Position " + Array.IndexOf(metalle, "Silber")); C# - Einführung 26.06.12 Seite 16

Array-Elemente sortieren private static void arraysuche(){ string[] metalle = new string[10]; metalle[0] = "Silber"; metalle[1] = "Gold"; metalle[2] = "Platin"; metalle[3] = "Palladium"; metalle[4] = "Rhodium"; metalle[5] = "Osmium"; metalle[6] = "Iridium"; metalle[7] = "Ruthenium"; Array.Sort(metalle); C# - Einführung 26.06.12 Seite 17

Kopie eines Arrays mit Hilfe einer Zuweisung? private static void arraykopieren(int[] werte) { int[] messung; messung = werte; Ein Array wird einem Array zugewiesen. Die Elemente des Arrays werden nicht kopiert. Beide Arrays verweisen auf die gleichen Elemente. Sobald ein Element des Arrays messung verändert wird, wird das passende Element von werte automatisch angepasst. C# - Einführung 26.06.12 Seite 18

Elemente eines Arrays kopieren private static void arraykopieren(int[] werte) { int[] zahlen = new int[20]; werte.copyto(zahlen, 0); Jedes eindimensionale Array hat die Methode CopyTo(). Der Methode werden folgende Parameter übergeben: Wohin sollen die Elemente kopiert werden? Ab welcher Position sollen die Elemente eingefügt werden? Vorhandene Elemente werden überschrieben. Andere Möglichkeit: Copy(). C# - Einführung 26.06.12 Seite 19

Kopie eines Arrays private static void arraykopieren(int[] werte) { int[] messung; messung = werte; messung = (int[])zahlen.clone(); Die Methode.Clone() gibt ein Objekt zurück. Das zurückgegebene Objekt wird in den gewünschten Datentyp konvertiert. Alle Elemente, die einen Basisdatentyp nutzen, werden kopiert. Verweise auf Elemente werden nicht kopiert. C# - Einführung 26.06.12 Seite 20

Mehrdimensionale Arrays... haben mehrere Dimensionen. bilden zum Beispiel Tabellen oder Matrizen ab. (0,0) 1 (0,1) 2 (0,2) 3 (0,3) 4 (1,0) 11 (1,1) 12 (1,2) 13 (1,3) 14 C# - Einführung 26.06.12 Seite 21

definieren int[,] zahl; int[,,] werte = new int[3, 4, 5]; Datentyp[,] variable; Dem Datentyp folgen direkt die eckigen Klammern. In den eckigen Klammern wird für jede Dimension ein Kommata gesetzt. Anschließend folgt der frei wählbare Name des Arrays. Ein Array kann gleichzeitig definiert und erzeugt werden. Alle Dimensionen haben den gleichen Datentyp. C# - Einführung 26.06.12 Seite 22

erzeugen int[,] zahl; int[,,] werte = new int[3, 4, 5]; zahl = new int[2, 4];...= new Datentyp[Anzahl]; Mit Hilfe des Schlüsselwortes new wird ein Array von einem bestimmten Datentyp in einer bestimmten Größe erzeugt. Für jede Dimension muss ein Größenwert angegeben werden. Die verschiedenen Größen für die Dimensionen werden durch Kommata getrennt. C# - Einführung 26.06.12 Seite 23

initialisieren int[,] X_Y_Werte = new int[,]{ {1, 2, 3, 4, 5, {6, 7, 8, 9, 10 ; Die äußeren geschweiften Klammern sammeln alle Dimensionen des Arrays. Die verschiedenen Dimensionen werden durch Kommata getrennt. Jede innere geschweifte Klammer fasst eine Liste von Werten für jede Dimension zusammen. Die Elemente für jede Dimension werden durch Kommata getrennt. C# - Einführung 26.06.12 Seite 24

Elemente eines Arrays int[,] zahl; zahl = new int[2, 4]; zahl[1, 0] = 5; Array[index, index]; Für jede Dimension wird ein Index, getrennt durch ein Kommata angegeben. C# - Einführung 26.06.12 Seite 25

for-schleife nutzen int[,] zahl = new int[2, 4]; for (int zeile = 0; zeile < zahl.getlength(0); zeile++) { for (int spalte = 0; spalte < zahl.getlength(1); spalte++) { zahl[0, 1] = zeile * spalte; Die verschiedenen Dimensionen werden mit Hilfe verschachtelter for-schleifen durchlaufen. Mit Hilfe der Methode.GetLength(dimension) kann die Größe einer Dimension ermittelt werden. C# - Einführung 26.06.12 Seite 26

Enumeration... ist eine Gruppe benannter Konstanten. ist eine Aufzählung von Konstanten zu einem Thema wie zum Beispiel Montag bis Freitag. kann einen bestimmten Status abbilden. bieten die Möglichkeit, Werte einer bestimmten Kategorie (zum Beispiel Fehlercodes) einzuschränken. hat standardmäßig den Datentyp int32, kann aber auch jeden anderen ganzzahligen Datentyp annehmen. C# - Einführung 26.06.12 Seite 27

definieren enum MassEinheit { Hektar, Ar ; enum MassEinheit { Hektar = 10000, Ar = 100 ; Die Aufzählung beginnt mit dem Schlüsselwort enum. Dem Schlüsselwort folgt ein benutzerdefinierter Name. In den geschweiften Klammern werden die Konstanten aufgelistet. Die Konstanten in der Liste werden durch Kommata getrennt. Standardmäßig wird der ersten Konstanten der Wert 0 zugewiesen. Der zweiten Konstanten wird ein Wert plus 1 zugewiesen und so weiter. C# - Einführung 26.06.12 Seite 28

Nummerierung ändern enum MassEinheit { Hektar, Ar ; enum MassEinheit { Hektar = 10000, Ar = 100 ; Mit Hilfe des Gleichheitszeichens kann ein oder mehreren Konstanten ein benutzerdefinierter Wert zugewiesen werden. Falls der nachfolgenden Konstante kein Wert zugewiesen wird, hat diese einen Wert plus 1. Konstanten können auch dieselben Werte besitzen. C# - Einführung 26.06.12 Seite 29

nutzen switch (eingabe){ case (int)masseinheit.hektar: umrechnung = flaeche / ((int)masseinheit.hektar); break; case (int)masseinheit.ar: umrechnung = flaeche / ToAr; break; C# - Einführung 26.06.12 Seite 30

Collections... sind Auflistungen oder Listen. fassen gleiche Objekte zusammen. sind dynamische Datenstrukturen. werden in der Klasse System.Collections definiert. sind zum Beispiel dynamische Array-Listen, Stacks, Queues oder Hash-Tabellen. C# - Einführung 26.06.12 Seite 31

ArrayList... entspricht einem dynamischen Array. ist indexbasiert. besteht aus nicht sortierten Elementen beliebigen Typs. ist nicht typsicher. C# - Einführung 26.06.12 Seite 32

definieren ArrayList artikel = new ArrayList(); In diesem Beispiel wird eine Variable vom Typ ArrayList erstellt. Mit Hilfe des Schlüsselwortes new wird eine neue leere ArrayList erzeugt. C# - Einführung 26.06.12 Seite 33

Elemente hinzufügen artikel.add("kugelschreiber"); artikel.add("bleistift"); Mit Hilfe der Methode.Add() wird ein Element am Ende der Liste angefügt. Das Element kann von einem beliebigen Datentyp sein. C# - Einführung 26.06.12 Seite 34

Elemente löschen artikel.removeat(index); Der Methode.RemoveAt wird ein Index übergeben. Mit Hilfe des Indizes wird das zu löschende Element identifiziert. C# - Einführung 26.06.12 Seite 35

Liste löschen artikel.clear(); Mit Hilfe der Methode.Clear() werden alle Elemente aus der Liste gelöscht. Anschließend ist die Liste leer. C# - Einführung 26.06.12 Seite 36

Index nutzen ArrayList artikel = new ArrayList(); artikel.add("kugelschreiber"); artikel.add("bleistift"); for (int index = artikel.count - 1; index >= 0; index--) { string element; element = artikel[index].tostring(); C# - Einführung 26.06.12 Seite 37

Für jedes Element... ArrayList artikel = new ArrayList(); artikel.add("kugelschreiber"); artikel.add("bleistift"); foreach (Object element in artikel) { Console.WriteLine(element); C# - Einführung 26.06.12 Seite 38

Hashtable... verwaltet Elemente mit Hilfe eines Schlüssels. hat Schlüssel-Werte-Paare als Elemente. Der Schlüssel sowie der Wert kann von einem beliebigen Datentyp sein. Für jeden Schlüssel wird intern ein bestimmter Hashcode vom Datentyp Integer errechnet. C# - Einführung 26.06.12 Seite 39

definieren Hashtable artikel = new Hashtable(); In diesem Beispiel wird eine Variable vom Typ Hashtable erstellt. Mit Hilfe des Schlüsselwortes new wird eine neue leere Hash- Tabelle erzeugt. C# - Einführung 26.06.12 Seite 40

Elemente hinzufügen artikel.add(1, "Kugelschreiber"); artikel.add(2, "Bleistift"); Mit Hilfe der Methode.Add() wird ein Schlüssel-Wert-Paar hinzugefügt. Der Methode wird als Parameter ein Schlüssel und ein Wert übergeben. Die Parameter werden durch Kommata getrennt. C# - Einführung 26.06.12 Seite 41

Ausgabe von Schlüsseln oder Werten Console.WriteLine("\n"); foreach (int index in artikel.keys) { Console.WriteLine(index + " : " + artikel[schluessel]); Console.WriteLine("\n"); foreach (string wert in artikel.values) { Console.WriteLine("Element : " + wert); C# - Einführung 26.06.12 Seite 42

Ausgabe von Schlüssel-Wert-Paaren Console.WriteLine("\n"); foreach (DictionaryEntry element in artikel) { Console.WriteLine(element.Key + " : " + element.value); C# - Einführung 26.06.12 Seite 43

Suche nach Schlüsseln oder Werten if (artikel.containskey(3)) { Console.WriteLine("Key 3 ist vorhanden"); if (artikel.containsvalue("bleistift")) { Console.WriteLine("Der Wert Bleistift ist vorhanden"); C# - Einführung 26.06.12 Seite 44