Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2...

21
Grundlagen der Modellierung und Programmierung ¨ Ubung Prof. Wolfram Amme LS Softwaretechnik Prof. Birgitta K¨ onig-Ries LS Verteilte Systeme Prof. Klaus K¨ uspert LS Datenbanksysteme Prof. Dr. Wilhelm Rossak LS Softwaretechnik Dipl.-Inf. Marco K¨ orner LS Digitale Bildverabeitung 28. Oktober 2013 1 / 21 Grundlagen der Modellierung und Programmierung, ¨ Ubung N

Transcript of Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2...

Page 1: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Grundlagen der Modellierung und ProgrammierungUbung

Prof. Wolfram AmmeLS Softwaretechnik

Prof. Birgitta Konig-RiesLS Verteilte Systeme

Prof. Klaus KuspertLS Datenbanksysteme

Prof. Dr. Wilhelm RossakLS Softwaretechnik

Dipl.-Inf. Marco KornerLS Digitale Bildverabeitung

28. Oktober 2013

1 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 2: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Agenda

1 Organisatorisches

2 Algorithmusbegriff

3 Flussdiagramme und Struktogramme

4 Programmierung in Java

5 Restklassenkorper

2 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 3: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Organisatorisches

Agenda

1 Organisatorisches

2 Algorithmusbegriff

3 Flussdiagramme und Struktogramme

4 Programmierung in Java

5 Restklassenkorper

3 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 4: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Organisatorisches

Wer bin ich?

Marco KornerDipl.-Inf.

Lehrstuhl Digitale BildverabeitungErnst-Abbe-Platz 2, Buro 1223

Tel.: 03641/9-46426Mail: [email protected]

4 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 5: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Organisatorisches

Wer seid Ihr?

wissbegierige Studenten der Studiengange

Bachelor of Sciences Informatik

Bachelor of Sciences Angewandte Informatik

Bachelor of Sciences Bioinformatik

Lehramt Gymnasium Informatik/Mathematik

5 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 6: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Organisatorisches

Was machen wir hier?

Vertiefung und praktische Anwendung der Vorlesungsinhalte

Besprechung der Ubungsaufgaben, Auswertung der Losungen

Probleme losen, Verstandnisfragen klaren

Organisatorisches

6 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 7: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Organisatorisches

Genereller Ablauf

bearbeitete Ubungsserien werden bis Freitag, 12:00 Uhr (Briefkasten vor Raum 3246,Ernst-Abbe-Platz 2)

Ausgabe der korrigierten Losungen hier

Besprechung moglicher Losungsansatze

ggfls. Vorarbeit zur folgenden Ubungsserie

7 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 8: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Algorithmusbegriff

Agenda

1 Organisatorisches

2 Algorithmusbegriff

3 Flussdiagramme und Struktogramme

4 Programmierung in Java

5 Restklassenkorper

8 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 9: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Algorithmusbegriff

Eigenschaften von Algorithmen

DeterminiertheitEin determinierter Algorithmus fuhrt bei identischen Eingaben immer zuridentischen Losung.

DeterminismusZu jedem Zeitpunkt der Ausfuhrung eines deterministischen Algorithmus istder jeweils nachste Handlungsschritt eindeutig definiert.

FinitheitLange und Speicherbedarf eines finiten/endlichen Algorithmus sindvordefiniert.

TerminiertheitDer terminierender Algorithmus bricht fur jede beliebige Eingabe nach einerendlichen Anzahl von Schritten ab. (Nicht algorithmisch entscheidbar!)

EffektivitatJede atomare Anweisung eines Algorithmus muss ein eindeutiges Ergebnisliefern.

9 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 10: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Algorithmusbegriff

Determiniertheit und Determinismus

Es gilt:

f ist deterministisch ⇒ f ist determinert (1)

f ist determinert 6⇒ f ist deterministisch (2)

Im Allgemeinen sind Algorithmen sowohl deterministisch, als auch determiniert.

Maschinenausgefuhrte Algorithmen sind per Definition sowohl deterministisch, als auchdeterminiert. Nichtdeterminiertheit kann nur simuliert werden. Beispiele?

10 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 11: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Algorithmusbegriff

Finitheit

Grundvoraussetzuung: Jeder Algorithmus muss durch eine endlich lange Vorschrift beschriebenwerden. ë statische Finitheit

Schon ware außerdem: Der vom Algorithmus benotigte Datenspeicher ist zu jedem Zeitpunktendlich. ë dynamische Finitheit

11 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 12: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Flussdiagramme und Struktogramme

Agenda

1 Organisatorisches

2 Algorithmusbegriff

3 Flussdiagramme und Struktogramme

4 Programmierung in Java

5 Restklassenkorper

12 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 13: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

foo

13 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 14: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Programmierung in Java

Agenda

1 Organisatorisches

2 Algorithmusbegriff

3 Flussdiagramme und Struktogramme

4 Programmierung in Java

5 Restklassenkorper

14 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 15: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Programmierung in Java

Konzepte der Programmierung

1 Funktionale Programmiersprachen

Grundprinzip: TermersetzungLISP, HOPE, Miranda, SML, Haskell

2 Imperative Programmiersprachen

Grundprinzip: Folge von VariablenzuweisungenAlgol, Fortran, Cobol, Pascal, C, Basic

3 Logikbasierte Programmiersprachen

Grundprinzip: PradikatenlogikProlog

4 Deklarative Programmiersprachen

Grundprinzip: Beschreiben der LosungsmengeSQL

5 Objektorientierte Programmiersprachen

Grundprinzip: Interaktion zwischen ObjektenJava, C++, SmallTalk

15 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 16: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Programmierung in Java

Java

neu entworfene Sprache, einfach zu erlernen

plattformunabhangig: write once, run everywhere

Compiler-Interpreter-Konzept:

Compiler erzeugt universellen Bytecode aus QuelltextformulierungInterpreter (Virtuelle Maschine) fuhrt Bytecode maschinenspezifisch ausNachteil: langsamere Ausfuhrung

JDK und JRE (zur Zeit) kostenlos verfugbar

massiver Einsatz bei Web-Technologien: Applets, Servlets, Geschaftsanwendungen

Konkurenz zu Microsofts C]

16 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 17: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Programmierung in Java

Installation und Vorbereitung

Notwendig zum Programmieren in Java:

1 Download des JDK: http://www.oracle.com/technetwork/java/javase/downloads

2 Quelltext-Editor: Notepad, (X)Emacs, KWrite, GEdit, . . . , Eclipse, NetBeans, . . .

3 Konsole/Terminal

17 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 18: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Programmierung in Java

Erstes Java-Programm

Listing 1: Quelltextdatei HelloWorld.java

1 public class HelloWorld {

2

3 public static void main(String [] argv) {

4 System.out.printf("Hello World !\n");

5 }

6

7 }

~> javac HelloWorld.java

~> java HelloWorld

Hello World!

~>

18 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 19: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Restklassenkorper

Agenda

1 Organisatorisches

2 Algorithmusbegriff

3 Flussdiagramme und Struktogramme

4 Programmierung in Java

5 Restklassenkorper

19 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 20: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Restklassenkorper

Restklassenring

Algebraisches/Zahlentheoretisches Konstrukt zur Beschreibung des Divisionsrest

Z/Zn oder Z/n oder Z/nZ: Restklassenring modulo n

a + nZ ist die Aquivalenzklasse von a bezuglich der Kongruenz modulo n

Ring-Eigenschaft: abgeschlossen unter Addition und Multiplikation:

[a] + [b] = [a + b][a] · [b] = [a · b]

Beispiele:

0 + 2Z: Menge der geraden Zahlen1 + 2Z: Menge der ungeraden Zahlen1 + 7 {0, . . . , 6}: Menge aller Dienstage

20 / 21Grundlagen der Modellierung und Programmierung, Ubung

N

Page 21: Grundlagen der Modellierung und Programmierung - …28_10_13.pdf · Agenda 1 Organisatorisches 2 Algorithmusbegri 3 Flussdiagramme und Struktogramme 4 Programmierung in Java 5 Restklassenk

Restklassenkorper

Restklassenarithmethik in Java

Ganzzahlige Division:

1 int a = 5, b = 2;

2 int c = a / b; // c = 2

Divisionsrest:

1 int a = 5, b = 2;

2 int c = a % b; // c = 1

21 / 21Grundlagen der Modellierung und Programmierung, Ubung

N