Einführung in die Programmierung

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Programmierung"

Transkript

1 Vorlesungsteil 7 Felder und Graphen Umfangreiche Datenbestände erfassen und verarbeiten PD Dr. Brandenburgische Technische Universität Cottbus Senftenberg Institut für Informatik Sommersemester 2016

2 Große Datenmengen sind häufig zu verarbeiten Weltweites Datenvolumen verdoppelt sich etwa alle zwei Jahre : Studie der UC Berkeley School of Information, 2013

3 Große Datenmengen sind häufig zu verarbeiten Weltweites Datenvolumen verdoppelt sich etwa alle zwei Jahre Weltweiter Datenbestand auf gegenwärtig etwa Bytes (5 Zettabytes) geschätzt : Studie der UC Berkeley School of Information, 2013

4 Große Datenmengen sind häufig zu verarbeiten Weltweites Datenvolumen verdoppelt sich etwa alle zwei Jahre Weltweiter Datenbestand auf gegenwärtig etwa Bytes (5 Zettabytes) geschätzt Speicherkapazität des gesunden menschlichen Gehirns bei etwa Bytes (15 Petabytes) vermutet : Studie der UC Berkeley School of Information, 2013

5 Große Datenmengen sind häufig zu verarbeiten Weltweites Datenvolumen verdoppelt sich etwa alle zwei Jahre Weltweiter Datenbestand auf gegenwärtig etwa Bytes (5 Zettabytes) geschätzt Speicherkapazität des gesunden menschlichen Gehirns bei etwa Bytes (15 Petabytes) vermutet Big Data als vielversprechendes Forschungsgebiet : Studie der UC Berkeley School of Information, 2013

6 Umfangreiche Datenmengen effizient verarbeiten Angenommen, Sie haben 12 Messwerte 4.31, 4.72, 4.49, 4.18, 4.07, 4.13, 4.56, 4.38, 4.71, 4.52, 4.64, 4.45 und wollen daraus den Durchschnitt (arithmetisches Mittel) berechnen.

7 Umfangreiche Datenmengen effizient verarbeiten Angenommen, Sie haben 12 Messwerte 4.31, 4.72, 4.49, 4.18, 4.07, 4.13, 4.56, 4.38, 4.71, 4.52, 4.64, 4.45 und wollen daraus den Durchschnitt (arithmetisches Mittel) berechnen. Allein durch Nutzung elementarer Datentypen müssten wir dafür 12 verschiedene Variablen anlegen.

8 Umfangreiche Datenmengen effizient verarbeiten Angenommen, Sie haben 12 Messwerte 4.31, 4.72, 4.49, 4.18, 4.07, 4.13, 4.56, 4.38, 4.71, 4.52, 4.64, 4.45 und wollen daraus den Durchschnitt (arithmetisches Mittel) berechnen. Allein durch Nutzung elementarer Datentypen müssten wir dafür 12 verschiedene Variablen anlegen. Die Implementierung der Formel zur Berechnung des Durchschnitts wäre umständlich hinzuschreiben.

9 Umfangreiche Datenmengen effizient verarbeiten Angenommen, Sie haben 12 Messwerte 4.31, 4.72, 4.49, 4.18, 4.07, 4.13, 4.56, 4.38, 4.71, 4.52, 4.64, 4.45 und wollen daraus den Durchschnitt (arithmetisches Mittel) berechnen. Allein durch Nutzung elementarer Datentypen müssten wir dafür 12 verschiedene Variablen anlegen. Die Implementierung der Formel zur Berechnung des Durchschnitts wäre umständlich hinzuschreiben. Angenommen, es gäbe hin und wieder nur 11 oder vielleicht auch einmal 13 Messwerte. Wir müssten dann jedesmal umfangreiche Änderungen im Quelltext vornehmen, um auf diese Situationen reagieren zu können.

10 Feld Ein Feld (engl. array) gibt uns die Möglichkeit, eine beliebig große, aber bekannte Anzahl von Datenwerten über einen einheitlichen Bezeichner zu erfassen und auf jeden einzelnen dieser Datenwerte direkt lesend oder schreibend zuzugreifen.

11 Vorlesung mit Java 1. Einführung und erste Schritte Installation Java-Compiler, ein erstes Programm: HalloWelt, Blick in den Computer 2. Elementare Datentypen, Variablen, Arithmetik, Typecast Java als Taschenrechner nutzen, Tastatureingabe Formelberechnung Ausgabe 3. Imperative Kontrollstrukturen Befehlsfolgen, Verzweigungen, Schleifen und logische Ausdrücke programmieren 4. Methoden selbst programmieren Methoden als wiederverwendbare Funktionen, Werteübernahme und -rückgabe 5. Rekursion selbstaufrufende Funktionen als elegantes algorithmisches Beschreibungsmittel 6. Objektorientiert programmieren klassen, Objekte, Attribute, Methoden, Sichtbarkeit, Vererbung, Polymorphie 7. Felder und Graphen effizientes Handling größerer Datenmengen und Beschreibung von Netzwerken 8. Sortieren klassische Sortierverfahren im Überblick, Laufzeit und Speicherplatzbedarf 9. Zeichenketten, Dateiarbeit, Ausnahmen Texte analysieren, ver-/entschlüsseln, Dateien lesen/schreiben, Fehler behandeln 10. Dynamische Datenstruktur Lineare Liste unsere selbstprogrammierte kleine Datenbank 11. Ausblick und weiterführende Konzepte

12 Eindimensionales Feld anlegen und initialisieren (Messwertfeld.java) double[] messwert = {...} legt Feld an und trägt Messwerte fortlaufend als Feldelemente ein messwert.length liefert Anzahl Feldelemente (hier: 12 mit den Indizes 0,..., 11) messwert[i] liefert Feldelement mit Index i

13 Arithmetisches Mittel aus den Messwerten berechnen (MesswertfeldDurchschnitt.java) Feld elementweise durchlaufen und Einträge aufsummieren Summe anschließend durch Anzahl Feldelemente teilen

14 Maximalen Messwert bestimmen (MesswertfeldMaximum.java)

15 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können.

16 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können. Die lückenlose Nummerierung der Feldelemente heißt Index (Plural: Indizes) und beginnt immer bei 0.

17 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können. Die lückenlose Nummerierung der Feldelemente heißt Index (Plural: Indizes) und beginnt immer bei 0. Der Index ist immer vom Ganzzahltyp und wird in eckige Klammern [...] geschrieben.

18 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können. Die lückenlose Nummerierung der Feldelemente heißt Index (Plural: Indizes) und beginnt immer bei 0. Der Index ist immer vom Ganzzahltyp und wird in eckige Klammern [...] geschrieben. Ein Feld lässt sich durch fortlaufend durchnummerierte Schubfächer veranschaulichen.

19 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können. Die lückenlose Nummerierung der Feldelemente heißt Index (Plural: Indizes) und beginnt immer bei 0. Der Index ist immer vom Ganzzahltyp und wird in eckige Klammern [...] geschrieben. Ein Feld lässt sich durch fortlaufend durchnummerierte Schubfächer veranschaulichen. Mathematische Vorbilder für Felder sind Vektoren, endliche Zahlenfolgen und Matrizen.

20 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können. Die lückenlose Nummerierung der Feldelemente heißt Index (Plural: Indizes) und beginnt immer bei 0. Der Index ist immer vom Ganzzahltyp und wird in eckige Klammern [...] geschrieben. Ein Feld lässt sich durch fortlaufend durchnummerierte Schubfächer veranschaulichen. Mathematische Vorbilder für Felder sind Vektoren, endliche Zahlenfolgen und Matrizen. Die Anzahl Feldelemente braucht in Java erst zur Laufzeit bekannt zu sein.

21 Begriff Feld in der Programmierung Ein Feld (engl. array) bezeichnet in der Programmierung eine Zusammenfassung von Speicherplätzen (Variablenwerten) gleichen Typs, die über einen oder mehrere Indizes angesprochen werden können. Die lückenlose Nummerierung der Feldelemente heißt Index (Plural: Indizes) und beginnt immer bei 0. Der Index ist immer vom Ganzzahltyp und wird in eckige Klammern [...] geschrieben. Ein Feld lässt sich durch fortlaufend durchnummerierte Schubfächer veranschaulichen. Mathematische Vorbilder für Felder sind Vektoren, endliche Zahlenfolgen und Matrizen. Die Anzahl Feldelemente braucht in Java erst zur Laufzeit bekannt zu sein. Die Anzahl Feldelemente ist nachträglich nicht mehr änderbar.

22 Felddurchlaufungen vereinfacht notieren mit foreach Betrachten wir erneut das Programm Messwertfeld.java: public class Messwertfeld { public static void main(string[] args) { double[] messwert = {4.31, 4.72, 4.49, 4.18, 4.07, 4.13, 4.56, 4.38, 4.71, 4.52, 4.64, 4.45}; int i; for (i = 0; i < messwert.length; i++) { System.out.printf( %.2f\n, messwert[i]); } // for } // main } // class

23 Felddurchlaufungen vereinfacht notieren mit foreach Betrachten wir erneut das Programm Messwertfeld.java: public class Messwertfeld { public static void main(string[] args) { double[] messwert = {4.31, 4.72, 4.49, 4.18, 4.07, 4.13, 4.56, 4.38, 4.71, 4.52, 4.64, 4.45}; //int i; for (double e : messwert) { System.out.printf( %.2f\n, e); } // for } // main } // class Variable e läuft ( iteriert ) elementweise durch das gesamte Feld, ohne dass ein Index angegeben werden muss. Index-Variable i nicht mehr benötigt.

24 Feldelemente per Direktzugriff mit Werten belegen In Java ist jedes Feld ein Objekt einer (vordefinierten) Array-Klasse long[] quadratzahlen = new long[11] legt Feld als Objekt an mit gewünschter Feldgröße (hier: 11 Elemente) und gewünschtem Typ der Elemente (hier: long). Alle vordefinierten Methoden wie z.b. length stehen dann zur Verfügung und sind auf das Objekt anwendbar.

25 Feld an eine Methode übergeben Lediglich Anfangsadresse des Feldes übergeben. Feldelemente werden nicht kopiert.

26 Feld auch als Rückgabe einer Methode möglich Feld quadratzahlen angelegt und belegt in Methode feldfueller Anfangsadresse dieses Feldes per return zurückgegeben und in main-methode entgegengenommen Feld jetzt in main-methode unter dem Namen zahlenfeld uneingeschränkt nutzbar.

27 Zweidimensionales Feld anlegen, befüllen, übergeben (Kleines1x1.java) Kleines Einmaleins, Zeilen i: , Spalten k: Zweidimensionales Feld produkte verkörpert Matrix oder Tabelle aus Zeilen und Spalten Zweidimensionales Feld entspricht einem eindimensionalen Feld von eindimensionalen Feldern.

28 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp.

29 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein.

30 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0.

31 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0. Über den Feldindex besteht direkter wahlfreier Zugriff auf jedes Feldelement.

32 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0. Über den Feldindex besteht direkter wahlfreier Zugriff auf jedes Feldelement. Der Feldindex ist immer von einem Ganzzahltyp und wird stets in eckige Klammern [...] geschrieben.

33 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0. Über den Feldindex besteht direkter wahlfreier Zugriff auf jedes Feldelement. Der Feldindex ist immer von einem Ganzzahltyp und wird stets in eckige Klammern [...] geschrieben. Ein Feld darf beliebig, aber endlich viele Dimensionen haben (mehr als vier Dimensionen aber sehr selten).

34 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0. Über den Feldindex besteht direkter wahlfreier Zugriff auf jedes Feldelement. Der Feldindex ist immer von einem Ganzzahltyp und wird stets in eckige Klammern [...] geschrieben. Ein Feld darf beliebig, aber endlich viele Dimensionen haben (mehr als vier Dimensionen aber sehr selten). Die Elemente eines Feldes sind im Speicher unmittelbar aufeinanderfolgend abgelegt.

35 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0. Über den Feldindex besteht direkter wahlfreier Zugriff auf jedes Feldelement. Der Feldindex ist immer von einem Ganzzahltyp und wird stets in eckige Klammern [...] geschrieben. Ein Feld darf beliebig, aber endlich viele Dimensionen haben (mehr als vier Dimensionen aber sehr selten). Die Elemente eines Feldes sind im Speicher unmittelbar aufeinanderfolgend abgelegt. Der gewählte Feldname verkörpert in Java die Anfangsadresse, ab der das Feld abgespeichert ist.

36 Eigenschaften jedes Feldes Alle Feldelemente besitzen den gleichen Datentyp. Die Größe des Feldes (Anzahl Elemente und Dimensionierung) muss in Java erst zur Laufzeit des Programms bekannt sein. Jeder Feldindex beginnt bei 0. Über den Feldindex besteht direkter wahlfreier Zugriff auf jedes Feldelement. Der Feldindex ist immer von einem Ganzzahltyp und wird stets in eckige Klammern [...] geschrieben. Ein Feld darf beliebig, aber endlich viele Dimensionen haben (mehr als vier Dimensionen aber sehr selten). Die Elemente eines Feldes sind im Speicher unmittelbar aufeinanderfolgend abgelegt. Der gewählte Feldname verkörpert in Java die Anfangsadresse, ab der das Feld abgespeichert ist. Bei Parameterübergaben wird ein Feld nicht elementweise kopiert, sondern lediglich seine Anfangsadresse weitergegeben.

37 Netzwerk-Strukturen im Computer erfassen Beispiel: Stadtplan Cottbus Quelle: Google Maps = Kürzesten Weg von A nach B finden

38 Motivation Felder programmieren Graphen Netzwerk-Strukturen im Computer erfassen Beispiel: Liniennetzplan Tram/Bus in Cottbus Cottbus Stadtverkehr Tagesliniennetz Legende Dissen Striesow Am Ring 4 Teiche 39 Bahnhof Süd Schulstr. Ziegelstr. Mühlenweg 18 RE Neuhausener 13 Str. GelsenLauchhammer- kirchener Platz str. Waldweg Hänchen, Siedlung Hochschule Lausitz Lipezker Str./ Hochschule Lausitz Koschendorf Siewisch Seegraben Nord Leuthen Laubst Klein Gaglow, Dorfstr. Klein Oßnig Drebkau Groß Gaglow, Seegraben Handelshof Löschen Rehnsdorf Jehserig Auras Oelsnig 27 Dresden/ Falkenberg (Elster) Welzow Schorbus Lipezker Str./ Schwarzheider Str. Gaglow, Seegraben ARVATO Hänchen, Annahof Klein Gaglow, Reinpuscher Weg 13 Golschow Lausitz Park 13 Sachsendorfer Str Forst Döbern Cottbus Branitz, Zum Seebad Auenwinkel Thierbacher Str. Gelsenkirchener Allee Wappenhaus Nutzberg Abzweig Haasow Waldesruh Abzweig Branitz, Schule Park Südfriedhof Vattenfall Heinersbrück Cottbus Schloß Branitz 10 d Forst (Lausitz) 41 Tierpark Sportzentrum Hufelandstr. Saarbrücker Str. Casel 26 Gosda Kathlow Haasow, Wendeplatz Feuerwehr Haasow, Kreuzung Bleyerstr. Ottilienstr. Thiemstr./ Klinikum Sachsendorfer Hauptstr. Hänchen, Pappelallee Spitzwegstr. Feuerbachstr. 65 Hänchen, Gewerbegebiet RB46 Klinge 10 Branitzer Siedlung Vorpark Schlichow, Sportplatz 19 Cottbus RB46 Stadtring Görlitzer Str. Thiemstr./ Hauptbahnhof FriedrichList-Str. Finsterwalder Str. Welzower Str./ Klinikum/Herzzentrum 16 Welzower Str./ Thiemstr. Hänchen, Gasthaus Schlichow, West Schlichow, Dorfstr. Turnstr. Heidesiedlung Heizkraftwerk GeorgSchlesinger-Str. Marienstr./ Busbahnhof Busbahnhof Hauptbahnhof 2 5 Sandow RB Klinikum 12 Kolkwitz, Technologiepark Freiheitsstr. Stadtmuseum Vetschauer Str./ Leipziger Str. 1 5 Jessener Str. Altes Forsthaus 12 d Klein Ströbitz Bergsicherung Innungskrankenkasse Koschendorfer Str. d 16 Spreewaldbahnhof RE1 10 RE11 RE18 21 RB46 RB65 44 Klein Gaglower Str. Am Moorgraben C.-v.OssietzkySt r. Ausbesserungswerk Am Priorgraben Brodtkowitz 39 Stadtpromenade Stadtring/Merzdorfer Weg Warschauer Str. 12 An der Pastoa Stadtring/ Dissenchener Str. H.-Hammerschmidt-Str. 10 Parzellenstr Abzweig Friedhof Hans-Sachs- FriedrichHebbel-Str. Str. Ströbitzer Warmbad Sandow Mitte 19 Birkenstr. 12 Hüfnerstr. Sandower Brüc ke Am Doll Altmarkt Cottbusverkehr GmbH Walther-Rathenau-Str. 38, Cottbus Verkehrsbüro Busbahnhof O (03 55) cbv@cottbusverkehr.de Dissenchen, Wendeplatz Schule Haasower Str. Bärenbrücker Str. 28 RE10 RB43 Kolkwitz Süd Kackrow Steinteichmühle Schadowstr. Zimmerstr. 15 AugustBebelStr. 15 Krieschow Wiesendorf Rathaus 14 Leipzig Falkenberg (Elster) 39 Glinzig Körnerstr. Bonnaskenplatz 16 Stadthalle Schillerstr. Ströbitzer Weg 3 Ströbitz Verkehrsverbund Berlin-Brandenburg GmbH Hardenbergplatz 2, Berlin O (030) Merzdorf, Alter Bahnhof Badesee Madlow Rosenwinkel 17 Spreestr. Heinrich- Kleist- Uhlandstr. str. Mann-Str Büdnerstr Am Sportplatz Kahren, Am Park Kah ren, Schmiede Karlshof Schule Frauendorf 25 Gallinchen, 16 Siedlung Gallinchen, Telering Sportpark Groß Gaglow, 13 Schule 13 Schorbuser Chaussee Harnischdorfer Gaglower Weg str. Str. Str. Kutzeburger Weg 32 Groß Oßnig 33 Koppatz Roggosen Friedensplatz Spreemarkt Kahren, Kirche Neuhausener Weg Gablenz Sergen Komptendorf 25 Friedhof Gallinchen, Parzellenstr. Gallinchen, Eichengrund Hoyerswerda Madlow 3 Am Depot Gaglower Landstr. Groß Gaglow, Autobahnbrücke Klein Döbbern Groß Döbbern 32 Kiefernweg Kiekebusch, Hauptstr. Priorstr. Schwarzheider Str. Chopin- Hölderlin- Hänchener str. str. Str. 17 Sachsendorf 28 Kahren, Alte Schule Neuhausen (b Cottbus) Laubsdorf Bagenz Sellessen Weskow Muckrow Abzw. Bülow RB65 Zittau Gültig ab: 05. August 2013 Herausgeber: Verkehrsverbund Berlin-Brandenburg GmbH 46 Lessingstr./ Berliner Str. Waisenstr. E-Müller-Str. Langosa Berliner Str. Industriegelände Eichow Lortzingstr. Potsdamer Str. WilhelmNevoigt-Str. 18 Vetschau Lübbenau 18 Zahsower Str./ Sportplatz RE2 Kolkwitz Alte Schule Kolkwitz, Langosa Schule Information Merzdorf, Bahnhofstr. 11 Ströbitzer Str. Geschw.-Scholl-Str. SchumannSt r. Peitzer Str. 12 Papitzer Str. Bahnhof Nord Limberg CottbusMerzdorf G.-Hauptmann-Str. Nordring RE 37 Kunersdorf Klein Limberg Beuchstr. Technische Universität Hubertstr. Kundenbüro Cottbusverkehr HammergrabenSiedlung, Kulturhaus Merzdorf, West Spreewehrmühle Neue Str./ M.-Domaskojc-Str. Sportpalast Nordfriedhof 19 Ausbau Nord Dahlitz TUPapitzer Pappelallee Mensa Str. 16 Park-und-Ride-Möglichkeit 12 HammergrabenSiedlung, Post Neue Str. Zugang zum Fahrzeug über Rampe möglich Merzdorf, Feuerwehr RE 11 Freizeitbad Lagune Berlin Wittenberge Wismar Am Lug Zuschka Eigene Scholle Am Goyatzer Str. Nordrand Lakoma Merzdorf, Hauptstr. 1 Burger Chaussee/ Süd FlugplatzFichtesportplatz museum Schmellwitz, Anger Finkenweg 24 1 Regional-Buslinie mit Haltestelle, Haltestelle nur in Pfeilrichtung und Endhaltestelle Fernbahnhof Heinersbrück Jänschwalde Neu Lakoma M.-Domaskojc-Str./ Saspow, Kauperst r. Kleine Str. 20 Schmellwitzer Saspow, Weg Fröbelstr. Am Fließ AlbrechtDürer-Str. Byhlener Str. Rennbahnweg Straupitzer Str. Buslinie mit Haltestelle, Haltestelle nur in Pfeilrichtung und Endhaltestelle Linie des Bahn-Regionalverkehrs mit Bahnhof und Endbahnhof Maust Neuendorf Turnweg Saspow, Schreberweg Straßenbahnlinie mit Haltestelle, und Endhaltestelle Straßenbahn- bzw. Buslinie verkehrt nur zeitweilig 21 Teichland 12 Burger Chaussee/ TIP Meisenweg 4 46 H.-Hertz-Str. Burger Chaussee/ Campus Nord Neu Schmellwitz 11 Berlin Willmersdorf, Jahnstr. Skadow Guhrower Str./ Cottbus-Center 11 Papitz Schmellwitzer Str. RE Babow Milkersdorf 19 Gewerbeweg RE11 28 RB Fehrower Weg Cottbus-Center 37 Ruben w Nordparkstr. Frankfurt (Oder) Magdeburg Frankfurt (Oder) RE1 43 Willmersdorf, Möbeldorf 1 37 Siedlerstr. Zollhaus Süd Döbbrick, Dissener Weg 16 Zahsow Gulben Kirche Betriebshof Schmellwitz CottbusWillmersdorf Nord RE Striesower Str. 13 Werben 20 Burg Maiberg, Mitte Maiberg, Ost Döbbrick, Ost Altes Dorf Wiesengrund Kiebitzweg 24 Am Spreebogen Dorfstr. 20 Erlengrund 24 Feuerwehr Peitz 29 Maiberg, Friedhof Cottbuser Str. 3 Kraftwerk Jänschwalde Jänschwalde Guben Burg 24 Sielow, Sportplatz Briesen (SPN) Guhrow 47 Drehnow Turnow Burg Lieberose 21 Drachhausen Fehrow Schmogrow Saccasne Burg 800 Quelle: Cottbuser Verkehrsbetriebe = Schnellste Verbindung von A nach B finden

39 Netzwerk-Strukturen im Computer erfassen Beispiel: Freundschaftsverbindungen bei facebook Quelle: facebook.com Über maximal 6 Personen sind zwei beliebige facebook-nutzer weltweit miteinander verbunden.

40 Netzwerk-Strukturen im Computer erfassen Beispiel: Chemieanlage mit Rohrleitungsnetzwerk = Optimalen Durchfluss in der Gesamtanlage steuern, wenn eine Rohrleitung zur Reinigung abgeschaltet ist

41 Netzwerk als Graph abstrakt beschreiben Ein gerichteter Graph ist ein Netzwerk aus Knoten und Kanten, wobei jede Kante von einem Startknoten zu einem Zielknoten führt und eine Kantenbewertung (z.b. Entfernung) tragen kann. A C 6 B 8 9 D E F 12

42 Graph durch Knoten- und Kantenmenge darstellen A C B E 2 2 F 3 D 12 V : Knotenmenge, E: Kantenmenge G = (V, E) mit E V V V = {A, B, C, D, E, F} E = {(A, B), (A, C), (B, A), (B, D), (C, B), (D, C), (D, E), (D, F), (E, D), (F, F)} Kantenbewertungsfunktion f : E R f (A, B) = 7 f (A, C) = 4 f (B, A) = 10 f (B, D) = 9... f (F, F) = 12

43 Graph durch Knoten- und Kantenmenge darstellen A C B E 2 2 F 3 D 12 V : Knotenmenge, E: Kantenmenge G = (V, E) mit E V V V = {A, B, C, D, E, F} E = {(A, B), (A, C), (B, A), (B, D), (C, B), (D, C), (D, E), (D, F), (E, D), (F, F)} Kantenbewertungsfunktion f : E R f (A, B) = 7 f (A, C) = 4 f (B, A) = 10 f (B, D) = 9... f (F, F) = 12 Graph als Matrix (zweidimensionales Feld) A B C D E F A 7 4 B 10 9 C 6 D E 2 F 12

44 Im deutschen Flugnetz gut angebundene Flughäfen 12 Flughäfen mit jeweils mehr als einem innerdeutschen Linienziel unterlegte Karte: Google Maps

45 Entfernungstabelle innerdeutsche Direktflüge in km Berlin Bremen Dresden Düsseldorf FrankfurtM Berlin Bremen Dresden Düsseld Frankf.M Hamburg Hannover KölnBonn LeipzigH München Nürnberg Stuttgart Hamburg Hannover Köln/Bonn Leipzig/Halle München Nürnberg Stuttgart

46 Entfernungstabelle innerdeutsche Direktflüge in km Berlin Bremen Dresden Düsseldorf FrankfurtM Berlin Bremen Dresden Düsseld Frankf.M Hamburg Hannover KölnBonn LeipzigH München Nürnberg Stuttgart Von jedem Flughafen zu jedem Flughafen kürzesten Weg im Flugliniennetz bestimmen, auch über Umstiege. Beispiel: Von Dresden nach Bremen gibt es keine Direktverbindung, aber Bremen von Dresden aus via FrankfurtM mit innerdeutschen Linienflügen auf kürzestem Weg erreichbar Hamburg Hannover Köln/Bonn Leipzig/Halle München Nürnberg Stuttgart

47 Bestimmen der kürzesten Wege im Flugliniennetz Flugverbindungen.java Floyd-Warshall-Algorithmus Initialisierung der Entfernungsmatrix und des Flughafennamensfeldes, Methodenaufruf findekuerzesteverbindung zur Optimierung

48 Bestimmen der kürzesten Wege im Flugliniennetz Flughäfen Berlin... Stuttgart per Indexwert durchnummeriert Alle Kanten i j durchlaufen sowie alle Umwege über jeden Zwischenknoten k betrachtet. Ist die Entfernung von i nach j über k kürzer als die Direktverbindung, so wird die Matrix aktualisiert, also die eingetragene Entfernung durch die kürzere Entfernung ersetzt.

49 Bestimmen der kürzesten Wege im Flugliniennetz Schleifenvariablen z: Zeile, s: Spalte durchlaufen die Felder Formatierte Ausgabe der optimierten Entfernungsmatrix im zweiten Teil der main-methode

BUS Fahrplan. Regionalverkehr Bereich Cottbus. www. cottbusverkehr.de. gültig ab 23. August 2010. Schutzgebühr: 0,50

BUS Fahrplan. Regionalverkehr Bereich Cottbus. www. cottbusverkehr.de. gültig ab 23. August 2010. Schutzgebühr: 0,50 BUS Fahrplan Regionalverkehr Bereich Cottbus gültig ab 23. August 2010 Schutzgebühr: 0,50 www. cottbusverkehr.de Inhaltsverzeichnis > Adressen und Kontaktdaten 3-4 > Verkehrshinweise 4 > Bahn - Regionalverkehr

Mehr

EEG-ANLAGEN 2013. EEG-Anlagen Seite 1 von 18

EEG-ANLAGEN 2013. EEG-Anlagen Seite 1 von 18 E40543010009520304230316023000001 Cottbus 03042 Petzoldt-Straße 23 BB 1,600 2000 NS Solar DE00095203042EPH00303160230EP0002 Photovoltaikanlage E40543010009520304240360002000001 Cottbus 03042 Vorparkstraße

Mehr

Abfallkalender der Stadt Co!bus 2016

Abfallkalender der Stadt Co!bus 2016 Abfallkalender der Stadt Co!bus 2016 Mit Informa!onen, Terminen und Tourenplänen der Abfallwirtscha" STADT COTTBUS CHÓŚEBUZ Abfallentsorgung ö#entliche Uhren Straßenbeleuchtung Abwasserbesei!gung Papierkorbentsorgung

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

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

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Cottbus.de: Ausbildungsberechtigte Unternehmen und Studium in Cottbus (Stand: 2016-05-31)

Cottbus.de: Ausbildungsberechtigte Unternehmen und Studium in Cottbus (Stand: 2016-05-31) Cottbus.de: Ausbildungsberechtigte Unternehmen und Studium in Cottbus (Stand: 2016-05-31) Sie suchen ausbildungsberechtigte Unternehmen, e oder (Duale) Studiengänge in Cottbus? Die Angebote der Datei lassen

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Stadt Beschreibung (Deutsch) Beschreibungstext

Stadt Beschreibung (Deutsch) Beschreibungstext Stadt Beschreibung (Deutsch) Beschreibungstext Augsburg Fernbushaltestelle Biberbachstraße, 86154 Augsburg Die Haltestelle des ADAC Postbusses befindet sich am nördlichen Rand Augsburgs im Stadtteil Oberhausen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr

Unsere Auftrittstermine 2015. Januar. Februar. März

Unsere Auftrittstermine 2015. Januar. Februar. März Unsere Auftrittstermine 2015 (Wird fortlaufend ergänzt) Januar 08.01. Neujahrsempfang in der Seniorenresidenz am Fontaneplatz in Cottbus ca. 17.00 Uhr Februar 07.02. Karnevalsveranstaltung des Döberner

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo

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

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

SpreeGas 2012. Zahlen Fakten Wissenswertes

SpreeGas 2012. Zahlen Fakten Wissenswertes SpreeGas 2012 Zahlen Fakten Wissenswertes Inhalt Vorwort 3 Die Zukunft im Blick Privatkunden 4 5 Energie für Haushalte 4 Dauerhaft günstiges Erdgas für jeden Verbrauch 5 Geschäftskunden 6 7 Energie für

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

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

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Tag 9: Datenstrukturen

Tag 9: Datenstrukturen Tag 9: Datenstrukturen A) Datenstrukturen B) Cell Arrays C) Anwendungsbeispiel: Stimulation in einem psychophysikalischen Experiment A) Datenstrukturen Wenn man komplizierte Datenmengen verwalten möchte,

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

ADAC Postbus Fahrplan

ADAC Postbus Fahrplan Linie 10 NRW Hannover Berlin (täglich) Route Bus 109 Bus 109 Bus 113 Bus 110 Bus 111 Bus 112 Bus 114 Bus 110 Bonn 07:55 13:55 Köln 08:40 14:40 Düsseldorf 06:45 11:45 Duisburg 9:45 12:45 Essen 07:20 12:20

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/23 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 6

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

SEP 325. Notwendigkeit. häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz

SEP 325. Notwendigkeit. häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz Optimierungen SEP 325 Notwendigkeit häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz Symptome des Mangels an Performanz: OutOfMemoryError wird geworfen

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Arrays in Java. Text. Stefan Brotschi

Arrays in Java. Text. Stefan Brotschi Arrays in Java Stefan Brotschi Übersicht Einführung Deklaration, Generierung und Initialisierung Mehrdimensionale Arrays Arrays kopieren Klasse java.utils.arrays Kleine Knobeleien Einführung / Allgemein

Mehr

Binärbäume. Prof. Dr. E. Ehses, 2014 1

Binärbäume. Prof. Dr. E. Ehses, 2014 1 Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013 Aufgabenblatt 3 18. November

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Niemand bedauert diese Fehler mehr als der Autor selbst.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Vorlesungsteil 6 Rekursion PD Dr. Brandenburgische Technische Universität Cottbus Senftenberg Institut für Informatik, Informations- und Medientechnik Wintersemester 2014/2015 Wieviele Laubblätter und

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Anbindung des Flughafens Berlin-Brandenburg (BER) im öffentlichen Nahverkehr 23.10.2012. Jürgen Roß Bereichsleiter Planung und Fahrgastinformation

Anbindung des Flughafens Berlin-Brandenburg (BER) im öffentlichen Nahverkehr 23.10.2012. Jürgen Roß Bereichsleiter Planung und Fahrgastinformation Anbindung des Flughafens Berlin-Brandenburg (BER) im öffentlichen Nahverkehr 23.10.2012 Jürgen Roß Bereichsleiter Planung und Fahrgastinformation 1 Grafik: gmp Architekten, JSK International, Visualisierung:

Mehr

Programmieren in C++ Arrays, Strings und Zeigerarithmetik

Programmieren in C++ Arrays, Strings und Zeigerarithmetik Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum als Programmiersprache verwenden? Ein einfaches -Programm erstellen, übersetzen

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Informatik für Ingenieure

Informatik für Ingenieure Informatik für Ingenieure Eine Einführung Von Prof. Dr. rer. nat. Wolfgang Merzenich Universität-Gesamthochschule Siegen und Prof. Dr.-Ing. Hans Christoph Zeidler Universität der Bundeswehr Hamburg B.

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Diplomvorprüfung in Datenverarbeitung EBS Sommersemester 2002

Diplomvorprüfung in Datenverarbeitung EBS Sommersemester 2002 Diplomvorprüfung in Datenverarbeitung EBS Sommersemester 2002 Prüfungsaufgaben zu den Vorlesungen Datenverarbeitung im ersten und im zweiten Semester Aufgabensteller: Gleißner Die Lösungen sind auf das

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Teil 1: Grundeigenschaften von Rechnern und Software

Teil 1: Grundeigenschaften von Rechnern und Software Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr