grundlagen der modellierung und programmierung - …28_10_13.pdf · agenda 1 organisatorisches 2...
TRANSCRIPT
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
Agenda
1 Organisatorisches
2 Algorithmusbegriff
3 Flussdiagramme und Struktogramme
4 Programmierung in Java
5 Restklassenkorper
2 / 21Grundlagen der Modellierung und Programmierung, Ubung
N
Organisatorisches
Agenda
1 Organisatorisches
2 Algorithmusbegriff
3 Flussdiagramme und Struktogramme
4 Programmierung in Java
5 Restklassenkorper
3 / 21Grundlagen der Modellierung und Programmierung, Ubung
N
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
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
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
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
Algorithmusbegriff
Agenda
1 Organisatorisches
2 Algorithmusbegriff
3 Flussdiagramme und Struktogramme
4 Programmierung in Java
5 Restklassenkorper
8 / 21Grundlagen der Modellierung und Programmierung, Ubung
N
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
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
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
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
foo
13 / 21Grundlagen der Modellierung und Programmierung, Ubung
N
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
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
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
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
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
Restklassenkorper
Agenda
1 Organisatorisches
2 Algorithmusbegriff
3 Flussdiagramme und Struktogramme
4 Programmierung in Java
5 Restklassenkorper
19 / 21Grundlagen der Modellierung und Programmierung, Ubung
N
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
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