Schleifen Datenfelder (Arrays) Verzweigungen

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

Forschungszentrum caesar
Agenda Sitzung 2 für den Programmaufbau
der Universität Oldenburg
Verteilte Software - Java - Prozedurale Programmierung 1
Sequentielle Liste - Array
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
SWITCH - Anweisung.
SWITCH - Anweisung.
Modulare Programmierung
DVG Ablaufsteuerung
Informatik 1 Übung 2.
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Technische Informatik Reihungen – Felder - Arrays.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Arduino Kurs Abend 2.
EPROG Tutorium #3 Philipp Effenberger
Einführung in PHP.
Einführung in PHP 5.
Arrays und ArrayLists In JAVA.
Datentypen Überblick Datentypen Einfache / fundamentale Datentypen
BMEVIEEA100 Grundlagen der Programmierung
PHP: Operatoren und Kontrollstrukturen
Programmiervorkurs WS 2014/15 Schleifen
Arrays und ArrayLists In JAVA.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Diskrete Mathematik I Vorlesung 2 Arrays.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 4. Vorlesung WS 2004/2005.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Felder (Arrays).
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
1 Arrays und Schleifen Özgü & Tim. 2 Inhaltsverzeichnis Arrays Was ist ein Array? Bauanleitung Beispiel Matrix Fehler Schleifen Wofür Schleifen? While-Schleife.
Praktische Informatik 1
Konstruktoren.
Hello World! Javakurs 2013 Arne Kappen
JavaKara programmieren: Verzweigungen
Datentypen: integer, char, string, boolean
Aufgaben zu Rückgabewerten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Prüfungsbesprechung Barbara Scheuner
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang
Unterschiedliche Kontrollstrukturen
Syntax: while ( BEDINGUNG ) { // Anweisungen die so lange immer wieder ausgeführt // werden, wie die Bedingung zutrifft } for (INITIALISIERUNG; BEDINGUNG;
SS 04 Christiane Rauh Christian Hellinger
Arten von Kontrollstrukturen
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Unterschiedliche Arten von Kontrollstrukturen
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Polymorphie Überladen
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen
Interfaces Definition von Interfaces Verwendung von Interfaces
«Delegierter» Methoden Schablone Funktionszeiger
Definition Felder Konstruktor Methoden Beispiel
Implementieren von Klassen
Grundlagen der OO-Programmierung in C#
PGdP Tutorstunde 4 Gerald Mahlknecht Technische Universität München Informatik Divide and Conquer.
Statische und Nichtstatische Methoden Properties / Eigenschaften
 Präsentation transkript:

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

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Überblick Schleifen for, while, foreach Eindimensionale Arrays Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays Verzweigungen if, else, switch, case Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Schleifen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: while Kopfgesteuerte Schleife mit while Verlangt als Abbruch-Bedingung einen booleschen Ausdruck Die Abbruch-Bedingung wird jeweils vor jedem Schleifendurchgang geprüft. while (Test) // Abbruch-Bedingung { Anweisungen, die durchzuführen sind, solange der Test zu true evaluiert. } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: while int n = 1; while (n < 4) // Abbruch-Bedingung { Console.WriteLine("Der Wert von n ist {0}", n); n++; } Erzeugt die Ausgabe Der Wert von n ist 1 Der Wert von n ist 2 Der Wert von n ist 3 Vor jedem Schleifendurchgang wird geprüft, ob der Test (n < 4) noch erfüllt ist. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: do while Fussgesteurte Schleife mit do while Verlangt als Abbruch-Bedingung einen booleschen Ausdruck do { Anweisungen, die auszuführen sind, solange der Test zu true evaluiert. } while (Test); // Abbruch-Bedingung Im Gegensatz zur while-Anweisung wird der Inhalt der do-while-Schleife einmal ausgeführt, bevor die Abbruch-Bedingung das erste Mal geprüft wird. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: do while Beispiel int n = 0; do { Console.WriteLine("n={0}", n); n++; } while (n < 4); // Abbruch-Bedingung Erzeugt die Ausgabe Der Abbruch-Test (n < 4) wird jeweils am Ende der Schleife geprüft. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: for Kopfgesteuerte Schleife mit for Die Schleifenvariable kann auch von aussen bezogen werden for (Initialisierung; Test; Laufvariable anpassen) { Anweisungen, die auszuführen sind, solange der Test zu true evaluiert. } Die Initialisierung geschieht nur einmal am Anfang. Der Test wird vor jedem Schleifendurchgang durchgeführt. Die Anpassung der Laufvariablen wird erst am Ende, bzw. nach dem Schleifeninhalt durchgeführt. 1 2 4 3 1 2 4

Schleifensteuerungen: for Beispiel int i; int j = 3; for (i = 4; i <= 15; i += j) { Console.WriteLine("i={0}", i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: for  rückwärts Die Schleife kann auch rückwärts laufen for (int i = 7; i > 3; i--) { Console.WriteLine("i={0}", i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Verschachtelte for-Schleife Schleifen können ineinander verschachtelt werden for (int i = 1; i <= 2; i++) { for (int j = 1; j <= 4; j++) Console.WriteLine("i={0}, j={1}", i, j); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Schleifensteuerungen: foreach Kopfgesteuerte Schleife mit foreach Ist nur auf Array-Typen anwendbar Hat keine Schleifenvariable Erlaubt während des Durchlaufs keine Veränderung des Arrays int[] fibarray = new int[] { 1, 1, 2, 3, 5, 8 }; foreach (int i in fibarray) { Console.WriteLine("i={0}",i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Sprunganweisungen: break Mit der break-Anweisung wird die direkt umschliessende Schleife beendet. Sie beendet auch eine switch-Anweisung (vgl. swich-Anweisungen). //Die break-Anweisung beendet diese Schleife sobald i den Wert 5 erreicht. for (int i = 1; i <= 100; i++) { if (i == 5) break; Console.WriteLine("i={0}", i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Sprunganweisungen: continue continue übergibt den Verlauf an die nächste Iterations-Anweisung //Die continue-Anweisung springt in die nächste Iteration for (int i = 1; i <= 10; i++) { if (i%2 == 0) continue; } Console.WriteLine("i={0}", i); Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Eindimensionale Arrays Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Deklaration Deklaration  unbestimmte Länge (keine Speicher-Allokation auf dem Heap) int[] intArray; long[] longArray; char[] charArray; string[] stringArray; Deklaration mit Längen-Angabe (mit Speicher-Allokation auf dem Heap) // Ganzahl-Array der Länge 3 int[] intArray = new int[3]; // Character-Array der Länge 4 char[] charArray = new char[4]; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Deklaration und Initialisierung durch Längen-Angabe, durch literale Initialisierung oder beides // Leerer Ganzahl-Array der Länge 3 intArray = new int[3]; // Long Array der Länge 2, literal longArray = new long[] { 122323, 1513221 }; // Char Array der Länge 4, literal und Längen-Angabe charArray = new char[4] { 'a', 'b', 'c', 'd' }; // Leerer String-Array der Länge 3 stringArray = new string[3]; Speicherabbild für String Array Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Deklaration und Initialisierung Kombination von Deklaration und Initialisierung // String-Array der Länge 2, string[] stringArray = {"John", "Doe"}; // char-Array der Länge 4 char[] charArray = { 'a', 'b', 'c', 'd' }; // Ganzzahl-Array der Länge 3 int[] intArray = { 17, 35, 22 }; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Zugriff auf die Werte (Lesen und Schreiben) Der Zugriff auf die Werte erfolgt über die Angabe der Nummer des Feldes in eckigen Klammern (z.B: charArray[1]) //Initialisierung string[] stringArray = {"John", "Doe"}; char[] charArray = { 'a', 'b', 'c', 'd' }; //Ausgabe Console.WriteLine("Vorname: {0} Nachname:{1}", stringArray[0], stringArray[1]); Console.WriteLine("--{0}--{1}--{2}--{3}--", charArray[0], charArray[1], charArray[2], charArray[3]); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Durchlauf durch alle Werte Mit der foreach-Anweisung werden alle Werte des Arrays durchlaufen //Initialisierung char[] charArray = { 'a', 'b', 'c', 'd' }; //Ausgabe foreach (char p in charArray) { Console.Write("--{0}", p); } Console.WriteLine("--"); Mit der foreach-Anweisung können die Werte eines Arrays nicht verändert werden! Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Default Werte für nummerische Arrays Nummerische Arrays werden mit dem Wert 0 initialisiert. int[] intMatrix = new int[3]; long[] longMatrix = new long[3]; float[] floatMatrix = new float[3]; double[] doubleMatrix = new double[3]; for (int i = 0; i < 3; i++) { Console.WriteLine("intMatrix[{0}]={1}, longMatrix[{0}]={2}, " + "floatMatrix[{0}]={3}, doubleMatrix[{0}]={4} ", i, intMatrix[i], longMatrix[i], floatMatrix[i], doubleMatrix[i]); } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Mehrdimensionale Arrays Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Deklaration Deklaration einer Ganzzahl Matrix mit 3 x 6 Werten int[,] intMatrix = new int[3, 6]; Deklaration einer Byte Matrix mit Initialisierung byte[,] byteMatrix = new byte[,] { {2,3,4,5}, {6,7,8,9} }; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Initialisierung: Füllen der Matrix mit Werten Füllen (und Ausgeben) einer Matrix int[,] intMatrix = new int[15,9]; for (int i = 0; i < 15; i++) { for (int j = 0; j < 9; j++) intMatrix[i, j] = i+j; Console.Write("{0,4}", intMatrix[i,j]); } Console.WriteLine(); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Initialisierung: Füllen der Matrix mit Werten Füllen (und Ausgeben) einer double Matrix double[,] intMatrix = new double[15,9]; for (int i = 0; i < 15; i++) { for (int j = 0; j < 9; j++) intMatrix[i, j] = Math.Sqrt(i*j); Console.Write("{0,6:F2}", intMatrix[i, j]); } Console.WriteLine(); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Die Methode GetLength GetLength(0) gibt die Länge in der ersten, GetLength(1) die Länge in der zweiten Dimension zurück. for (int i = 0; i < intMatrix.GetLength(0); i++) { for (int j = 0; j < intMatrix.GetLength(1); j++) intMatrix[i, j] = i+j; Console.Write("{0,4}", intMatrix[i,j]); } Console.WriteLine(); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Durchlauf durch alle Werte Die foreach-Anweisung kann auch alle Werte eines mehrdimensionalen Arrays durchlaufen //Initialisierung int[,] intMatrix = { { 1, 2, 3 }, { 4, 5, 6 } }; //Ausgabe foreach (int i in intMatrix) { Console.Write("{0} ", i); } Die Ausgabe erscheint «eindimensional». Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Verzweigungen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Verzweigungen: if Einfache Verzweigungen mit if Verlangt in der Klammer immer einen booleschen Ausdruck (Test) if( Test ){ // Block mit den auszuführenden Anweisungen, falls der Test zu true evaluiert Anweisungen im Fall von true … } else { // Block mit den Anweisungen, falls der Test zu false evaluiert Anweisungen im Fall von false } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012 Verzweigungen: if Beispiel Console.Write("Geben Sie Ihren Namen ein: "); string name = Console.ReadLine(); // Test if( name == "" ){ // Test evaluiert zu true Console.WriteLine("Haben Sie keinen Namen?"); } else { // Test evaluiert zu false Console.WriteLine("Hallo {0}!", name); } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Verzweigungen: if mit mehreren Tests Beispiel // erster Test if( name == null ){ // erster Test evaluiert zu true Console.WriteLine("erster Test ist true"); } // zweiter Test else if (name.Length == 0){ // zweiter Test evaluiert zu true Console.WriteLine("zweiter Test ist true?"); } else { // zweiter Test evaluiert zu false Console.WriteLine("Hallo {0}!", name); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Verzweigungen: switch Mehrfache Verzweigungen mit switch Die Test-Fälle sind konstant „default“ sollte am Ende sein (muss aber nicht) switch (intValue) { case 1: Anweisungen für Fall 1 break; case 2: Anweisungen für Fall 2 default: Anweisungen für alle anderen Fälle } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Verzweigungen: switch int caseSwitch = 1; switch (caseSwitch) { case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); default: Console.WriteLine("Default case"); } Erzeugt die Ausgabe Case 1 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Verzweigungen: switch int caseSwitch = 3; switch (caseSwitch) { // mehrere Fälle  case 0: case 1: Console.WriteLine("Case 0 or 1"); break; case 2: Console.WriteLine("Case 2"); break; // Diese Zeile verursacht eine Warnung Console.WriteLine("Unreachable code"); // 7 - 4 evaluiert zu 3 case (7 – 4): Console.WriteLine("Case 3"); break; // Falls caseSwitch ungleich 0, 1, 2, oder 3 wird // der default Pfad ausgeführt. default: Console.WriteLine("Default case (optional)"); break; } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

Verzweigungen: switch/case Statt einer Zahl (int) kann auch ein Buchstabe (char) für die Verzweigung verwendet werden: switch (charValue) { case 'A': Anweisungen für Fall 'A' break; case 'B': Anweisungen für Fall 'B' case 'V': Anweisungen für Fall 'V' default: Anweisungen für alle anderen Fälle }

Entscheidungen mit Hilfe von Aufzählungen Eine Aufzählung kann in einem switch-case Statement für die Auswahl verwendet werden: public enum Note { A, B, C, D, E, FX, F } public static String getLeistung(Note ects) { String resultat; switch (ects) case Note.A: restultat = "Hervorragend"; break; case Note.B: restultat = "Sehr gut"; break; case Note.C: restultat = "Gut"; break; case Note.D: restultat = "Passabel"; break; case Note.E: restultat = "Passabel"; break; case Note.F: restultat = "Ungenügend"; break; } return resultat;