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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 In diesem Kapitel lernen Sie was man in C# unter einem Array versteht wie Sie ein Array deklarieren wie Sie ein Array initialisieren (mit Daten vorbelegen) wie Sie die Elemente eines ansprechen und bearbeiten was mehrdimensionale sind nützliche Methoden für den Zugriff auf kennen was eine ArrayList ist II Grundlagen von C# 7.1 Was ist ein Array? In diesem Kapitel stellen wir Ihnen vor, die auch als Datenfelder bezeichnet werden. Unter einem Array versteht man die Zusammenfassung mehrerer Variablen des gleichen Typs, die unter einem gemeinsamen Namen angesprochen werden können. Die Variablen werden dabei im Speicher direkt hintereinander, also gewissermaßen»am Stück«, abgelegt. Da die Speicherzugriffe bei dieser Anordnung besonders effizient sind, werden vor allem Operationen, die mehrere Elemente eines ansprechen, sehr performant. Um die Wirkungsweise eines zu verstehen, können Sie es mit einer CD-Sammlung vergleichen. Höchstwahrscheinlich bewahren Sie Ihre CDs ja nicht in einer großen Tasche oder in einem Wäschekorb auf, sondern haben sie nebeneinander in ein Regal gestellt. Und Sie werden auch kaum zwischen Ihren CDs irgendwelche anderen Dinge wie Bücher, Landkarten oder Fotos stehen haben. Natürlich würden Sie Ihre CDs dann immer noch finden, aber am schnellsten funktioniert es halt, wenn die CDs fein säuberlich in einer Reihe stehen, denn bei dieser Anordnung lassen sich die CDs am bequemsten und schnellsten»durchblättern«. Array-Variablen deklarieren In Kapitel 4 haben Sie bereits gelernt, dass Sie eine Variable zuerst deklarieren müssen, bevor Sie sie im Programm verwenden können. Bei dieser Deklaration werden zum einen der Name der Variablen und zum anderen ihr Datentyp festgelegt. Im Falle einer Array-Variable sieht die entsprechende Anweisung zum Beispiel so aus: int[] quadratzahlen; 101

2 Wenn Sie diese Anweisung mit der Deklaration einer»normalen«variablen vergleichen, also mit int quadratzahl; fällt unmittelbar auf, dass sich die beiden Anweisungen nur durch die leeren eckigen Klammern unterscheiden. Und genau diese Klammern sind es, die festlegen, dass es sich bei der Variablen quadratzahlen um ein Array handelt. Die einzelnen Elemente dieses besitzen in diesem Beispiel den Datentyp int. Wenn Sie bereits Erfahrungen mit anderen Programmiersprachen haben, wird Ihnen aufgefallen sein, dass in der Deklaration keine Angabe über die Größe des gemacht wird. Hier unterscheidet sich C# von anderen Sprachen, denn bei C# ist die Angabe der Arraygröße bei der Deklaration unzulässig. Array-Variablen instanzieren Nach der Deklaration einer Variablen ist dem Compiler zunächst nur der Name und der Datentyp der neuen Variable bekannt. Bevor Sie mit einer Array-Variablen arbeiten können, müssen Sie noch eine Instanz der Variablen erstellen: quadratzahlen = new int[10]; Erst diese Anweisung sorgt dafür, dass der Variablen Speicherplatz zur Verfügung gestellt wird. Und jetzt muss natürlich auch die gewünschte Größe des angegeben werden, um dessen Speicherbedarf zu ermitteln. In diesem Beispiel haben wir dazu eine Zahl verwendet, es ist aber auch möglich, die Größe des mit Hilfe einer Variablen anzugeben. Dies ist zum Beispiel dann sinnvoll, wenn die benötigte Größe erst zur Laufzeit bekannt ist. Der erzeugten Variablen wird die Adresse des reservierten Speicherbereichs zugewiesen (bei Array- Variablen handelt es sich also nicht um Wert-, sondern um Verweistypen). Außerdem wird bei diesem Vorgang noch der Speicherplatz der Array-Variablen automatisch initialisiert, und zwar je nach verwendetem Datentyp mit 0, null oder false. Im Falle unseres quadratzahlen könnte die Speicherbelegung zum Beispiel so aussehen: Adresse Inhalt ? Variable Inhalt quadratzahlen ? Abbildung 7.1: In der Variablen quadratzahlen befindet sich die Adresse des zugehörigen Speicherplatzes. 102

3 7.2 Elemente eines ansprechen Die in der Abbildung angegebenen Adressen sind der Einfachheit halber in dezimaler Schreibweise angegeben. Wie Sie sehen, belegt das Array die Speicherzellen von bis einschließlich , also insgesamt 40 Byte. Wenn Sie sich noch einmal die Tabelle aus Kapitel 4 vor Augen führen, in der der Speicherbedarf der verschiedenen Integer-Datentypen aufgeführt ist, wird dieser Wert sofort nachvollziehbar: Ein einzelnes int belegt 4 Byte, d. h. ein Array aus zehn int benötigt dementsprechend 40 Byte. Array-Variablen manuell initialisieren Es ist auch möglich, ein Array mit individuellen Werten zu initialisieren. Dazu geben Sie die gewünschten Werte einfach hinter der Variablen innerhalb von geschweiften Klammern an: quadratzahlen = new int[10] {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}; Die Elemente dieser Liste müssen dabei in Datentyp und Anzahl mit der Deklaration der Array- Variablen übereinstimmen. Es ist also zum Beispiel nicht möglich, nur einen Teil des manuell zu initialisieren und für den Rest die automatische Vorbelegung zu übernehmen. Die Deklaration und die Instanziierung einer Array-Variablen lassen sich auch in einer Zeile erledigen: int[] quadratzahlen = new int[10]; Und sogar die manuelle Initialisierung lässt sich noch in der Zeile unterbringen: int[] quadratzahlen = new int[10] {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}; Wenn Sie diese Anweisung einmal genauer betrachten, wird Ihnen wahrscheinlich auffallen, dass sie redundante Informationen enthält. Und zwar wird durch die manuelle Initialisierung die Größenangabe des überflüssig. Der Compiler kann ja anhand der Liste mit den Initialisierungswerten problemlos erkennen, wie viele Elemente das Array erhalten soll. (Erinnern Sie sich? Die Anzahl der Elemente muss mit der Arraygröße korrespondieren). So ist es nur logisch, dass für die letzte Anweisung folgende Kurzform gültig ist: int[] quadratzahlen = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}; II Grundlagen von C# Achtung: Diese Form der Wertzuweisung ist nur bei der Initialisierung erlaubt! Die Schreibweise mit den geschweiften Klammern, die wir Ihnen gerade vorgestellt haben, können Sie nur bei der Initialisierung einer Array-Variablen verwenden. Sobald die Variable einmal erzeugt ist, ist diese Wertzuweisung nicht mehr möglich. 7.2 Elemente eines ansprechen Wir haben im letzten Abschnitt bereits kurz erwähnt, dass dem Namen einer Array-Variablen die Adresse des zugehörigen Speicherbereichs zugewiesen wird. Wie können Sie jedoch die zehn Variablen aus unserem Beispiel einzeln ansprechen? Ganz einfach: Die verschiedenen Elemente des werden durchnummeriert und lassen sich über diese Nummer, die als Index bezeichnet wird, gezielt ansprechen. Probieren Sie es doch gleich mal aus: 103

4 1. Erstellen Sie ein neues Projekt vom Typ Konsolenanwendung und geben Sie ihm den Namen Index. 2. Ergänzen Sie das Codegerüst um die beiden Zeilen: int[] quadratzahlen = { 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 }; Console.WriteLine(quadratzahlen[5]); 3. Starten Sie das Programm mit Strg+F5 und interpretieren Sie das angezeigte Ergebnis. Wie Sie sehen, wird die Nummer des gewünschten Elements einfach hinter dem Namen der Variable in eckigen Klammern angegeben. Der Ausdruck quadratzahlen[5] liefert allerdings den Wert 36, der sich nicht an der fünften, sondern erst an der sechsten Stelle des befindet. Die Erklärung für diesen scheinbaren Fehlgriff: Die Nummerierung beginnt nicht bei 1, sondern bei 0. Diese auf den ersten Blick unsinnige Regelung wird verständlicher, wenn man den Ausdruck quadratzahlen[5] so interpretiert:»nimm die in quadratzahlen gespeicherte Adresse und gehe 5 Elemente weiter«. Will man also das erste Element des ansprechen, muss man nach dieser Regel 0 Schritte weitergehen, da die Adresse des ersten Elements mit der in quadratzahlen abgelegten Adresse des identisch ist. 4. Ändern Sie das Programm, indem Sie [5] durch [10] ersetzen. Starten Sie das Programm diesmal mit F5 (Debuggen/Debuggen starten). static void Main(string[] args) { int[] quadratzahlen = { 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 }; Console.WriteLine(quadratzahlen[10]); } Wie Sie sehen, hat das Programm jetzt eine Ausnahme ausgelöst, da Sie versucht haben, auf das elfte Element des zuzugreifen. Da das Array in diesem Beispiel jedoch nur 10 Elemente enthält, würde der Ausdruck quadratzahlen[10] auf einen Speicherbereich außerhalb des zugreifen. Genau das ist aber unzulässig und führt zu der erwähnten Ausnahme. Sicherheit durch rigorose Überwachung der Speicherzugriffe Dass ein Zugriff auf fremden Speicher dermaßen konsequent geahndet wird, hat seinen guten Grund. Die Vergangenheit hat nämlich gezeigt, dass viele Programme nicht ausreichend vor solchen»fehlgriffen«geschützt sind. Diese Bereichsüberschreitungen führen aber häufig zu schweren Programmabstürzen, weil dabei schnell wichtige Speicherbereiche überschrieben werden können. Und auch viele Viren nutzen solche Schwachstellen gezielt aus, um eigenen Virencode in andere Programme einzuschleusen. Das.NET Framework schiebt solchen Versuchen nun einen dicken Riegel vor. Alle Elemente eines durchlaufen Bisher haben wir nur auf ein einzelnes Array-Element zugegriffen. Häufig müssen jedoch alle Elemente eines angesprochen werden. Diese Aufgabe lässt sich sehr elegant mit einer for-schleife lösen, die wir Ihnen im letzten Kapitel vorgestellt haben. Stellen Sie sich zum Beispiel vor, Sie wollten im Array quadratzahlen jetzt die ersten tausend Quadratzahlen speichern. In diesem Fall wäre natürlich eine Initialisierung, wie wir sie im letzten Abschnitt vorgenommen haben, völlig unpraktikabel. Viel schneller und sicherer geht es so: 104

5 7.2 Elemente eines ansprechen int[] quadratzahlen = new int[1000]; for (int i = 0; i < 1000; i++) quadratzahlen[i] = i * i; Beachten Sie, dass der Schleifenzähler i die Werte von 0 bis 999 durchläuft (und nicht von 1 bis 1000). So elegant diese Lösung auf den ersten Blick auch aussieht sie hat noch einen kleinen Schönheitsfehler: Dadurch, dass in der Abbruchbedingung die Größe des als konstanter Wert verwendet wird, laufen Sie Gefahr, das Array nur teilweise zu initialisieren oder sogar eine IndexOutOfRange-Ausnahme auszulösen, wenn Sie die Größe des ändern und dabei vergessen, die for-schleife entsprechend anzupassen. Das Problem lässt sich in C# jedoch leicht lösen. Sie können nämlich die Größe eines, d. h. die Anzahl seiner Elemente, während der Laufzeit ermitteln. Dazu rufen Sie die Eigenschaft Length der Array-Variablen auf, die genau diese Information liefert. Die geänderte for-schleife sieht dann so aus: for (int i = 0; i < quadratzahlen.length; i++) quadratzahlen[i] = i * i; mit foreach durchlaufen In C# existiert eine weitere Anweisung, mit der sich sogar noch bequemer als mit der for-schleife durchlaufen lassen. Sie heißt foreach und wird folgendermaßen verwendet: foreach (int i in quadratzahlen) Console.WriteLine(i); Die foreach-anweisung durchläuft automatisch alle Elemente des und weist dabei den Wert des aktuellen Elements der Variablen i zu. Das heißt, die Variable i ist in diesem Fall kein Schleifenzähler! Deshalb muss diese Variable auch den gleichen Datentyp besitzen wie die Array-Elemente. Da sich der Zugriff auf ein Array mit foreach so elegant lösen lässt, liegt der Versuch nahe, die foreach- Anweisung auch für die Initialisierung eines Array zu verwenden. Also zum Beispiel: string[] nachnamen = new string[10]; foreach (string s in nachnamen) s = "N.N."; Wenn Sie diese Anweisung kompilieren, erhalten Sie eine Fehlermeldung des Compilers. Die in der foreach-anweisung verwendete Variable ist nämlich eine so genannte Iterationsvariable, auf die Sie nur lesend zugreifen dürfen. II Grundlagen von C# 105

6 Abbildung 7.2: Die foreach-anweisung erlaubt nur lesende Zugriffe. Größe eines ändern Wir hatten zu Beginn des Kapitels gesagt, dass die Größe eines bei seiner Instanziierung festgelegt werden muss. Das ist vom Prinzip her auch richtig, doch es gibt in der Praxis durchaus Situationen, in denen es vorteilhaft wäre, wenn man die Größe eines während des Programmablaufs verändern könnte. Die eigentliche Schwierigkeit ist natürlich das Vergrößern des, denn der Speicherbereich eines muss bekanntlich zusammenhängend sein. Da aber der Speicherplatz direkt hinter einem Array mit nahezu hundertprozentiger Wahrscheinlichkeit bereits belegt ist, gibt es nur eine Möglichkeit, um ein Array zu vergrößern: Es muss ein neues Array der gewünschten Größe erstellt und anschließend der Inhalt des alten hineinkopiert werden. Außerdem müssen alle Variablen angepasst werden, die auf das alte Array verweisen. Zum Schluss kann dann das alte Array gelöscht werden. Seit der Version 2.0 des.net Framework existiert in der Klasse Array eine Methode, die genau diese Aufgaben für Sie erledigt. Die Methode erwartet dazu einen Verweis auf das zu ändernde Array und die neue Anzahl der Elemente. Mit der folgenden Anweisung können Sie zum Beispiel die Größe des quadratzahlen verdoppeln: Array.Resize(ref quadratzahlen, quadratzahlen.length * 2); Unabhängig davon, ob Sie ein Array vergrößern oder verkleinern, erstellt die Resize-Methode in jedem Fall ein neues Array bereit. (Wenn das Array bereits die gewünschte Größe besitzt, bleibt die Methode wirkungslos). Wird das Array verkleinert, fallen beim anschließenden Kopieren die überschüssigen Elemente weg. Beim Vergrößern bleiben demnach die zusätzlichen Elemente des neuen leer bzw. behalten die Werte, mit denen das Array beim Erstellen initialisiert wurde (je nach Datentyp der Elemente mit 0, null oder false). 106

7 7.3 Mehrdimensionale 7.3 Mehrdimensionale Bisher haben wir Sie nur mit eindimensionalen bekannt gemacht. In C# ist es jedoch auch möglich, mehrdimensionale zu erstellen. Das einfachste mehrdimensionale Array ist naturgemäß das zweidimensionale, an dem wir Ihnen den Umgang mit mehrdimensionalen erklären werden. Stellen Sie sich vor, Sie wollten ein Programm erstellen, mit dem man Schiffe versenken spielen kann. Das Spielfeld soll aus 10 Spalten und 10 Zeilen bestehen, hat also insgesamt 100 Felder. Wenn Sie nun diese Felder in einem eindimensionalen Array verwalten würden, müssten Sie bei jedem Zugriff auf das Array die Zeilen- und Spaltenangaben umrechnen. Mit einem zweidimensionalen Array können Sie sich diesen Umstand ersparen, denn es ist genauso aufgebaut wie Ihr Spielfeld. Die Deklaration eines mehrdimensionalen Array erfolgt analog zu den eindimensionalen : int[,] spielfeld1; Die neue Dimension wird also durch ein zusätzliches Komma zwischen den eckigen Klammern angegeben. Dementsprechend sieht die Instanziierung einer der Array-Variablen für unser Beispiel so aus: int[,] spielfeld1 = new int[10,10]; Auch wenn Sie das Array manuell initialisieren wollen, gehen Sie analog zum eindimensionalen Fall vor. Allerdings ist diese Form der Initialisierung bei mehreren Dimensionen deutlich unhandlicher: int[,] arr2d = new int[2, 4] { { 1, 2, 3, 4}, {5, 6, 7, 8} }; Die erste Zahl in den eckigen Klammern gibt also die Dimension in den äußeren geschweiften Klammern an, die zweite Zahl die Dimension der zweiten geschweiften Klammerebene und so weiter. Das nächste Beispiel zeigt die Initialisierung für ein dreidimensionales Array und Sie sehen, die Angelegenheit wird langsam unübersichtlich: int[,,] arr3d = new int[2, 3, 4] { { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12} }, { {13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24} } }; Um auf ein bestimmtes Element eines mehrdimensionalen zuzugreifen, müssen Sie für jede Dimension den gewünschten Index angeben. Wenn Sie zum Beispiel im Array spielfeld1 dem Element, das sich in der dritte Zeile (1. Dimension) und dort in der zweiten Spalte (2. Dimension) befindet, eine 1 zuweisen wollen, lautet die entsprechende Anweisung: Spielfeld1[2,1] = 1; II Grundlagen von C# Mehrdimensionale durchlaufen Um alle Elemente eines mehrdimensionalen zu durchlaufen, verwendet man üblicherweise verschachtelte for-schleifen. Für jede Dimension benötigt man eine separate Schleife mit einer eigenen Schleifenvariablen. Um z. B. das Spielfeld aus dem letzten Beispiel auszugeben, können Sie folgenden Code verwenden, dessen Ausgabe Sie im nächsten Bild sehen (das vollständige Programm finden Sie im Beispielordner Kap07\SchiffeVersenken): for (int zeile = 0; zeile < 10; zeile++) { for (int spalte = 0; spalte < 10; spalte++) { Console.Write(spielfeld1[zeile, spalte]); } Console.WriteLine(); } 107

8 Abbildung 7.3: Der Inhalt des zweidimensionalen wurde mit zwei verschachtelten for-schleifen ausgegeben. Array-Elemente mit foreach durchlaufen Die foreach-anweisung lässt sich nur für eindimensionale verwenden. Bei mehrdimensionalen kommen Sie also um eine»echte«schleifenkonstruktion nicht herum. 7.4 Nützliche Methoden für Sie haben in den letzten Abschnitten bereits zwei Methoden kennengelernt, die Sie im Zusammenhang mit verwenden können. Natürlich gibt es in C# noch viele andere Methoden, von denen wir Ihnen nun einige besonders wichtige und nützliche vorstellen möchten. Die GetLength-Methode Die Length-Eigenschaft haben wir zwar bereits in einem Beispiel eingesetzt und erläutert, aber im Zusammenhang mit mehrdimensionalen müssen wir noch einige Informationen nachtragen. Angenommen, Sie haben mit folgender Anweisung ein zweidimensionales Array erzeugt: int[,] matrix = new int[3,4]; Zum Initialisieren dieses wollen Sie zwei verschachtelte for-schleifen benutzen. So weit, so gut. Da Sie sich an unseren Hinweis auf die Length-Eigenschaft (siehe Seite 105) erinnern, möchten Sie die Abbruchbedingung der for-schleifen flexibel halten und in ihr keine konstanten Werte verwenden. Kann Ihnen die Length-Eigenschaft hier weiterhelfen? Nein, denn diese Eigenschaft liefert immer die Gesamtanzahl aller Elemente eines, im aktuellen Beispiel also 12. Sie benötigen hingegen eine Möglichkeit, um die Anzahl der Elemente einer bestimmten Dimension des zu ermitteln. Die Lösung ist in diesem Fall die Methode GetLength(), deren Einsatz Sie im nächsten Beispiel studieren können: 108

9 for (int i = 0; i < matrix.getlength(0); i++) for (int j = 0; j < matrix.getlength(1); j++) matrix[i, j] = i + j; 7.4 Nützliche Methoden für Wie Sie sehen, erwartet die Methode GetLength() als einzigen Parameter die Angabe der gewünschten Dimension, wobei die erste Dimension den Wert 0 hat. Daten zwischen kopieren Mit der Methode CopyTo() lassen sich Daten zwischen eindimensionalen kopieren. Die Methode erwartet als Parameter das Zielarray sowie den Index des Zielarrays, an dem mit dem Einfügen der Daten begonnen werden soll. Im folgenden Codeschnipsel wird der Inhalt von array1 nach array2 kopiert, wobei der Einfügevorgang in array2 beim zehnten Element beginnt: int[] array1 = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] array2 = new int[25]; array1.copyto(array2, 10); Wenn Sie anschließend den Inhalt von array2 auf dem Bildschirm ausgeben (z. B. mit einer foreach- Anweisung) erhalten Sie folgende Ausgabe: C# kennt auch noch eine leistungsfähigere Methode zum Kopieren von Array-Elementen. Es handelt sich um die Methode Copy(), die auch mit mehrdimensionalen verwendet werden kann. Außerdem können Sie bei dieser Methode den Bereich im Quell-Array festlegen, der von der Methode kopiert werden soll. Weitere Informationen zu dieser Methode finden Sie in der Online-Hilfe. II Grundlagen von C# duplizieren Da es sich bei Array-Variablen um Verweistypen handelt, lassen sie sich mit einer einfachen Zuweisung nicht kopieren. Der folgende Code erstellt also kein Duplikat von array1, sondern er erreicht lediglich, dass die Variable array2 anschließend auf die gleiche Arrayinstanz, also den gleichen Speicherbereich, wie array1 zeigt: int[] array1 = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] array2; array2= array1; Um tatsächlich eine Kopie eines anzulegen, müssen Sie sich wieder der Hilfe einer Methode bedienen. Sie trägt in diesem Fall den Namen Clone und wird folgendermaßen verwendet: int[] array1 = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] array2; array2 = (int[]) array1.clone(); Die Typumwandlung durch (int[]) ist erforderlich, da die Methode ein Objekt zurückgibt und der Compiler keine implizite Typumwandlung vornimmt. Bei der erzeugten Kopie handelt es sich um eine sogenannte flache Kopie. Damit ist gemeint, dass lediglich die Daten des selbst, nicht jedoch die Daten der Objekte, auf die im Array eventuell verwiesen wird, kopiert werden. 109

10 7.5 Die Klasse ArrayList Wenn Sie mehrere Elemente verwalten möchten, deren Anzahl und Anordnung sich während der Laufzeit des Programms regelmäßig ändern, bietet ein normales Array zu wenig Flexibilität. Wie Sie in den letzten Abschnitten gesehen haben, ist es zwar möglich, nachträglich zu vergrößern und ihren Inhalt umzukopieren, aber der Aufwand, um zum Beispiel ein neues Element an einer bestimmten Position des einzufügen, wäre einfach zu groß und hätte mit gradliniger Programmierung nicht mehr viel zu tun. Für solche Fälle ist in C# die Klasse ArrayList aus dem Namensraum System.Collections prädestiniert. Dabei handelt es sich um einen Datentyp, der zwar viel Ähnlichkeit mit den zuvor besprochenen hat, dem jedoch ein vollständig anderes Speicherkonzept zugrunde liegt. Variablen vom Datentyp Array- List werden nämlich nicht in einem zusammenhängenden Bereich im Speicher abgelegt, sondern als Liste verwaltet. Außerdem handelt es sich um Verweistypen, d. h. in solch einer Liste können die Elemente einen beliebigen Datentyp annehmen. Dem damit einhergehenden Performanceverlust steht ein enormer Zugewinn an Flexibilität gegenüber. Um eine neue Instanz der ArrayList-Klasse zu erstellen, können Sie im einfachsten Fall folgende Anweisung verwenden. (Dazu müssen Sie natürlich vorher mit using den Namensraum System.Collections bekannt machen.): ArrayList arrayliste = new ArrayList(); Hierdurch wird eine leere ArrayListe der Kapazität 0 erzeugt. Die Kapazität einer ArrayListe gibt an, wie viele Elemente in der Liste gespeichert werden können, bevor neuer Speicherplatz für die Instanz angefordert werden muss. Können Sie bereits bei der Definition der Variable absehen, wie viele Elemente Sie in der ArrayListe unterbringen müssen, sollten Sie deren Kapazität direkt vorgeben: ArrayList arrayliste = new ArrayList(10); Wenn Sie einer vollen Liste ein weiteres Element hinzufügen, wird deren Kapazität automatisch verdoppelt. Das heißt, wenn Sie in eine Liste, die 1000 Elemente aufnehmen kann, das 1001te Element einfügen, wächst die Liste im Speicher auf 2000 Elemente an. Der Vollständigkeit halber sei aber schon jetzt erwähnt, dass es auch eine Möglichkeit gibt, den ungenutzten Platz einer ArrayList-Variablen wieder freizugeben. Die entsprechende Methode stellen wir Ihnen im weiteren Verlauf des Kapitels vor. Vorläufig brauchen Sie sich nur zu merken, dass man bei Objekten der ArrayList-Klasse zwischen der Anzahl der Elemente und der Kapazität der Liste unterscheidet. Der Zugriff auf die einzelnen Elemente einer ArrayListe erfolgt wie bei einem Array über einen Index. Und natürlich können Sie auch die foreach-anweisung verwenden, um eine ArrayListe zu durchlaufen. Vorsicht: Verwechseln Sie nicht die Kapazität mit der tatsächlichen Anzahl der Elemente Auch wenn Sie bei der Instanziierung einer ArrayList-Variablen die Kapazität der Liste angeben, enthält die Liste zunächst keine Elemente! Der folgende Code löst daher die Ausnahme System.ArgumentOutOfRange aus: ArrayList arrayliste = new ArrayList(10); Console.WriteLine(arrayListe[1]); 110

11 Neue Elemente in eine ArrayListe aufnehmen 7.5 Die Klasse ArrayList Die einfachste Möglichkeit, um einer ArrayListe ein neues Element hinzuzufügen, ist die Add-Methode. Das neue Element wird dabei einfach an die bestehende Liste angefügt: ArrayList arrayliste = new ArrayList(); arrayliste.add(10); arrayliste.add("zehn"); Beachten Sie, dass das erste Element einen Integer-Wert erhält und das zweite Element eine Zeichenkette aufnimmt. Wir hatten ja eingangs schon erwähnt, dass ArrayListen im Gegensatz zu nicht der Beschränkung auf einen Datentyp unterliegen. Wenn Sie die Position des neuen Elements vorgeben möchten, müssen Sie die Methode Insert benutzen. Die Anweisung arrayliste.insert(1, 11); fügt der Liste das neue Element am Index 1 zu, also an der zweiten Position der Liste. Wenn Sie den Inhalt des anschließend mit einer Schleife ausgeben, würde das Ergebnis folglich so aussehen: 10, 11, "zehn" II Grundlagen von C# Rückgabewert der Add-Methode Wenn Sie mit der Add-Methode ein neues Element in eine ArrayListe aufnehmen, liefert der Rückgabewert von Add den Index des neuen Elements. Diese Information ist allerdings nur von begrenztem Nutzen, da sich der Index eines Elements durch das Hinzufügen oder Entfernen von anderen Elementen jederzeit ändern kann. Elemente aus einer ArrayListe entfernen Zum Entfernen von Elementen aus einem ArrayList-Objekt stellt die Klasse ArrayList analog zum Hinzufügen von Elementen zwei Methoden zur Verfügung: Remove und RemoveAt. Mit der ersten Methode können Sie das gewünschte Element über seinen Inhalt ansprechen. Um zum Beispiel das im letzten Beispiel nachträglich eingefügte Element wieder zu löschen, könnten Sie folgenden Methodenaufruf verwenden: arrayliste.remove(11); Diese Anweisung hat allerdings einen kleinen Haken: Wenn sich in der Liste mehrere Objekte mit diesem Wert befinden, wird nur das erste dieser Elemente gelöscht! Gegebenenfalls müssen Sie dann noch mit der Methode Contains prüfen, ob der betreffende Wert noch öfter in der Liste vorkommt. Wenn Sie die exakte Position des zu löschenden Elements in der Liste kennen, können Sie die Methode RemoveAt benutzen, der Sie den Index des betreffenden Elements übergeben: arrayliste.removeat(1); Durch das Entfernen von Elementen aus einer Liste reduziert sich zwar die Gesamtanzahl der Listenelemente, die aktuelle Kapazität der Liste verändert sich dadurch jedoch nicht. Falls für eine Liste die Diskrepanz aus tatsächlicher (=Kapazität) und benötigter Größe (=Anzahl der Elemente) zu groß wird, können Sie die Kapazität der Liste mit der Methode TrimToSize anpassen. Die Liste belegt dann nur noch genau den Speicherplatz, der für die in ihr enthaltenen Elemente benötigt wird. 111

12 Das Beispielprogramm ListeFüllen Damit Sie ein Gefühl für die Größenänderungen eines ArrayList-Objekts entwickeln können, haben wir ein kleines Beispielprogramm entwickelt. Mit diesem Programm können Sie eine Liste Element für Element füllen und dabei die Veränderungen ihrer Kapazität beobachten: 1. Geben Sie den folgenden Programmcode in ein leeres Projekt ein oder öffnen Sie das Beispielprojekt Kap07\Listefüllen aus dem Ordner, in den die Beispiele für dieses Buch installiert wurden. ArrayList arrayliste = new ArrayList(1); string eingabe; // using System.Collections; nicht vergessen! Console.WriteLine("Kapazität des : {0} Elemente", arrayliste.capacity); Console.WriteLine("Anzahl der Elemente : {0}", arrayliste.count); Console.WriteLine(); do { Console.Write("Geben Sie eine Zahl ein (beenden mit Eingabe): "); eingabe = Console.ReadLine(); // Eingabe einlesen if (eingabe.equals("")) break; // Eine leere Eingabe beendet die Schleife else { try arrayliste.add(int.parse(eingabe)); // Element in die Liste eintragen catch (FormatException) Console.WriteLine("Ungültige Eingabe wird ignoriert!\n"); Console.Write("Inhalt des : "); // Aktuellen Inhalt der ArrayList anzeigen foreach (int i in arrayliste) Console.Write(i + " "); Console.WriteLine(); Console.WriteLine("Kapazität des : {0} Elemente", arrayliste.capacity); Console.WriteLine("Anzahl der Elemente : {0}", arrayliste.count); Console.WriteLine(); } } while (true); // Größe des an seinen tatsächlichen Inhalt anpassen arrayliste.trimtosize(); Console.WriteLine("TrimToSize durchgeführt. Neue Kapazität des : {0} Elemente\n", arrayliste.capacity); 2. Starten Sie das Programm mit Strg+F5. 3. Füllen Sie die Liste, indem Sie der Reihe nach die gewünschten Zahlen eingeben und jeweils mit der Eingabetaste bestätigen. Das Programm zeigt nach jeder Eingabe die neue Anzahl der Elemente und die aktuelle Kapazität der Liste an. 4. Wenn Sie die Eingabetaste betätigen, ohne zuvor eine Zahl eingegeben zu haben, wird das Programm beendet. Zuvor wird noch die Methode TrimToSize aufgerufen und die neue Kapazität auf dem Bildschirm ausgegeben. 112

13 7.6 Übungen zu diesem Kapitel Abbildung 7.4: Die Kapazität des wird dynamisch angepasst. 7.6 Übungen zu diesem Kapitel In diesem Abschnitt finden Sie einige Übungen zu diesem Kapitel. Die richtigen Antworten und Lösungen finden Sie wie immer auf der Website II Grundlagen von C# Übung 7.1 Erweitern Sie das Programm Index von Seite 104 um einen try-catch-block, der die IndexOutOfRange- Ausnahme behandelt. Hinweis: Diese Konstruktion haben wir in Kapitel 5 vorgestellt. Übung 7.2 Mit welcher Methode können Sie bei einem mehrdimensionalen Array die Anzahl der Elemente einer bestimmten Dimension ermitteln? Übung 7.3 Erstellen Sie eine Instanz der ArrayList-Klasse. Fügen Sie der Liste ein Element mit dem Integerwert 10 und ein weiteres mit der Zeichenkette "zehn" hinzu. Geben Sie den Inhalt dann mit einer foreach- Anweisung auf der Konsole aus. 113

14 7.7 Zusammenfassung In diesem Kapitel haben Sie erfahren, was man in C# unter einem Array versteht und wichtige Techniken im Umgang mit kennengelernt: Unter einem Array versteht man die Zusammenfassung mehrerer Variablen des gleichen Typs, die unter einem gemeinsamen Namen angesprochen werden können. werden in einem zusammenhängenden Speicherbereich abgelegt. Dadurch werden die Speicherzugriffe sehr effizient. in C# sind nullbasiert, das heißt, das erste Element wird über den Index 0 angesprochen. Der Zugriff mit einem ungültigen Index löst eine IndexOutOfRange-Ausnahme aus. Um alle Elemente eines zu durchlaufen, eignet sich am besten die foreach-anweisung. Sie können dabei allerdings nur lesend auf das Array zugreifen. Für schreibende Zugriffe verwenden Sie am besten eine for-schleife. Mit der Methode Array.Resize kann die Größe eines nachträglich geändert werden. Die aktuellen Daten des bleiben dabei erhalten. Falls das Array verkleinert wird, fallen die überschüssigen Elemente weg. Mehrdimensionale werden durch zusätzliche Kommata in den eckigen Klammern erzeugt. Die Initialisierung und der Zugriff erfolgt analog zu eindimensionalen. Die Klasse Array enthält viele nützliche Methoden zum Bearbeiten von, von denen wir Ihnen die Methoden GetLength(), CopyTo() und Clone() vorgestellt haben. Im letzten Abschnitt haben Sie ArrayListen kennengelernt. ArrayListen werden nicht zusammenhängend im Speicher abgelegt, sondern als Listen verwaltet, und sind dadurch besonders flexibel. 114

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

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue 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

Mehr

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

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11

Mehr

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

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

Felder (1) Allgemeines

Felder (1) Allgemeines Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Schleifen Datenfelder (Arrays) Verzweigungen

Schleifen Datenfelder (Arrays) Verzweigungen Schleifen Datenfelder (Arrays) Verzweigungen Vektoren, Matrizen, Tabellen for, while, foreach, if-else und switch-case Dr. Beatrice Amrhein Überblick Schleifen o for, while, foreach Eindimensionale Arrays

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Grundlagen der OO- Programmierung in C#

Grundlagen der OO- Programmierung in C# Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3

Mehr

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

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

1. Referenzdatentypen: Felder und Strings

1. Referenzdatentypen: Felder und Strings 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

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

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

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

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. 3.8 Objekttypen und Arrays Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.8-1 Primitive Datentypen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

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

Listen. ArrayList. Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren. Dr. Beatrice Amrhein Listen ArrayList Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren Dr. Beatrice Amrhein Definition 2 Definition: Liste (ArrayList) Eine C#-Liste (ArrayList) ist eine geordnete

Mehr

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

6. Zeiger Allgemeines Definition eines Zeigers

6. Zeiger Allgemeines Definition eines Zeigers 6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

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!

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! 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! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen . Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

Objektorientierte Programmierung und Modellierung

Objektorientierte Programmierung und Modellierung Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

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

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Objekttypen Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Primitive- und Objekt-Datentypen Primitive Datentypen benötigen einen vorher genau

Mehr

Grundlagen und Konzepte von C Datenstrukturen

Grundlagen und Konzepte von C Datenstrukturen Grundlagen und Konzepte von C Datenstrukturen Ausarbeitung von Andreas Gadelmaier Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik,

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Ausgabe:

Ausgabe: Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

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

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache Dr. Beatrice Amrhein Überblick Speicherverwaltung: Stack und Heap Ein- und Ausgabe über die Console Variablen und Operatoren Parameter

Mehr

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

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-6 5.1.3 Kopieren eindimensionaler Felder... 5-7

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative Container in C++ Christian Poulter Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...

Mehr

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Grundlagen der Objektorientierten Programmierung - Statische Arrays Statische Arrays Ein Array ist ein Behälter für Datenelemente desselben Typs. Arrays können beliebig viele Dimensionen haben. Die Standardform ist das eindimensionale Array, das man sich in Zeilenform

Mehr

Sprachkonstrukte Verzweigungen und Array-Strukturen

Sprachkonstrukte Verzweigungen und Array-Strukturen Sprachkonstrukte Verzweigungen und Array-Strukturen Dr. Beatrice Amrhein Überblick Verzweigungen o if/else o switch/case Array-Strukturen o Vektoren und Matrizen 2 Verzweigungen 3 Verzweigungen: if/else

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 4 Prof. R. Westermann, A. Lehmann, R.

Mehr

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in  angegeben waren; z.b. als Formatstring in der printf()-funktion: Zeichenketten (Strings) Seite 1 von 11 Zeichenketten(Strings) sind wichtige Bestandteile fast eines jeden Programms. Beispiele sind Eingabe von Namen oder Adressen, Ausgabe von Meldetexten oder Bearbeitung

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java 4 Datenfelder, Parameterübergabe, Casting Objektorientierte Programmierung OOP Programmieren mit Java 4 Datenfelder, Parameterübergabe, Casting 4 Datenfelder, Parameterübergabe, Casting 4.1 Datenfelder

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

Zeiger in C und C++ Zeiger in Java und C/C++

Zeiger in C und C++ Zeiger in Java und C/C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,

Mehr

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18 C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen

Mehr

41.8 LUA-Grundlagen - Tabelle, if und Albernheit

41.8 LUA-Grundlagen - Tabelle, if und Albernheit 41.8 LUA-Grundlagen - Tabelle, if und Albernheit Autor: Goetz Quelle: Mein EEP-Forum In diesem Kapitel möchte ich eine erste, einfache Anwung von Lua auf einer Anlage zeigen. Ich werde mich dabei auf den

Mehr

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

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Ein Array ist eine Liste mit Einträgen, fast wie eine Einkaufsliste. Man kann darin also mehr als einen Eintrag in eine einzige Variable speichern.

Ein Array ist eine Liste mit Einträgen, fast wie eine Einkaufsliste. Man kann darin also mehr als einen Eintrag in eine einzige Variable speichern. 04 Arrays Arrays 1/7 Was ist ein Array? Ein Array ist eine Liste mit Einträgen, fast wie eine Einkaufsliste. Man kann darin also mehr als einen Eintrag in eine einzige Variable speichern. Stell dir vor,

Mehr

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

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren

Mehr

Objektorientiertes Programmieren (Java)

Objektorientiertes Programmieren (Java) Grundlagen Objektorientiertes Programmieren (Java) Java folgt gewissen Rechtschreibregeln die Syntax. Diese besagt, dass hinter jeden Befehl ein Semikolon( ; ) stehen muss, damit der Computer weiß, dass

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Programmiervorkurs Einführung in Java Tag 3

Programmiervorkurs Einführung in Java Tag 3 Programmiervorkurs Einführung in Java Tag 3 Giulia Maier erstellen Sommersemester 2018 09:30 Vorstellung der Lösungen des Vortages ab 10:00 Vorlesung 60 Minuten Mittagspause erstellen gegen 12:30 Übungen

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5 Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Übungsblatt 2. Java Vorkurs (WS 2017)

Übungsblatt 2. Java Vorkurs (WS 2017) Übungsblatt 2 Java Vorkurs (WS 2017) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen

Mehr

Schleifen: Immer wieder dasselbe tun

Schleifen: Immer wieder dasselbe tun Schleifen: Immer wieder dasselbe tun Bei einer Schleife werden Anweisungen immer wieder ausgeführt, solange die Bedingung wahr ist. Dafür muss man eine Variable immer wieder ändern, solange bis eine Überprüfung

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

Grundlagen von C# - 2

Grundlagen von C# - 2 Grundlagen von C# - 2 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Arrays 2. Kontrollstrukturen 3. Verzweigungen Bedingte Verzweigung (if else) 4. Schleifen Kopfgesteuerte Schleife (while) Fußgesteuerte

Mehr

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

Einführung in die Programmierung für NF MI. Übung 04 Einführung in die Programmierung für NF MI Übung 04 Inhalt Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 04 2 Arrays Arrays repräsentieren Reihungen von Objekten, z.b. Variablen

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs C++ Templates & STL (1/2) Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays Motivation und Eigenschaften Deklaration, Erzeugung und Initialisierung

Mehr

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

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

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung

Mehr

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

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

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein Datenfelder (Arrays) Vektoren, Matrizen, Tabellen Dr. Beatrice Amrhein Überblick Eindimensionale Arrays o Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays o Deklaration, Initialisierung, Zugriff

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren für Wirtschaftswissenschaftler SS 2015 DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 5. Arrays und Listen Agenda Arrays

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

Funktionen nur wenn dann

Funktionen nur wenn dann Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Ein kleiner Blick auf die generische Programmierung

Ein kleiner Blick auf die generische Programmierung TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr