Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

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

for Grundlagen der Programmierung Stephan Kleuker 303

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

C++ Programmieren mit einfachen Beispielen DIRK LOUIS

Tag 4 Repetitorium Informatik (Java)

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Teil 2: Weitere Aspekte der Objektorientierung

Tag 4 Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java)

Fakultät IV Elektrotechnik/Informatik

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

10.4 Konstante Objekte

Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68

einlesen n > 0? Ausgabe Negative Zahl

Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90

1 Einleitung Generizität Syntax... 2

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

Anregungen zu Übung 2

Einführung in die Programmierung 1

Genauer müssen in den eckigen Klammern eigentlich Boolesche Bedingungen stehen. Man kann hinter jeden dargestellten Bedingungstext ein "ausgewählt"

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

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

Einstieg in die Informatik mit Java

Informatik I - Einstiegskurs

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Einstieg in die Informatik mit Java

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Javakurs für Anfänger

Das Einsteigerseminar Objektorientierte Programmierung in Java

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.

Web-Techniken Einführung in JavaScript

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

Einstieg in die Informatik mit Java

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4.

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Grundlagen der Objektorientierten Programmierung - Statische Arrays

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

Modellierung und Programmierung 1

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

ÜBUNGS-BLOCK 7 LÖSUNGEN

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

Arrays und Schleifen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10

Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden.

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Objektorientierte Programmierung in Java

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

Arrays (Reihungen) Arrays (Reihungen) in Java: Syntax, Typisierung, Semantik.

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

3.2 Datentypen und Methoden

Einführung in das Programmieren Probeklausur Lösungen

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

II.4.4 Exceptions - 1 -

Vorlesung Programmieren

10 Die Programmiersprache C99: Zusammenfassung

Informatik II Übung 5

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Richtig einsteigen: Access 2007 VBA-Programmierung

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Klausur Grundlagen der Programmierung

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Computeranwendung und Programmierung (CuP)

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen...

C programmieren. Jürgen Wolf

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

II.4.4 Exceptions - 1 -

Probeklausur: Programmierung WS04/05

Algorithmen und Datenstrukturen II

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

Probeklausur Name: (c)

Zeiger (1) Allgemeines

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

Vorkurs Informatik WiSe 16/17

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Algorithmen und Datenstrukturen I. Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

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

Einstieg in die Informatik mit Java

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]

Transkript:

303

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304

305

for-schleifen sind in Aktivitätsdiagrammen nicht von while-schleifen unterscheidbar, was auch die enge Verwandtschaft dieser Schleifenarten zeigt. 306

307

Wenn wirklich alle Elemente einer Collection durchlaufen werden sollen und man nicht die Position eines Elementes in der Collection ausgeben muss, ist das die deutlich beste Möglichkeit, über die Collection zu iterieren. 308

309

Die Folgenden Folien zeigen den typischen Ablauf einer Programmentwicklung für ein nicht triviales Programm. Generell muss zunächst die Aufgabe verstanden werden, danach wird typischerweise schrittweise das Programm entwickelt. Dabei wird zunächst eine einfache Lösung für den typischen Fall programmiert und dann schrittweise alle zu beachtenden Alternativen ergänzt. Man spricht von einer iterativen Entwicklung. 310

Hinweis: es gibt viele andere Varianten zum Sortieren, die eine wird hier nur als Beispiel gezeigt. 311

Verfahren wird auch Insert-Sort genannt, siehe auch http://www.youtube.com/watch?v=roalu379l3u Sortier-Verfahren sind die wahrscheinlich am meisten animiert dargestellten Verfahren der Welt. 312

313

314

315

316

317

318

319

320

321

Das Beispiel zeigt mit wo1 die Möglichkeit der direkten Initialisierung, die auch die Array-Größe auf sieben festlegt. Mit wo2 wird gezeigt, dass es auch einen Konstruktor für Arrays mit einer etwas besonderen Syntax gibt, die auch die Array-Größe festlegt. Durch diese Objekt-Erstellung haben alle Array-Elemente den Wert null. Man kann auch Variablen vom Typ Array deklarieren und ihnen später passende Arrays zuweisen. Eine direkte Initialisierung mit Werten ist dabei allerdings nicht möglich. Arrays können natürlich auch Typen von lokalen Variablen sein. 322

323

324

325

Man erinnere sich an das Verfahren, das beim Polygonzug verwendet wurde. Die Idee ist identisch, nur der Zugriff auf die Punkte sieht anders aus. Weiterhin wird immer der erste und der letzte Punkt verbunden. 326

Da es im zweiten Fall undefinierte Punkte, also null-werte, gibt, auf denen Methoden aufgerufen werden sollen, gibt es NullPointer-Fehler. Um dies zu vermeiden, kann man in anzeigen immer zunächst prüfen, ob der Punkt existiert oder null ist. Man überlege sich weiterhin, warum die Methode anzeigen grundsätzlich nicht mit Einecken, also nur einem Punkt oder einem Array der Größe null funktioniert. Die benötigten Korrekturen können zur Übung genutzt werden. 327

Zum Verschieben des N-Ecks werden wieder alle Punkte verschoben. Beide vorgestellten Methoden machen genau das Gleiche, die untere Methode zeigt, dass die vereinfachte for-schleife zum Durchlaufen aller Elemente genauso bei Arrays genutzt werden kann. 328

Man beachte, dass beim Verschieben das ursprüngliche Dreieck wie sonst auch, nicht vom Interaktionsbrett gelöscht wird. Es wird damit ein Dreieck dreimal gezeichnet und man sieht drei Dreiecke. 329

330

Man beachte, dass jedes Pferd aus seinen eigenen Punkt-Objekten besteht. Würde man die Methode verschieben hier nutzen, würde immer nur dasselbe Pferd verschoben werden. Will man ein Pferd aus mehreren n-ecken zusammensetzen, ist es sinnvoll eine eigene Klasse für eine solche Figur zu schreiben. 331

Generell fällt auf, dass im Programm viele Konstanten mitten in die Methoden hinein programmiert wurden, was gerade für große Programme ein sehr schlechter Stil ist. Besser wäre es, für die Position der Ziellinie und den Abstand der Pferde konstante Objektvariablen zu definieren. 332

333

Wenn man z. B. mehrere Strings zusammen verwalten will, kann man kurz darüber nachdenken, diese zeilenweise in einem Array zu verwalten. Dies soll vermieden werden, da die Grundregel gilt, dass zusammengehörige Daten in einem Objekt zusammengefasst sein sollen. 334

In mehrdimensionalen Arrays kann jedes Teilarray eine unterschiedliche Länge haben, die immer mit.length abgefragt werden kann. 335

336

337

338

339

340

341

Der Compiler-Aufruf erfolgt für jedes Betriebssystem mit javac. Der Compiler hat einige optionale Parameter, die hier noch nicht weiter betrachtet werden. Man erkennt, dass alle benötigten Klassen übersetzt werden. Zu jeder dieser Klassen existiert eine Datei mit ".class" am Ende. Diese Dateien sind unter jedem Betriebssystem nutzbar. Abhängig von der inneren Struktur der Klasse, können durchaus mehrere ".class"-dateien entstehen. 342

Java-Programme werden unter jedem Betriebssystem mit java aufgerufen. Als Parameter wird der Name einer vorher übersetzten Klasse übergeben, d. h. es muss eine Datei Main.class geben. Man beachte, dass niemals ".class" beim Aufruf mit angegeben wird. Es können nur ausführbare Klassen, also mit main-methode, zum Programmstart genutzt werden. 343

344

345

346

347

348

349

350