Kontrakte, Abstrakte Datentypen und Verfeinerung

Größe: px
Ab Seite anzeigen:

Download "Kontrakte, Abstrakte Datentypen und Verfeinerung"

Transkript

1 Kontrakte, Abstrakte Datentypen und Verfeinerung 229

2 Kontrakte 230

3 Vor- und Nachbedingungen, Kontrakte Ein Kontrakt für eine Prozedur p (oder auch für eine Methode) besteht (mindestens) aus einer Vorbedingung ϕ (präd.log. Formel) einer Nachbedingung ψ (präd.log. Formel) der Angabe der input-parameter (incl. gelesene globale Variablen) der Angabe der output-parameter (incl. geschrieben globale Variablen). Dazu kommt natürlich eine informelle Beschreibung: U.a. Name und Zweck der Operation, Querverweise zu Use Cases, etc. Bemerkung: Für KIV-Prozeduren fehlen die globalen Variablen. Sie müssen als I/O-Parameter addiert werden. 231

4 Vor- und Nachbedingungen, Kontrakte Definition: Eine Methode mit Implementierung mit Rumpf α erfüllt einen Kontrakt, falls die Parameter korrekt gegeben und der Rumpf total korrekt bzgl. Vor- und Nachbedingung ist. Formal also muss gelten: Im Hoare-Kalkül: ϕ α ψ In Dynamischer Logik: ϕ α ψ Bemerkung:(Vorbedingung in Kontrakten) Wenn die Vorbedingung nicht eingehalten wird, darf beliebiges passieren: Absturz, Exception, Nichtterminierung, reguläres Ergebnis, illegaler Speicher etc. 232

5 Zwei Beispiekontrakte Beispiel 1 (Revertieren einer Liste): Eingabe und Ausgabe: Liste x Vorbedingung: x = y Nachbedingung x = reverse(y) Beispiel 2 (Entfernen eines Element von einem Stack): Eingabe: Stack st. Ausgabe: Modifizierter Stack st und Element a. Vorbedingung: st = st 0 st emptystack Nachbedingung st = pop(st 0 ) a = top(st 0 ) y und st 0 sind logische Variablen, die nur zur Spezifikation benötigt werden. Alles andere sind Programmvariablen. 233

6 Kontrakte für Java Für Java oder C# sind die Argumente Eingabeparameter und das Ergebnis der einzige Ausgabeparameter. Es gibt immer genau einen IO-Parameter: den Speicher Der Speicher wird gelesen/modifiziert ist nicht aussagekräftig Deshalb: Genauere Angaben,welche Objekte/Assoziationen gelesen/geschrieben/erzeugt werden sind in Vor- und Nachbedingung erforderlich! Die Nachbedingung kann auch: Wirft für bestimmte Eingaben eine bestimmte Exception lauten. Sinnvollerweise teilt man die Nachbedingung deshalb in einen regulären und einen Exception-Teil. 234

7 Kontrakte als Relation: Beispiele Statt getrennt Vor- und Nachbedingung anzugeben, kann man äquivalent den Kontrakt auch als Prädikat angeben, das die Relation zwischen Anfangs- und Endzustand beschreibt. Für die Beispiele lauten die Prädikate REV(x,x ) y. x = y x = reverse(y) POP(st,st,a ) st 0. st = st 0 st emptystack st = pop(st 0 ) a = top(st 0 ) Die Formeln können vereinfacht werden: REV(x,x ) x = reverse(x) POP(st,st,a ) st emptystack st = pop(st) a = top(st) 235

8 Kontrakte als Relation Benötigt wird Konvention für Start- und Endwert einer Variable. Je nach Spezifiaktionssprache verschieden. Z: x bezeichnet den Startwert, x den Endwert VDM: pre(x) für den alten, x für den neuen JML (für Java): \old(x) für den alten und x für den neuen Die Relation ist die Konjunktion von Vor- und Nachbedingung, wobei in der Nachbedingung x statt x genommen wird In der Relation stehen nur die Programmvariablen Logische Variablen werden existenzquantifiziert, fallen häufig weg. Relationale Spezifikation ist etwas eleganter als getrennte Vor- und Nachbedingung (Programmvariablen klar, keine log. Variablen) Relational beschreibene Kontrakte heissen oft auch Operationen. 236

9 Kontrakt REV vs. reverse Funktion Was ist neu im Kontrakt REV(x,x ) x = reverse(x) gegenüber der Funktionsdefinition? Der Kontrakt legt fest, dass x Programmvariable ist, und überschrieben wird! Der Kontrakt REV(x,z ) z = reverse(x) besagt dagegen, daß x nur gelesen, und z überschrieben wird. 237

10 Vorbedingung relationaler Kontrakte Relationale Spezifikation verhindert auch, das die Nachbedingung noch implizit Vorbedingungen stellt: Beispiel: Vorbedingung: x = y Nachbedingung: x = reverse(y) x []. Für die Eingabe x = [] ist es nicht möglich, den Kontrakt zu erfüllen, obwohl die Vorbedingung immer erfüllt ist. Definition: Für eine Operation OP(x,y ) ist die Vorbedingung pre(op) für die Eingaben x die Formel: pre(op)(x) : y. OP(x,y ). 238

11 Kontrakte in der Spezifikationssprache Z Ein Kontrakt wird in der Spezifikationssprache Z als Schema bechrieben: OP x in? out! ϕ(in?, x) ψ(x, x, out!) ;; modifizierter Zustand ;; Eingaben ;; Ausgaben ;; Vorbedingung ;; Zeilen konjunktiv verknüpft ;; Nachbedingung 239

12 Beispielkontrakte als Relationen REV x : list x = reverse(x) POP st : stack a! : elem GET s : set a! : elem s empyset a! s st emptystack a! = top(st) st = pop(st) Beobachtung: Datentypoperationen wie POP, REV duplizieren die algebraische Operation (reverse, pop) im wesentlichen. Allerdings vermeiden sie Unterspezifikation (POP) und können indeterministisch sein (GET). 240

13 Abstrakte Datentypen 241

14 Abstrakte Datentypen Eine Grundidee zur mathematischen Beschreibung eines Softwaresystems ist die eines Automaten mit Zuständen und Abläufen. Es gibt dann: Eine Menge möglicher Systemzustände (in Vorlesung SWT durch Klassendiagramm beschrieben) Einen Anfangszustand (oder mehrere). Eine Anzahl Systemoperationen (Vorlesung SWT!). Die Operationen bekommen Eingaben, modifizieren den Systemzustand und produzieren Ausgaben. Dadurch entstehen Abläufe. Für die Modellierung verwenden wir: Belegungen von Variablen mit algebraisch spezifizierte Datenstrukturen zur Beschreibung von Zuständen Kontrakte zur Beschreibung der Systemoperationen 242

15 Abstrakte Datentypen Ein Abstrakter Datentyp DT = (S, INIT, {OP i } i I ) besteht aus Einer Zustandsmenge S. Typischerweise besteht S aus der Belegung eines Vektors von Variablen mit algebraisch spezifizierten Datentypen. Einer Menge von Initialzuständen INIT S. Einer Menge (für i I) von (relational definierten) Kontrakten: OP i IN i S S OUT i Die Kontrakte werden auch Operationen genannt. Jede Operation hat Eingaben aus IN i (kann für einzelne Operationen wegfallen) modifiziert den Zustand S hat eine Eingabe aus OUT i (kann für einzelne Operationen wegfallen) 243

16 Algebraischer Datentyp: queue Gegeben seien algebraisch spezifizierte Queues von integers (als Instanz von Listen spezifiziert) mit Operationen: Sorte queue Konstante emq (die leere Queue) Konstruktor + : elem queue queue (vorne an die Queue anfügen) Funktion enq : queue int queue (hinten an die Queue anfügen) Funktion deq : queue queue (vorne wegnehmen) Funktion hd : queue int (vorderstes Element) Kann aus Listen abgeleitet werden: Leere Liste entspricht leerer Queue hd und deq sind die Selektoren.first und.rest enq ist attach (hinten anhängen an die Liste) 244

17 Abstrakter Datentyp: queue Zustand = Eine Variable q vom Typ queue Initialzustand: q = emq Freier Datentyp für das Resultat von DEQ: elemornone = mk(..elem : elem) none 3 Operationen: EMQ, ENQ, DEQ none könnte in einer Implementierung eine Exception werden, aber auch ein Spezialwert bleiben. 245

18 Kontrakte für queue-operationen EMQ q : queue q = emq ENQ q : queue a? : elem q = enq(q, a?) DEQ q : queue an! : elemornone q = emq q = emq an! = none q emq q = deq(q) an! = mk(hd(q)) 246

19 Zur Verwendung von abstrakten Datentypen Grundidee: Die Verwendung des Datentyps ist immer innerhalb einer Umgebung Die Umgebung kann sehr verschieden sein: Ein Programm, das die Operationen aufruft Benutzer, der die Operationen per Knopfdruck aufruft Systemumgebung aus anderen Rechnern (Clients, die auf einen Server zugreifen etc.) 2 Grundannahmen: Operationen sind atomar ( Transaktionscharakter ) Beobachtet werden nur input/output, der Zustand ist unsichtbar 247

20 Abläufe eines Datentyps (informell) Ein Ablauf (auch: Szenario) entsteht dadurch, dass die Umgebung Operationen aufruft: Das System startet in Zustand s 0 (unsichtbar). Eine Operation OP k1 aufgerufen mit Eingabe i 1. Zustand ändert sich zu s 1 (unsichtbar) und Ausgabe ist o 1. Zwei Fälle: Vorbedingung pre(op)(i 1,s 0 ) ist verletzt, dann ist die Ausgabe o 1 beliebig, und auch alle weiteren Operationen dürfen Beliebiges tun. Wenn Vorbedingung erfüllt, dann muss OP k1 (i 1,s 0,s 1,o 1 ) gelten. Umgebung beobachtet (k 1,i 1,o 1 ) für die Operation Anschliessend ruft die Umgebung die Operation OP k2 Die Umgebung beobachtet (k 2,i 2,o 2 ) Insgesamt entsteht eine Folge von Beobachtungen: (k 1,i 1,o 1 ) (k 2,i 2,o 2 )... (k m,i m,o m ) 248

21 Abläufe eines Datentyps Gegeben sei ein Datentyp DT = (S, INIT, {OP i } i I ) Ein Ablauf eines Datentyps ist eine Folge (k 1,i 1,o 1 ) (k 2,i 2,o 2 )... (k m,i m,o m ) mit m 0, zu der es Zustände s 0 INIT, s 1,... s m S und ein p m +1 gibt (die erste schiefgehende Operation, falls p m), so daß (in i,s i 1, s i, out i ) OP ki für 1 i < p. Falls 1 p m, ist pre(op kp )(i p,s p 1 ) falsch, und alle s i, o i für i p sind beliebig. Die Semantik SEM(DT) eines Datentyps ist die Menge aller möglichen Abläufe 249

22 Verfeinerung (Refinement) 250

23 Refinement: Die generelle Idee Die Grundfrage, auf die Verfeinerung (engl. refinement) Antwort gibt, ist immer: Gegeben eine abstrakte Beschreibung eines Systems. Wie kommt man systematisch und schrittweise zu einer korrekten Implementierung? Refinement gibt es in einer grossen Zahl von Varianten: Für algebraische (zustandslose) Systeme (algebraisches Refinement, Moduln) Für parallele (event-basierte) Systeme (CSP Refinement/(Bi-)Simulation) Für zustandsbasierte Datentypen: Relational: Data Refinement Operational: ASM Refinement Für Automaten: IO-Automata Refinement 251

24 Data Refinement Grundidee: Gegeben sei ADT = (AS, AINIT, {AOP i } i I ). Der Zustand AS ist nach aussen hin unsichtbar. Er kann deshalb durch einen konkreten Zustand ersetzt werden, wenn sich die Funktionalität nach aussen hin nicht ändert. Sei also ein konkreter Datentyp CDT = (CS, CINIT, {COP i } i I ) gegeben (selbe Menge von Operationen, anderer Zustand) Der konkrete Datentyp ist eine korrekte Verfeinerung des abstrakten, wenn keine Umgebung bemerken kann, dass sie statt des abstrakten den konkreten Datentyp verwendet. Es gilt also das Substitutionsprinzip, dass alle abstrakten durch konkrete Operationen ersetzt werden können Das Verfahren kann iteriert werden schrittweiser Übergang von abstrakter Spezifikation zu konkreter Implementierung 252

25 Data Refinement Die Verfeinerung von ADT = (AS, AINIT, {AOP i } i I ) zu CDT = (CS, CINIT, {COP i } i I ) ist korrekt, wenn alle Abläufe des konkreten Datentyps auch Abläufe des abstrakten sind. Kurz: SEM(CDT) SEM(ADT) Besonderheiten: Der konkrete Datentyp kann durchaus weniger Abläufe haben Er kann weniger nichtdeterministisch sein (z. B. indeterministische Selektion aus Menge durch deterministische Selektion des ersten Listenelements ersetzt) Er kann undefinierte Operationen (Zustand vorher ausserhalb der Vorbedingung) durch definierte ersetzen 253

26 Der konkrete algebraische Datentyp Die queue wird durch einen Heap H und einen Zeiger r, der auf den Anfang einer Folge von Zellen zeigt, repräsentiert. Der konkrete Datentyp wird gleich durch ein Programm implementiert, nicht zuerst spezifiziert. Der Speicher hat als Schlüssel References (Typ Ref) mit null: Ref Der Speicher enthält als Daten (freier Datentyp): conscell =.. (..val : elem;..nxt : Ref) Die null-referenz entspricht einer leeren Queue. deq# relativ einfach enq# muss die Verkettung bis zum Ende ablaufen, dann hinten anhängen 254

27 Wie verifiziert man Data Refinement? Data Refinement verlangt Teilmenge aller Abläufe. Wie zeigen? Grundidee: Zeige, dass eine konkrete Operation eine abstrakte simuliert. (Daraus folgt Refinement per Induktion über die Länge von Abläufen) as 0 AOP k1 as 1 AOP k2 as 2... as m cs 0 ABS COP k1 cs 1 ABS COP k2 cs 2 ABS... cs m ABS Die Operationen müssen dieselben Ein-/Ausgaben haben. Vor- und nach jeder Operation muss der konkrete Zustand einen abstrakten Zustand repräsentieren. Das wird durch eine Formel ABS beschrieben. 255

28 Abstraktionsrelation Eine Abstraktionsrelation (oder auch eine Simulation, Kopplungsinvariante, Repräsentationsrelation engl. simulation, representation relation, coupling invariant) ist eine Relation ABS AS CS zwischen den beiden Zuständen. In KIV spezifizieren wir ein Prädikat abs(as 1,..., as n,cs 1,... cs m ), wobei as 1,..., as n und cs 1,... cs m die Programmvariablen des abstrakten bzw. konkreten Zustands sind. ABS(as,cs) besagt: Der Zustand cs repräsentiert den abstrakten Zustand as. Die Relation ist meist eine partielle Funktion (deshalb auch Abstraktionsfunktion): Ein konkretes Datum repräsentiert höchstens ein abstraktes) 256

29 Die Repräsentationsrelation für das Beispiel Im Speicher H steht unter r eine Kette von Zellen, deren Inhalte die Inhalte der Queue q sind abs(r,h,q) besagt Speicherinhalt unter r in H repräsentiert die Queue q. Formale Definition (rekursiv über queues): abs(r,h,emq) r = null abs(r,h, a + q) r null r H H[r].val = a abs(h[r].nxt,h,q) 257

30 Wie verifiziert man Korrektheit? Satz:(Vorwärtssimulation zur Korrektheit) Eine Verfeinerung ADT = (AS, AINIT, {AOP i } i I ) zu CDT = (CS, CINIT, {COP i } i I ) ist korrekt, wenn eine Vorwärtssimulation ABS gefunden werden kann, für die gilt: CINIT(cs) as. ABS(as,cs) AINIT(as) (: Initialisierung :) ABS(as,cs) pre(aop i )(in,as) pre(cop i )(in,cs) (: Anwendbarkeit :) ABS(as,cs) pre(aop i )(in,as) COP i (in,cs,cs,out) as. AOP i (in,as,as,out) ABS(as, cs ) (: Korrektheit :) wobei pre(aop i )(in,as) : as, out. AOP i (in,as,as,out) 258

31 Initialisierung CINIT(cs) as. ABS(as,cs) AINIT(as) besagt: Jeder konkrete Initialzustand cs repräsentiert einen abstrakten Initialzustand as 259

32 Anwendbarkeit ABS(as,cs) pre(aop i )(in,as) pre(cop i )(in,cs) besagt: Wenn der konkrete Zustand cs den abstrakten Zustand as repräsentiert, und die Operation AOP i mit einer Eingabe in anwendbar ist, d.h. die Vorbedingung nicht verletzt ist, dann ist auch die konkrete Operation COP i anwendbar. Oder andersrum: Die Vorbedingung der konkreten Operation darf nur dann verletzt werden, wenn auch die Vorbedingung der abstrakten verletzt ist. ABS in, as in, cs AOP i COP i 260

33 Korrektheit ABS(as,cs) pre(aop i )(in,as) COP i (in,cs,cs,out) as. AOP i (in,as,as,out) ABS(as, cs ) besagt: Wenn der konktete Zustand cs den abstrakten Zustand as repräsentiert, und die Operationen mit einer Eingabe in anwendbar sind, so liefern sie dieselbe Ausgabe und der konkrete Ergebniszustand cs repräsentiert wieder den abstrakten as ABS in, as AOP i as, out ABS in, cs COP i cs, out 261

34 Spezialfall: Programm als konkreter Datentyp Der konkrete Datentyp kann statt als Kontrakte auch gleich als implementierte Prozeduren gegeben sein. Der Kontrakt COP für eine Prozedur COP# kann als wp-formel wiedergegeben werden: COP(i,cs,cs,o ) = COP#(i;cs,o) true COP#(i;cs,o) (cs = cs o = o ) Satz: Sind direkt Prozeduren gegeben, so ergibt sich aus Anwendbarkeit und Korrektheit eine einzige Beweisverpflichtung: ABS(cs,as) pre(aop)(i,as) COP#(i;cs,o) ( as. AOP(i,as,as,o) ABS(cs,as )) besagt: Wenn ABS gilt, und die abstrakte Operation anwendbar ist, muss die konkrete immer terminieren und einen Ergebniszustand liefern, der ein mögliches Ergebnis der abstrakten Operation repräsentiert. 262

35 Korrektheitsbedingungen für die Queue Satz:(Korrektheit der Queue-Implementierung) Die Verfeinerung von Queues zur Implementierung ist korrekt, wenn folgende Sequenzen bewiesen werden können: Initialisierung: r = null q. abs(r,h,q) q = emq Korrektheit für emq#: abs(r,h,q) emq#(;r,h) abs(r,h,emq) Korrektheit für enq#: abs(r,h,q) enq#(a;r,h) abs(r,h,enq(q,a)) Korrektheit für deq# (Fall 1, nichtleeres q): abs(r,h,q), q emq deq#(;r,h, an) (abs(r,h,deq(q)) an = mk(hd(q))) Korrektheit für deq# (Fall 2, leeres q): abs(r,h,emq) deq#(;r,h, an) (abs(r,h,emq) an = none) 263

36 Aufgabe fürs Praktikum Erster Termin: Die Prozeduren emq#, deq# und enq# programmieren: Bitte vorbereiten! Korrektheitsbedingungen nachweisen Zweiter Termin: Alternative Repräsentation mit Pointer r auf den Anfang + Pointer r0 auf die letzte Zelle ABS(r,r0,H,q) überlegen: Bitte vorbereiten! Die Prozeduren emq#, deq# und enq# programmieren: Bitte vorbereiten! Korrektheitsbedingungen nachweisen 264

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

EINFACHES HAUSHALT- KASSABUCH

EINFACHES HAUSHALT- KASSABUCH EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)

Mehr

Endlicher Automat (EA)

Endlicher Automat (EA) Endlicher Automat (EA) siehe auch Formale Grundlagen 3 1 Motivation: Automaten für die Modellierung, Spezifikation und Verifikation verwenden! Definition Ein Endlicher Automat A = (S,I,Σ,T,F) besteht aus

Mehr

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Informatik IC2. Balazs Simon 2005.03.26.

Informatik IC2. Balazs Simon 2005.03.26. Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Logische Folgerung. Definition 2.11

Logische Folgerung. Definition 2.11 Logische Folgerung Definition 2.11 Sei 2A eine aussagenlogische Formel und F eine endliche Menge aussagenlogischer Formeln aus A. heißt logische Folgerung von F genau dann, wenn I ( ) =1für jedes Modell

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

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

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Grundlagen des Maschinellen Lernens Kap. 4: Lernmodelle Teil II

Grundlagen des Maschinellen Lernens Kap. 4: Lernmodelle Teil II 1. Motivation 2. Lernmodelle Teil I 2.1. Lernen im Limes 2.2. Fallstudie: Lernen von Patternsprachen 3. Lernverfahren in anderen Domänen 3.1. Automatensynthese 3.2. Entscheidungsbäume 3.3. Entscheidungsbäume

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

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

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Die Spezifikationssprachen Z und VDM. Michael Hildebrandt

Die Spezifikationssprachen Z und VDM. Michael Hildebrandt Die Spezifikationssprachen Z und VDM Michael Hildebrandt 1. Formale Spezifikationen Was sind formale Spezifikationen? abstrakte Beschreibungen bzgl. des Verhaltens eines (zu entwickelnden) Systems geben

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Wir basteln einen Jahreskalender mit MS Excel.

Wir basteln einen Jahreskalender mit MS Excel. Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger

Mehr

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne 6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungsblatt 3 - Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online-Videothek

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun Java Projekt Schiffe Versenken mit GUI 1. Über den Autor: Name: Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 8

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 8 Prof. Dr. Wilhelm Schäfer Paderborn, 8. Dezember 2014 Christian Brenner Tristan Wittgen Besprechung der Aufgaben: 15. - 18. Dezember 2014 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 9: Speicher Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/20 Überblick Speicher Bit und Byte Speicher als Tabellen

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode The B Method B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode P. Schmitt: Formal Specification and Verification of Software p.1 The B Method

Mehr

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen 5.2. entenrechnung Definition: ente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren entenperiode = Zeitabstand zwischen zwei entenzahlungen Finanzmathematisch sind zwei

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

3. LINEARE GLEICHUNGSSYSTEME

3. LINEARE GLEICHUNGSSYSTEME 176 3. LINEARE GLEICHUNGSSYSTEME 90 Vitamin-C-Gehalt verschiedener Säfte 18,0 mg 35,0 mg 12,5 mg 1. a) 100 ml + 50 ml + 50 ml = 41,75 mg 100 ml 100 ml 100 ml b) : Menge an Kirschsaft in ml y: Menge an

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Übungen für Woche 10

Übungen für Woche 10 Übungen für Woche 10 Martin Rubey 12. Januar 2011 Die folgenden Übungen sollen den Umgang mit Backtracking und kombinatorischen Spezies näherbringen. Genaue Hinweise gibt es erst auf Seite 5. Zur Erinnerung:

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf Nachdem die Projekt-Vision und die Stakeholder bekannt sind,

Mehr

Softwaretechnologie -Wintersemester 2011/2012 - Dr. Günter Kniesel

Softwaretechnologie -Wintersemester 2011/2012 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie -Wintersemester 2011/2012 - Dr. Günter Kniesel Übungsblatt 3 - Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online-Videothek

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen 1 3.2. entenrechnung Definition: ente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren entenperiode = Zeitabstand zwischen zwei entenzahlungen Finanzmathematisch sind

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 3 Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Softwaretechnik (WS 11/12)

Softwaretechnik (WS 11/12) Universität Augsburg, LSt. Softwaretechnik, K. Stenzel, H. Seebach, G. Anders Softwaretechnik (WS 11/12) Lösungsvorschlag 5 Aufgabe 1 (System Behavior: System Sequence Diagrams) (10/5 Punkte) a) Was sind

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Woche 1: Was ist NLP? Die Geschichte des NLP.

Woche 1: Was ist NLP? Die Geschichte des NLP. Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin. Humboldt-Universität zu Berlin Juristische Fakultät Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.de Stand: 1. Juni 2010

Mehr

Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5

Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5 Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5 In diesem Tutorial will ich Ihnen zeigen, wie man mit LibreOffice Calc 3.5 eine einfache Entlohnungsberechnung erstellt, wobei eine automatische

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung Variante 1 Swisscom-Router direkt ans Netzwerk angeschlossen fixe IP-Adressen (kein DHCP) 1. Aufrufen des «Netz- und Freigabecenters». 2. Doppelklick auf «LAN-Verbindung» 3. Klick auf «Eigenschaften» 4.

Mehr

0, v 6 = 2 2. 1, v 4 = 1. 2. span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

0, v 6 = 2 2. 1, v 4 = 1. 2. span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 ) Aufgabe 65. Ganz schön span(n)end. Gegeben sei folgende Menge M von 6 Vektoren v, v,..., v 6 R 4 aus Aufgabe P 6: M = v =, v =, v =, v 4 =, v 5 =, v 6 = Welche der folgenden Aussagen sind wahr? span(v,

Mehr

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters Erste Schritte Wir heißen Sie herzlich willkommen im Newslettersystem der Euroweb Internet GmbH. Hier erfahren Sie die grundlegendsten Informationen, die Sie zur Erstellung und zum Versand eines Newsletters

Mehr

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Technische Universität Kaiserslautern Prof Dr Sven O Krumke Dr Sabine Büttner MSc Marco Natale Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Aufgabe 1 (Konvertieren

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

1. Teilklausur. Modul "OOPM Vorlesung/Übung" 16.12.2008. Gruppe A

1. Teilklausur. Modul OOPM Vorlesung/Übung 16.12.2008. Gruppe A Objektorientierte Programmierung und Modellierung WS 2008/2009 Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur Modul "OOPM Vorlesung/Übung" 16.12.2008 Gruppe A Name Vorname

Mehr

5.4 Bilder im Textfluss verankern

5.4 Bilder im Textfluss verankern 5.4 Bilder im Textfluss verankern Nachdem wir unsere Bilder und Objekte für den epub-export vorbereitet haben, müssen diese noch in den Textfluss und in die richtige Lesereihenfolge übernommen werden.

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr