Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15



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

Programmierkurs Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Tutorium Rechnerorganisation

Erwin Grüner

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Modellierung und Programmierung 1

HEUTE. Effizienzbeispiel: bekannte Version (Übung ) Mathematik: Was ist Effizienz? vollständige Induktion

Einführung in die Java- Programmierung

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

5. Tutorium zu Programmieren

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

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

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Java Kurs für Anfänger Einheit 5 Methoden

Übungen Programmieren 1 Felix Rohrer. Übungen

Java Einführung Packages

Übersicht Programmablaufsteuerung

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

Einführung in die Programmierung

Software Engineering Interaktionsdiagramme

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Kapiteltests zum Leitprogramm Binäre Suchbäume

IT-Basics 2. DI Gerhard Fließ

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Modul 122 VBA Scribt.docx

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Dr. Monika Meiler. Inhalt

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Klassendefinitionen verstehen

Einführung in die Programmierung für Wirtschaftsinformatik

Algorithmen & Datenstrukturen 1. Klausur

Übungsblatt 3: Algorithmen in Java & Grammatiken

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

BEISPIELKLAUSUR Softwareentwicklung:

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

SEP 114. Design by Contract

Grundlagen von Python

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Wirtschaftsinformatik I

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

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

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Propädeutikum zur Programmierung

Archiv - Berechtigungen

Java-Programmierung mit NetBeans

1. Übung zu "Numerik partieller Differentialgleichungen"

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Einführung in die Programmierung

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

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

Whitebox-Tests: Allgemeines

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Test-Driven Design: Ein einfaches Beispiel

Programmieren in Java

Gesicherte Prozeduren

VBA-Programmierung: Zusammenfassung

Kontrollstrukturen und Funktionen in C

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Excel Funktionen durch eigene Funktionen erweitern.

Java Projekt: Tic Tac Toe + GUI

E-PRIME TUTORIUM Die Programmiersprache BASIC

Was ist Logische Programmierung?

Vorkurs C++ Programmierung

Tagesprogramm

Objektorientierte Programmierung

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Graphic Coding. Klausur. 9. Februar Kurs A

Formale Sprachen und Grammatiken

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Einführung in die Java- Programmierung

Schumacher, Chris Druckdatum :11:00

Taylorentwicklung der k ten Dimension

Übung: Verwendung von Java-Threads

Grammatiken. Einführung

1 Mathematische Grundlagen

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Kontrollstrukturen, Strukturierte Programmierung

Javakurs 2013 Objektorientierung

Überblick. Lineares Suchen

Funktionale Programmierung mit Haskell


Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Klausur in Programmieren

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Grundlagen der Theoretischen Informatik, SoSe 2008

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

1 topologisches Sortieren

EndTermTest PROGALGO WS1516 A

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Klausur in Programmieren

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Probeklausur: Programmierung WS04/05

Transkript:

Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15

CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen Methoden Scope Arrays Klassen Interfaces Vererbung CoMa I WS 08/09 2/15

Ansagen HA 4 Fehler in Aufgabe 10 b muss sein: fvalue = 2. ; Pseudocode: in FOR-Schleifen kein expliziter Inkrement notwendig bei Schrittweite 1 Relevanz für HA-Korrektur, sprecht ggf. die Tutoren an Test am 09. Dezember zwischen 14 und 16 Uhr Mittwoch, 11. November, zwischen 14 und 16 Uhr Nachhilfe-RB im Unixpool im Ostsaal an der Empore Wer keine Probleme hat mit OAs und RBs, hat frei Wer kommt auf keinen Fall? CoMa I WS 08/09 3/15

Schleifen in JAVA ihr kennt initialization ; while ( condition ) {... ; increment ; } Steuermechanismus: initialization ; do {... ; increment ; } while ( condition ) ; initialization: die Steuervariable erstmals setzen condition: die Steuervariable überprüfen increment: die Steuervariable verändern. November 2009 CoMa I WS 08/09 4/15

Die for -Schleife while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for ( initialization ; condition ; increment ) {... ; } Vorteil: Steuermechanismus steht zusammen man erkennt Funktion der Schleife mit einem Blick CoMa I WS 08/09 5/15

Die for -Schleife Vergleich der Schreibweisen: int sum = 0 ; int prod = 1 ; int k = 1 ; int sum = 0 ; int prod = 1 ; while ( k <= n ) { sum += k; prod *= k; k++ ; } for ( int k = 1 ; k <= n ; k++ ) { sum += k; prod *= k; }. November 2009 CoMa I WS 08/09 6/15

Die for -Schleife jeder der Steuerteile darf auch leer sein, z.b.: int n = Integer.parseInt( "2" ); if ( n < 1 ) System.out.println( " eingegebene Zahl muss >= 1 sein!"); else for ( ; n >= 1 ; n ) {... } for ( ; ; ) entspricht while ( true ) echte Endlosschleife. November 2009 CoMa I WS 08/09 7/15

Schleifeninvarianten Schleifeninvarianten: Sind Eigenschaften von Schleifen, die zu einem bestimmten Punkt bei jedem Durchlauf der Schleife gültig sind, auch unabhängig von der Anzahl der bisherigen Durchläufe. typischerweise Wertebereiche von Variablen oder Beziehungen zwischen Variablen (x y). Dienen auch zum Beweis der Korrektheit von Algorithmen. CoMa I WS 08/09 8/15

Algorithmus Maximum Ziel: Bestimme maximalen Eintrag eines Vektors max( x ) Input: x R n Output: max n i=1 x i max:= FOR i := 1 TO n (STEP 1) DO IF x i > max THEN max:=x i ENDIF ENDFOR RETURN max max( x ) Input: x R n Output:max n i=1 x i max:= i := 1 WHILE i n DO IF x i > max THEN max:=x i ENDIF i:=i + 1 ENDWHILE RETURN max CoMa I WS 08/09 9/15

Arbeitet Algo korrekt? Variable max muss nach Ende des Algos den Wert max{x 1,...,x n } haben betrachte den Wert der Variablen am Ende max am Ende eines Schleifendurchlaufs formal: sei max(i) der Wert der Variablen max am Ende der i-ten Iteration Invarianten: max(i) x i max(i) max(i + 1) max(i) = max{x 1,...,x i } CoMa I WS 08/09 10/15

Schleifeninvariante mit vollständiger Induktion IA: i = 1 x 1 = max(1) = max{x 1 } = x 1 IV: Für beliebiges aber festes i 1 gilt max(i) = max{x 1,..., x i } IS: i i + 1 max(i + 1) Algo = max{max(i), x i+1 } IV = max{max{x 1,...,x i }, x i+1 } Wissen = max{x 1,...,x i+1 } CoMa I WS 08/09 11/15

Referenztypen, Wrapperklassen und API verschiedene Klassen schon gesehen: TextField, Integer, String, Applet, (Primzahl,)... Welche verschiedenen Klassen gibt es überhaupt? http://java.sun.com/javase/6/docs/api/ API = Application Programming Interface Einführung anhand der Klassen String, Integer und Point E-Kreide. November 2009 CoMa I WS 08/09 12/15

import Anweisung Klassen der API in Paketen verwaltet benutzen mittels import Anweisung z. B. import java.awt.*; automatisch importiert wird java.lang.* Integer Double Math String... Achtung: kein rekursiver Import von Sub-Paketen fehlende Details später CoMa I WS 08/09 13/15

Modifier static Globale Variablen / Datenfelder ohne static nennt man Instanzvariablen oder Objektvariablen, ihre Werte hängen von der Instanz ab Zugriff über getter und setter Methoden (Konvention) Globale Variablen / Datenfelder mit static nennt man Klassenvariablen, sind instanzunabhängig, Beispiele: Math.PI static double, Integer.MAX_VALUE static int Variablen Methoden non-static Instanzvariablen Instanzmethoden static Klassenvariablen Klassenmethoden CoMa I WS 08/09 14/15

Klassenmethoden versus Instanzmethoden int ivalue = Integer.parseInt(); Deklaration: public static int parseint(string s) int ivalue = Math.round(25.5f); Deklaration: public static int round(float a) String str = Hallo! ; int length = str.length(); Deklaration: public int length() CoMa I WS 08/09 15/15