Martin Unold INFORMATIK. Geoinformatik und Vermessung

Ähnliche Dokumente
Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Java Anweisungen und Ablaufsteuerung

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Java Ablaufsteuerung (Beispiele)

3. Anweisungen und Kontrollstrukturen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmiertechnik Kontrollstrukturen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Javakurs für Anfänger

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

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

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

System.out.println("TEXT");

Javakurs für Anfänger

Javakurs für Anfänger

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Einstieg in die Informatik mit Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

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

2 Teil 2: Nassi-Schneiderman

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

Programmierkurs Java

Einstieg in die Informatik mit Java

2 Programmieren in Java I noch ohne Nachbearbeitung

Anweisungen zur Ablaufsteuerung

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

Einstieg in die Informatik mit Java

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

Vorkurs Informatik WiSe 16/17

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Vorlesung Programmieren

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Einstieg in die Informatik mit Java

Objektorientierte Programmierung

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Einstieg in die Informatik mit Java

Kontrollstrukturen und Logik

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

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

C++ - Einführung in die Programmiersprache Schleifen

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Elementare Konzepte von

9 Anweisungen und Kontrollstrukturen

Vorlesung Programmieren

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

6. Iteration (Schleifenanweisungen)

Abschnitt 5. Grundlagen der funktionalen & imperativen Programmierung

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

Schleifen: Immer wieder dasselbe tun

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

Einführung in die Programmierung Wintersemester 2011/12

Vorkurs Informatik WiSe 17/18

6. Iteration (Schleifenanweisungen)

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

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

Übungen zu Programmieren - Code-Formatierung -

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

Tag 3 Repetitorium Informatik (Java)

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Arbeitsblätter für Algorithmierung und Strukturierung C #

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

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

Java I Vorlesung Imperatives Programmieren

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

Kapitel 4: Anweisungen und Kontrollstrukturen

Tag 3 Repetitorium Informatik (Java)

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

PROGRAMMIERUNG IN JAVA

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Kapitel 3: Anweisungen

Informatik I - Einstiegskurs

Java: Eine kurze Einführung an Beispielen

Einführung in die Programmierung II. 3. Kontrollstrukturen

Ausdrücke und Anweisungen Übungen

Kapitel 04: Was ist ein Algorithmus? Software Entwicklung 1

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Java: Syntax-Grundlagen III

2. Algorithmenbegriff

Intensivübung zu Algorithmen und Datenstrukturen

Transkript:

Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen

Anweisungen mit Variablen Wiederholung Deklaration einer Variablen (muss initialisiert werden) Datentyp variablenname; Deklaration und Initialisierung einer Variablen Datentyp variablenname = Wert; Zuweisung eines Wertes zu einer Variablen variablenname = Ausdruck;

Wiederholung Anweisungen durch Methodenaufrufe Ausgabe auf der Konsole System.out.println(...); Benutzereingabe einlesen = scanner.nextdatentyp(); Mathematische Funktionen Math.sqrt( ), Math.sin( ), Math.random()

Kontrollstrukturen

Sequenz Kontrollstrukturen Eine Anweisung wird nach der anderen ausgeführt Selektion Anweisung wird in Abhängigkeit einer Bedingung ausgeführt Iteration Anweisung wird mehrfach wiederholt ausgeführt

Sequenz Reihe von Anweisungen mit Semikolon trennen, eine je Zeile Anweisung1; Anweisung2;... Beispiel Lies eine Variable x vom Benutzer ein Gib Hallo aus Gib das Doppelte der Variablen x aus double x = scanner.nextdouble(); System.out.println("Hallo"); System.out.println(2*x);

Selektion If-Verzweigung, Bedingte Anweisungen mit Tab einrücken!!! if (Bedingung) { Anweisungen Beispiel (Sequenz und Selektion) Lies das Alter des Benutzers ein Wenn das Alter mindestens 18 ist gib aus, dass die Volljährigkeit erreicht ist Gib Ende aus int age = scanner.nextint(); if (age >= 18) { System.out.println("Volljährigkeit erreicht"); System.out.println("Ende");

If-else-Verzweigung, Selektion if (Bedingung) { Anweisungen else { Anweisungen Beispiel int age = scanner.nextint(); if (age >= 18) { System.out.println("Zugriff erlaubt"); System.out.println("Filme, Alkohol, etc."); else { System.out.println("Zugriff verweigert"); System.out.println("Ende");

Iteration While-Schleife, Wiederholte Anweisungen einrücken!!! while (Bedingung) { Anweisungen Beispiel (Sequenz und Iteration) Lies das Alter des Benutzers ein Solange das Alter unter 18 ist gib aus, dass noch ein Jahr gewartet werden muss erhöhe das Alter um 1 int age = scanner.nextint(); while (age < 18) { System.out.println("Du musst noch ein Jahr warten"); ++age;

Iteration Do-While-Schleife, Wiederholte Anweisungen einrücken!!! do { Anweisungen while (Bedingung); Unterschied Anweisungen werden auf jeden Fall einmal ausgeführt Erst am Ende wird die Bedingung geprüft Beispiel int dice; do { dice = (int)(1+math.random()*6); System.out.println("Du hast eine"+dice+"gewürfelt"); while (dice!= 6); System.out.println("Jetzt kam endlich eine 6.");

Iteration For-Schleife, Wiederholte Anweisungen einrücken!!! for (AnweisungVorher;Bedingung;AnweisungNachWdh) { Anweisungen Entspricht folgender While-Schleife AnweisungVorher; while (Bedingung) { Anweisungen AnweisungNachWdh; Beispiel for (int age = scanner.nextint(); age < 18; ++age) { System.out.println("Du musst noch ein Jahr warten");

Java-Programm Diagramme public class GGT { public static void main (String[] args) { int a = 123; int b = 1452; while (a > 0 && b > 0) { if (a > b) { a = a - b; else { b = b - a; if (b == 0) { System.out.println(a); else { System.out.println(b);

Diagramme Nassi-Shneidermann-Diagramm (Struktogramm) public class GGT { public static void main (String[] args) { int a = 123; int b = 1452; while (a > 0 && b > 0) { if (a > b) { a = a - b; else { b = b - a; if (b == 0) { System.out.println(a); else { System.out.println(b);

Diagramme Ablaufdiagramm (Programmablaufplan) public class GGT { public static void main (String[] args) { int a = 123; int b = 1452; while (a > 0 && b > 0) { if (a > b) { a = a - b; else { b = b - a; Start if (b == 0) { System.out.println(a); else { System.out.println(b); a > 0 b > 0 b == 0 b = b-a Nein Ja Nein a = a-b Nein Ja a > b Ja Ende Print a Print b

Blöcke Block beginnt { Block endet Gültigkeit von Variablen Variablen, die in einem Block deklariert werden, sind nach dem Ende des Blocks nicht mehr gültig Einrücken Blöcke werden eingerückt, damit man auf den ersten Blick sieht, wo wiederholt oder verzweigt wird

Abkürzung Ist innerhalb der geschweiften Klammern lediglich eine Anweisung, so kann man die Klammern auch weggelassen Beispiel while while (a > 0) { --a; while (a > 0) --a; Beispiel if if (a > 0) { System.out.println(a); if (a > 0) System.out.println(a);

Selektion

Java-Programm Grundgerüst public static void main (String[] args) { Anweisungen Anweisungen können beliebige Anweisungen sein Sequenzielle Anweisungen Methoden aufrufen (z.b. System.out.println()) Variablen deklarieren Variablen Werte zuweisen Selektionen (Verzweigungen) Schleifen (Wiederholungen)

If-Verzweigung Selektion if (Bedingung) { Anweisungen Schlüsselwort if Bedingung muss vom Datentyp boolean sein Anweisungen können wieder beliebige Anweisungen sein Stehen innerhalb der geschweiften Klammern Werden nur dann ausgeführt, wenn der Ausdruck in den runden Klammern true ist

If-else-Verzweigung Selektion if (Bedingung) { Anweisungen else { Anweisungen Schlüsselwort if und else Bedingung muss vom Datentyp boolean sein Anweisungen innerhalb der if-klammern werden ausgeführt, wenn die Bedingung true ist Anweisungen innerhalb der else-klammern werden ausgeführt, wenn die Bedingung false ist

Selektion Bedingungsoperator Bedingung? AusdruckTrue : AusdruckFalse Bedingung muss vom Datentyp boolean sein Beide Ausdrücke müssen vom gleichen Datentyp sein Das Ergebnis entspricht dem Datentyp des Ausdrucks Der Ausdruck vor dem Doppelpunkt wird genommen, wenn die Bedingung true ist Der Ausdruck hinter dem Doppelpunkt wird genommen, wenn die Bedingung false ist

Switch-Anweisung Selektion switch (Variable) { case Wert: Anweisungen break; default: Anweisungen break; Schlüsselwort switch, case, default und break Variable muss primitiven Datentyp haben oder String Je nach Wert der Variablen werden die Anweisungen im entsprechenden case ausgeführt Falls keiner der angegebenen Werte übereinstimmt, default

Beispiel Switch-Anweisung int month = scanner.nextint(); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("Der Monat hat 31 Tage."); break; case 2: System.out.println("Der Monat hat 28/29 Tage."); break; case 4: case 6: case 9: case 11: System.out.println("Der Monat hat 30 Tage."); break; default: System.out.println("Das ist kein Monat."); break;

Übung Was gibt dieses Programm aus? public class Test { public static void main (String[] args) { int a = 10; int b = 5; int c = 0; if (a > b) { c = a > b? a : b; if (a > c) { c += 2*a; System.out.println(c);

Iteration

Java-Programm Grundgerüst public static void main (String[] args) { Anweisungen Anweisungen können beliebige Anweisungen sein Sequenzielle Anweisungen Methoden aufrufen (z.b. System.out.println()) Variablen deklarieren Variablen Werte zuweisen Selektionen (Verzweigungen) Schleifen (Wiederholungen)

While-Schleife Iteration while (Bedingung) { Anweisungen Schlüsselwort while Bedingung muss vom Datentyp boolean sein Anweisungen können wieder beliebige Anweisungen sein Stehen innerhalb der geschweiften Klammern Werden ausgeführt, solange der Ausdruck in den runden Klammern bei Überprüfung true ist Eine Überprüfung findet nicht zwischendurch statt

Iteration Do-While-Schleife do { Anweisungen while (Bedingung); Schlüsselwort do und while Bedingung muss vom Datentyp boolean sein Anweisungen können wieder beliebige Anweisungen sein Stehen innerhalb der geschweiften Klammern Werden auf jeden Fall einmal ausgeführt, danach nur wenn der Ausdruck in den runden Klammern bei Überprüfung true ist Eine Überprüfung findet nicht zwischendurch statt

Iteration For-Schleife for (AnweisungVorher;Bedingung;AnweisungNachWdh) { Anweisungen Schlüsselwort for Bedingung muss vom Datentyp boolean sein Anweisungen innerhalb der geschweiften Klammern werden wiederholt, wenn die Bedingung true ist Eine Anweisung (AnweisungVorher) wird einmal zu Beginn der Schleife ausgeführt Eine Anweisung (AnweisungNachWdh) wird nach jedem Schleifendurchlauf ausgeführt

For-Schleife For oder While -Schleife? Anzahl der Wiederholungen steht zu Beginn der Schleife fest Variable wird hochgezählt, um Anzahl der Durchläufe zu zählen While-Schleife Abbruchbedingung ist keine Grenze Keine Schleifenvariable zum Mitzählen der Durchläufe wird genutzt Do-While-Schleife Wenn die Anweisungen auf jeden Fall einmal durchlaufen werden Ansonsten wie while-schleife

For-Schleife For oder While -Schleife? for (Anweisung1; Ausdruck; Anweisung2) { Anweisungen While-Schleife Anweisung1; while (Ausdruck) { Anweisungen Anweisung2;

Endlosschleife Was macht dieses Programm? public class Endlosschleife { public static void main (String[] args) { int i = 1; while (true) { System.out.println(i+". Durchlauf"); ++i;

Endlosschleife Anweisungen in Schleife wiederholen sich immer wieder Kann nicht vom Compiler erkannt werden Programmabbruch nötig In Eclipse Vermeidung von Endlosschleifen durch Zähler int counter = 1; while (counter < 1000000 && FehlerhafteBedingung) { ++counter; FehlerhafteAnweisungen;

Schlüsselwort break Break und Continue Springt zur schließenden Klammer der Schleife und beendet die Schleife Schlüsselwort continue Springt zur schließenden Klammer der Schleife und prüft die Bedingung, falls true, neuer Schleifendurchlauf Vermeidung von Endlosschleifen durch Zähler int counter = 1; while (FehlerhafteBedingung) { ++counter; if (counter > 1000000) { break; FehlerhafteAnweisungen;

Übung Was gibt dieses Programm aus? public class Test { public static void main (String[] args) { int a = 0; int b = 2; int c = 4; while (a < c) { --c; if (b < a + c) { ++a; b += 2*a; System.out.println(b);

Übung Was gibt dieses Programm aus? public class Test { public static void main (String[] args) { int x = 1; if (12 < 3 13 < 4) { x = 10; else { boolean b = true; while (b) { x *= 2; b = x%5 == 1; System.out.println(x);

Algorithmus

Algorithmus Geregelte Prozeduren zur Lösung definierter Probleme Verarbeitungsvorschrift zur systematischen Lösung eines Problems in endlich vielen Schritten Genau definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen in endlich vielen Schritten

Algorithmus

Determiniertheit Forderungen an Algorithmen Algorithmus liefert bei jeder Ausführung mit den gleichen Anfangsbedingungen immer das gleiche Ergebnis Determinismus Zu jedem Zeitpunkt ist der nächste Handlungsschritt eindeutig definiert

Statische Finitheit Forderungen an Algorithmen Die Beschreibung des Algorithmus besitzt eine endliche Länge (Quellcode ist nicht unendlich lang) Dynamische Finitheit Der Algorithmus darf nur endlich viele Resourcen benötigen (Speicherplatz, Prozessorleistung, ) Terminiertheit Der Algorithmus muss nach endlicher Zeit anhalten (keine Endlosschleife)

Genauigkeit Forderungen an Algorithmen Reduktion von Auslöschungen Effizienz (Komplexität) Der Algorithmus sollte möglichst ressourcenschonend arbeiten (wenig Speicherverbrauch, wenig Zeit)

Euklidischer Algorithmus Sieb des Eratosthenes Gaußsche Osterformel Algorithmen Beispiele Such- und Sortieralgorithmen Kryptographische Algorithmen (Ver- und Entschlüsselung) Kompression Graphentheoretische Algorithmen Kürzeste-Wege Problem des Handlungsreisenden

Algorithmen

Elementare Anweisungen Teile x durch 2 Erhöhe y um 1 Strukturierte Anweisungen Verzweigung Wiederholung Algorithmen

Hausaufgaben 2.5 Bedingte Anweisungen oder Fallunterscheidungen 2.6 Schleifen