Martin Unold INFORMATIK. Geoinformatik und Vermessung

Ähnliche Dokumente
Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

3. Anweisungen und Kontrollstrukturen

Programmiertechnik Kontrollstrukturen

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

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

Primitive Datentypen

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

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

Einstieg in die Informatik mit Java

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

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

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

Javakurs für Anfänger

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

System.out.println("TEXT");

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

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

Einführung in die Programmierung Wintersemester 2011/12

Unterlagen. CPP-Uebungen-08/

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Einstieg in die Informatik mit Java

Javakurs für Anfänger

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

Vorlesung Programmieren

RO-Tutorien 3 / 6 / 12

Wie entwerfe ich ein Programm?

Ein erstes Java-Programm

Informatik I - Einstiegskurs

3. Algorithmenentwurf und JAVA. Informatik II für Verkehrsingenieure

Programmieren I. Kapitel 5. Kontrollfluss

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

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

Programmierkurs Java

9 Anweisungen und Kontrollstrukturen

JAVA-Datentypen und deren Wertebereich

Kapitel 3: Variablen

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

Operatoren (1) Operatoren (2)

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Tag 3 Repetitorium Informatik (Java)

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Java: Syntax-Grundlagen III

Elementare Konzepte von

Objektorientierte Programmierung

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

Algorithmen zur Datenanalyse in C++

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

C++ - Einführung in die Programmiersprache Schleifen

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

Einfache Rechenstrukturen und Kontrollfluss II

Funktionales C++ zum Ersten

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

PROGRAMMIERUNG IN JAVA

Java: Eine kurze Einführung an Beispielen

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Präzedenz von Operatoren

Tutorium Rechnerorganisation

Programmierkurs Python I

Programmierkurs Python I

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

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Einstieg in die Informatik mit Java

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

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

JAVA - Methoden - Rekursion

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

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

6. Iteration (Schleifenanweisungen)

Objektorientierte Programmierung OOP Programmieren mit Java

Vorkurs Informatik WiSe 16/17

String-Konkatenation

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Grundlagen der Programmierung

Einführung in die Programmierung 1

2 Imperative Sprachkonzepte

JAVA - Methoden

3. Grundanweisungen in Java

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

Flussdiagramm / Programmablaufplan (PAP)

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

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

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

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Objektorientierte Programmierung OOP Programmieren mit Java

Verzweigungen und Wiederholungen

Wo sind wir? Kontrollstrukturen

Kontrollstrukturen. Wo sind wir? Anweisung mit Label. Block. Beispiel. Deklarationsanweisung

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Die einfachsten Anweisungen

Programmieren mit einem einfachen Klassenkonzept

Annehmende Schleife do while

2. Algorithmenbegriff

Einführung in die Programmierung

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

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

ModProg 15-16, Vorl. 5

Java: Kapitel 2. Grundlagen. Programmentwicklung WS 2008/2009. Holger Röder

Transkript:

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

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

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;

Primitive Datentypen Datentypen in Java Boolscher Wahrheitswert boolean (JVM-spezifisch, mind. 1 bit) Unicode-Zeichen (UTF-16) char (16 bit) Ganzzahlen byte (8 bit) short (16 bit) int (32 bit) long (64 bit) Gleitkommazahlen float (32 bit) double (64 bit)

Operatoren allgemein Operator # Unäre Operatoren ergebnis = operand # ; ergebnis = # operand ; Binäre Operatoren ergebnis = operand1 # operand2 ;

Arithmetische Operatoren Zahl = Zahl # Zahl Relationale Operatoren Wahrheitswert = Zahl # Zahl Logische Operatoren Operatoren in Java Wahrheitswert = Wahrheitswert # Wahrheitswert Bitweise Operatoren Zahl = Zahl # Zahl String-Konkatenation Bedingungs-Operator Zuweisungs-Operator

Zuweisung mit Operation Kurz: variable #= wert; Abkürzungen Lang: variable = variable # wert; Resultat ist der Wert der Variablen nach der Veränderung Inkrement und Dekrement Präfix Kurz: ++variable; --variable; Lang: variable = variable+1; variable = variable-1; Resultat ist der Wert der Variablen nach der Veränderung Postfix Kurz: variable++; variable--; Lang: variable = variable+1; variable = variable-1; Resultat ist der Wert der Variablen VOR der Veränderung!

Auswertungsreihenfolge Welche Operation wird zuerst ausgeführt? Unäre Operatoren werden immer zuerst ausgeführt Punkt vor Strich Und vor Oder Vollständige Liste: Java ist auch eine Insel Kapitel 2.4.9 Nutzen Sie Klammern!! ( )

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

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);

Fragebogen ausfüllen

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 (auch Verzweigungen genannt) Iterationen (auch Wiederholungen oder Schleifen genannt)

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 (auch Verzweigungen genannt) Iterationen (auch Wiederholungen oder Schleifen genannt)

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);

Hausaufgaben 2.5 Bedingte Anweisungen oder Fallunterscheidungen 2.6 Schleifen