Übungen zur Vorlesung Verteilte Algorithmen II, Heiko Krumm, Universität Dortmund, FB Informatik

Größe: px
Ab Seite anzeigen:

Download "Übungen zur Vorlesung Verteilte Algorithmen II, Heiko Krumm, Universität Dortmund, FB Informatik"

Transkript

1 Übung 4: Gegenseitiger Ausschluss (Ricart-Agrawala 1981) Konstanten: n >1 Anzahl der Prozesse; r Adresse des Prozesses, der initial das Token besitzt. Prozessparameter i sei die Adresse der aktuellen Prozessinstanz, i [1..n]. process MutexControl ( n, r, i : card ) ; var clock : card ; // lokaler Zähler token, // lokale Token-Kopie: erfüllte Anforderungen requ : // hier bekannte Anforderungen array [1..n] of card ; tkda : boolean ; // Token hier? control : (idle, wait, in) ; // Kontrollzustand Init ::= clock=0 token=<0,..,0> requ=<0,..,0> control=idle tkda=(i=r) ; actions Outside ::= // Zu koppeln mit normalen Problemaktionen control=idle all variables unchanged ; Inside ::= // Zu koppeln mit Problemaktionen kritischer Abschnitte control=in all variables unchanged ; PRequest1 (at, R, S) ::= // Das Token ist da und wird sofort belegt control=idle tkda clock =clock token =token requ =requ tkda =tkda control =in at=i R={} S={} ; PRequest2 (at, R, S) ::= // Das Token ist nicht da und wird per Broadcast angefordert control=idle tkda clock =clock+1 token =token requ =requ tkda =tkda control =wait at=i R={} S={<j,<REQ, clock, i>>: j 1..n j i} ; PGrant (at, R, S; T: array [1..n] of card; j: 1..n) ::= // Die anfordernde Station empfängt das Token von Station j control=wait clock =clock token =T requ =requ tkda =true control =in at=i R={<j,<ACC,T>>} S={} ; V1 (at, R, S) ::= // Verlassen des kritischen Abschnitts: keine Anforderungen vorhanden control=in NEXT(requ, token, i)=0 control =idle clock =clock requ =requ tkda =true token =token außer token[i] =clock at=i R={} S={} ; V2 (at, R, S; j: 1..n) ::= // Verlassen des kritischen Abschnitts: Tokenweitergabe control=in NEXT(requ, token, i)=j control =idle clock =clock requ =requ tkda =false token =token außer token[i] =clock at=i R={} S={<j, <ACC, token >>} ;

2 - 2 - Ueb4.doc mit NEXT (requ, token, i) berechnet per: for j:= i+1,..,n,1,..i do if requ[j] > token[j] then NEXT:=j ; BREAK else NEXT:= 0 ; RecRequUpd (at, R, S; k : card ; j : 1..n) ::= // Request wird empfangen und kann nicht bewilligt werden. // Update des Request-Vektors ( tkda control=in) tkda =tkda token =token clock =clock control =control requ = requ außer requ[j] =max{requ[j], k} at=i R={<j, <REQ, k, j>>} S={} ; RecRequOld (at, R, S; k : card ; j : 1..n) ::= // Request wird empfangen und kann bewilligt werden. // Update des Request-Vektors. Request ist aber veraltet. tkda control=idle tkda =tkda token =token clock =clock control =control requ = requ außer requ[j] =max{requ[j], k} NEXT(requ, token, i)=0 at=i R={<j, <REQ, k, j>>} S={} ; RecRequFwd (at, R, S; k : card ; j, m : 1..n) ::= // Request wird empfangen und kann bewilligt werden. // Update des Request-Vektors. Forward des Tokens. tkda control=idle tkda token =token clock =clock control =control requ = requ außer requ[j] =max{requ[j], k} NEXT(requ, token, i)=m m 0 at=i R={<j, <REQ, k, j>>} S={<m,<ACC, token>>} ; WF: PGrant, V2; SF: RecRequUpd, RecRequFwd, RecReqOld; end ;

3 - 3 - Ueb4.doc Gesamtsystem als Basis der Verifikation Ein Gesamtsystem besteht aus n Prozessen dieser Art sowie einem Nachrichtentransportsystem mit der Vielfachmengenvariablen nts als Bag of Nachricht <quelladr, zieladr, inhalt>. Prozesse und Transportsystem sind so gekoppelt, dass jeweils nur 1 Prozess u.u. zusammen mit dem Transportsystem einen Schritt ausführt. Ein Transportsystemschritt ist mit den Parametern at, R, S verbunden: Prozess mit Adresse at empfängt die Nachrichten der Menge R und sendet die Nachrichten der Menge S. Interessierende Safety-Eigenschaften 1. Gegenseitiger Ausschluss (Höchstens 1 Prozess in krit. Abschnitt) i, j [1..n]: control i =in i=j 2. Stopzustand-Freiheit (Mindestes 1 Nachricht ist unterwegs oder kann im nächsten Schritt gesendet werden) nts {} i [1..n]: control i =idle i [1..n]: control i =in NEXT(requ i, token i, i) 0 Beweis des gegenseitigen Ausschlusses Die induktive Invariante IGA zum gegenseitigen Ausschluss ist: Höchstens 1 Prozess ist im kritischen Abschnitt (Das eigentliche Beweisziel) i, j: control i =in i=j! Verschärfungen Token befindet sich bei höchstens 1 Prozess. i, j: tkda i tkda j i=j Wenn eine Tokennachricht unterwegs ist, hat kein Prozess ein Token. Wenn ein Prozess ein Token hat, ist keine Tokennachricht unterwegs. i, tk: <i, <ACC, tk>> nts j: tkda j Es ist höchstens 1 Tokennachricht in höchstens 1 Exemplar unterwegs. q1, z1, tk1, q2, z2, tk2: <q1, z1, <ACC, tk1>> nts <q2, z2, <ACC, tk2>> nts <q1, z1, <ACC, tk1>>=<q2, z2, <ACC, tk2>> #(nts, <q1, z1, <ACC, tk1>>) = 1 Wenn ein Prozess im kritischen Abschnitt ist, hat er ein Token. i: control i =in tkda i Die Bedingung IGA ist in Initialzuständen erfüllt (Init IGA). Jede Aktion, in deren Momentanzustand die Bedingung IGA erfüllt ist, führt in einen Folgezustand, in welchem die Bedingung IGA auch erfüllt ist (Je Aktion α gilt: IGA α IGA ).

4 - 4 - Ueb4.doc Beweis der Stopzustandsfreiheit Die induktive Invariante ISF zur Stopzustandsfreiheit ist: Das Transportsystem ist nicht leer, oder es gibt eine idle -Station, oder es gibt eine Station, welche bei Verlassen des kritischen Abschnitts das Token weitergeben wird (Das eigentliche Beweisziel) ( nts {} i [1..n]: control i =idle i [1..n]: control i =in NEXT(requ i, token i, i) 0 )! Verschärfungen Wenn eine Station j wartet, ist an jede andere Station j eine Req-Nachricht mit aus Sicht von i unerfüllter Laufnummer unterwegs oder die andere Station i hat ihren Request- Vektor in Spalte j schon so aktualisiert, dass ein Request von j aus Sicht von i noch unerfüllt ist. i, j: control j =wait k: <j, i, <REQ, k, j>> nts k > token i [j] requ i [j]>token i [j] Bei allen Stationen i sind für alle Spalten j Laufnummern vermerkt, welche nicht größer sind als der momentane Zählerwert der Station j. i, j: token i [j] clock j Wenn eine Tokennachricht unterwegs ist, gibt es eine Station k, deren Token-Vektor dem Token-Vektor der Tokennachricht entspricht. m nts: m=<i, j, <ACC, tk>> k: token k =tk Das Token ist bei einer Station, oder es ist eine Tokennachricht unterwegs. i: tkda i m nts: m=<i, j, <ACC, tk>> Wenn ein Prozess wartet, hat er kein Token. i: control i =wait tkda i

5 - 5 - Ueb4.doc Interessierende Liveness-Eigenschaft Wenn ein Prozess p einen unerfüllten Request mit Laufnummer r hat, soll dieser nach endlicher Zeit erfüllt werden p [1..n], r>0: Beweis der Liveness-Eigenschaft Hilfsbegriffe control p =wait clock p =r ~> control p =in TK sei das gegenwärtige Token: TK = if (<*,*,<ACC, token>> nts) then token else token k für das k mit tkda k DIS sei die gegenwärtige Distanz des Tokens zur Station p (2 Schritte je Station): DIS = if ( <*, k, <ACC,token>> nts) then 2*dis(k, p)+1 else 2*dis(k,p) für das k mit tkda k dis(i,j) = if (i j) then j-i else n-(i-j)! Abstand im Modulo-Ring (1,.., n) Ablaufphasen Wir trennen das Geschehen in mehrere Phasen: I Prozess p hat noch keinen Request r gegeben: clock p <r II Prozess p hat den Request r gegeben, er ist noch nicht erfüllt: clock p r TK[p] < r Hier gibt es zwei Teilphasen: II.1 Die gebroadcasteten <REQ,r,p>-Nachrichten sind noch nicht alle empfangen: #(nts, <p,*,<req,r,p>>) > 0 II.2 Das Token wird immer an eine Station weitergegeben, welche näher an p liegt: DIS>0 Es ist zu beachten, dass die Phase II.1 vorzeitig abgebrochen werden kann, weil das Token an p weitergegeben wurde, auch ohne dass alle <REQ,r,p>-Nachrichten schon empfangen wurden. III Der Request r von Prozess p ist erfüllt: TK[p] r Fairness-Annahmen Die Fairness-Annahmen sollen gewährleisten, dass das System immer wieder nützliche Schritte ausführt. Dazu müssen die Aktionen PGrant und V2 weak fair implementiert werden. Die Aktionen RecRequUpd, RecRequFwd und RecReqOld sollen für alle REQ-Nachrichten strong fair implementiert werden, d.h. keine REQ-Nachricht im NTS darf immer wieder beim Empfang übergangen werden.

6 - 6 - Ueb4.doc Beweis in 2 Schritten 1. Phase II.1 wird durch Erfolg vorzeitig abgebrochen oder terminiert control p =wait clock p =r ~> control p =in ( i, i p: requ i [p] r clock p =r control p =wait) 2. Phase II.2 terminiert i, i p: requ i [p] r clock p =r control p =wait ~> control p =in Aus der Kombination beider Schritte folgt die nachzuweisende Liveness-Eigenschaft: Fallunterscheidung zum Ausgang der ersten Phase a) control p =in In diesem Fall ist das Ziel schon erreicht. b) i, i p: requ i [p] r clock p =r control p =wait ~> control p =in In diesem Fall wird die 2. Phase transitiv angehängt Beweis Phase II.1 Beweisziel control p =wait clock p =r ~> control p =in ( i, i p: requ i [p] r clock p =r control p =wait) Lattice (Anzahl der <REQ,r,p>-Nachrichten im NTS) L = if clock p r then n elsif control p =idle then n elsif control p =in then 0 else # (nts, <p,*,<req,r,p>>) L ist Ganzzahl 0, Vergleich < Die Bildmenge von L ist ein wohlfundierter Verband, das Minimum 0 wird nach endlich vielen Schritten erreicht. Zu beweisen ist nun: 1. Wenn das Minimum vorliegt, ist das Ziel erreicht: L=0 control p =in ( i, i p: requ i [p] r clock p =r control p =wait) Aus der Definition von L folgt: L=0 control p =in ( j: <p,j,<req,r,p>> nts clock p =r control p =wait) Mit folgender Invariante lässt sich das Ziel ableiten: clock p =r r>0 j, j p: <p,j,<req,r,p>> nts requ j [p] r Die Invariante ist induktiv. 2. Der Lattice wird in Phase II.1 lebendig durchlaufen: clock p =r L=w w>0 ~> L<w clock p =r Aus clock p =r L=w w>0 folgt, dass noch mindestens eine <REQ,r,p>-Nachricht im NTS ist. Dass dann eine <REQ,r,p>-Nachricht empfangen werden muss, folgt aus einem Strong-Fair-Schritt der RecReq-Aktionen. Es kann aber zuvor auch schon das Token vorzeitig bei p ankommen, dann gilt aber L=0, weil p in den Zustand in übergeht, L wurde also ebenfalls kleiner.

7 - 7 - Ueb4.doc Nach der Definition von L könnten allerdings noch clock p oder control p störend so verändert werden, dass L den Wert n annimmt, also nicht kleiner wird. Dies kann man aber per Safety-Beweis ausschließen: Wenn L>0 gilt, kann clock p überhaupt nicht verändert werden, und control p höchstens auf in gesetzt werden, weil dann keine Aktion enabled ist, welche etwas anderes bzgl. clock p und control p bewirken könnte. Beweis Phase II.2 i, i p: requ i [p] r clock p =r control p =wait ~> control p =in Lattice (Abstand des Tokens zu p): L = DIS, Ganzzahl 0, <, L-Bildmenge ist wohlfundierter Lattice Wir setzen uns ein leicht verändertes Beweisziel: i, i p: requ i [p] r clock p =r TK[p]<r ~> control p =in clock p =r Es ist auf der rechten Seite verschärft. Die linke Seite wird von der linken Seite des eigentlichen Ziels impliziert, wenn man die folgende Invariante dazu nimmt: clock p =r control p =wait TK[p]<r Wir betrachten nur die Ablaufphase, in welcher der Request mit Laufnummer r>0 von Station p anstehend, aber noch nicht erfüllt ist, sowie alle Stationen den Request kennen, also folgende Bedingung gilt: i, i p: requ i [p] r clock p =r TK[p]<r Ziel bei Lattice-Minimum Wir beweisen, dass wenn in dieser Ablaufphase der Lattice das Minimum erreicht hat, dass dann das Ziel erreicht ist: i, i p: requ i [p] r clock p =r TK[p]<r L=0 control p =in L=0 impliziert tkda p, wir können also stattdessen Folgendes beweisen: i, i p: requ i [p] r clock p =r TK[p]<r tkda p control p =in Wenn ein Zustand vorliegt, in welchem bei der Request r bei Station p anhängig ist und p das Token besitzt, dann befindet sich Station p im kritischen Abschnitt. Hierfür sollte der Invariantenbeweis (u.u. nach Verschärfung der Invarianten) gelingen. Lattice wird lebendig kleiner Wir beweisen, dass in dieser Ablaufphase einem Zustand, dessen Latticewert größer als 0 ist, nach endlich vielen Schritten ein Zustand mit kleinerem Wert folgt, oder control p =in gilt: i, i p: requ i [p] r clock p =r TK[p]<r L=w w>0 ~> ( i, i p: requ i [p] r clock p =r TK[p]<r L<w) control p =in Wir unterscheiden die zwei Fälle: 1. Das Token ist im NTS an eine Station j unterwegs. Station j wird das Token mit einem weak fairen PGrant-Schritt empfangen und der L- Wert wird deshalb um 1 abnehmen. 2. Das Token ist in einer Station j p Das Token mit einem weak fairen V2-Schritt weitergegeben, und zwar an eine Station,

8 - 8 - Ueb4.doc welche in der Ringreihenfolge (Funktion NEXT) nach j kommt, aber p nicht überspringt (weil TK[p]<r gilt). Näher zu untersuchen ist im ersten Fall die Frage, ob Zustände erreichbar sind, in welchen das Token im NTS an eine Station j unterwegs ist, diese aber nicht wartet. Dass solche Zustände ausgeschlossen sind, ist per folgender Invariante zu beweisen: j, j p: <*,j,<acc,token>> nts control j =wait Näher zu untersuchen ist im zweiten Fall die Frage, ob Zustände erreichbar sind, in welchen eine Station j das Token hat, ein Request r von p anhängig und bei j bekannt ist, aber j nicht im kritischen Abschnitt ist. Dass solche Zustände ausgeschlossen sind, ist per folgender Invariante zu beweisen: j, j p: requ j [p] r clock p =r TK[p]<r tkda j control j =in

9 Verteilte Verklemmungserkennung

9 Verteilte Verklemmungserkennung 9 Verteilte Verklemmungserkennung 9.1 Grundlagen Für die Existenz einer Verklemmung notwendige Bedingungen Exklusive Betriebsmittelbelegung Betriebsmittel können nachgefordert werden Betriebsmittel können

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesungen 5 und 6 Programm

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

Mehr

Einführung: Zustandsdiagramme Stand:

Einführung: Zustandsdiagramme Stand: Einführung: Zustandsdiagramme Stand: 01.06.2006 Josef Hübl (Triple-S GmbH) 1. Grundlagen Zustandsdiagramme Zustände, Ereignisse, Bedingungen, Aktionen 2. Verkürzte Darstellungen Pseudozustände 3. Hierarchische

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Robert Mattmüller Betreuer: Prof. Dr. Stefan Leue Wintersemester 2003/2004 1. Dezember 2003 1 Software Model Checking Predicate

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

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

Kontrollstrukturen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-14-15/infoeinf WS14/15 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Modellierung und Analyse eingebetteter und verteilter Systeme

Modellierung und Analyse eingebetteter und verteilter Systeme Modellierung und Analyse eingebetteter und verteilter Systeme Thread Funktionalität Teil 2 Einleitung Zustandstransitionssysteme Petrinetz und Partialordnungsmodelle Prozessalgebra: CCS Temporale Logik:

Mehr

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

1.) Client-Server-Kommunikation

1.) Client-Server-Kommunikation 1.)... 1 2.) Der Server (Server I)... 1 3.) Der Client... 3 4.) Erweiterung mehrere Clients an einem Server (Server II)... 5 5.) Erweiterung Clientübersicht und Nachricht vom Server an nur einen Client

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr

Kurs 1575, Musterlösung zur Winter Klausur 2002/03

Kurs 1575, Musterlösung zur Winter Klausur 2002/03 1 0 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2002/03 1 Kurs 1575, Musterlösung zur Winter Klausur 2002/03 Aufgabe 1: Warteschlange Wer kennt das Problem nicht? Sie wollen noch schnell im Supermarkt

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

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

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Grundlagen der Programmierung (Vorlesung 14)

Grundlagen der Programmierung (Vorlesung 14) Grundlagen der Programmierung (Vorlesung 14) Ralf Möller, FH-Wedel Vorige Vorlesung Verifikation von Anweisungen und Anweisungsfolgen Schleifen Inhalt dieser Vorlesung Funktionen und Prozeduren Lernziele

Mehr

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Kapitel V Deadlocks (Verklemmungen) 1 Deadlocks System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Prozesse benötigen Genehmigung vor der Benutzung von Ressourcen.

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Vorschriften und Probleme... Das Problem der Wüstenposten. - Reisende dürfen die Wüste nur "kontrolliert" (bei einem "wachen" Posten) betreten

Vorschriften und Probleme... Das Problem der Wüstenposten. - Reisende dürfen die Wüste nur kontrolliert (bei einem wachen Posten) betreten Das Problem der Wüstenposten Vorschriften und Probleme... - Reisende dürfen die Wüste nur "kontrolliert" (bei einem "wachen" Posten) betreten - Nur ein wacher Posten lässt Personen in die Wüste einreisen

Mehr

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

Mehr

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen, Strukturierte Programmierung , Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

8 Extremwerte reellwertiger Funktionen

8 Extremwerte reellwertiger Funktionen 8 Extremwerte reellwertiger Funktionen 34 8 Extremwerte reellwertiger Funktionen Wir wollen nun auch Extremwerte reellwertiger Funktionen untersuchen. Definition Es sei U R n eine offene Menge, f : U R

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb AN025 Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der Autor: HB AN025.DOC (6 Seiten) 1. Definition Im folgenden wie auch in allen anderen Sorcus Schriften werden folgende Kurzbezeichnungen verwendet:

Mehr

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

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am 1 Aufgabe 1 a) Da Effizienzbetrachtungen bei der Lösung der Aufgabe keine Rolle spielen, wählen wir einen einfachen, aber ineffizienten Algorithmus mit zwei ineinander verschachtelten for-schleifen. Dadiefor-Schleifen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Container-Klassen in Delphi

Container-Klassen in Delphi Verwalten von Objekten mit Hilfe von Container-Klassen am Beispiel eines Memory Spieles Container-Klassen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1

Mehr

Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata]

Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata] Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata] Formalismus zur Behandlung von Dense Time unterstützt durch Verifikationstools, z.b. UPPAAL Transitionssysteme (Automaten) mit Zeitbeschriftungen

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Präfix-Summe Das Schweizer Offiziersmesser der Parallelen Algorithmen Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Parallele Rechenmodelle Beispiel: Summieren von Zahlen Verlauf des Rechenprozesses:

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Enterprise Feedback Suite

Enterprise Feedback Suite Enterprise Feedback Suite LUA-Filter Version: Datum: 1.2 10.04.2014 2014 QuestBack GmbH Die in dieser Publikation enthaltene Information ist Eigentum der QuestBack GmbH. Weitergabe und Vervielfältigung

Mehr

Logo-Aufgaben mit Verbindung zur Mathematik

Logo-Aufgaben mit Verbindung zur Mathematik Logo-Aufgaben mit Verbindung zur Mathematik Student: Dozent: Prof. Juraj Hromkovic Datum: 13.06.007 Logo-Kenntnisse Für die Lösung der Aufgaben werden folge Logo-Befehle benötigt: Arithmetik: +, -, *,

Mehr

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

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

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 7: Einführung Aussagenlogik schulz@eprover.org Logisches Schließen 2 gold +1000, 1 per step, Beispiel: Jage den Wumpus Performance measure death 1000 10

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Der λ-kalkül. Frank Huch. Sommersemester 2015

Der λ-kalkül. Frank Huch. Sommersemester 2015 Der λ-kalkül Frank Huch Sommersemester 2015 In diesem Skript werden die Grundlagen der Funktionalen Programmierung, insbesondere der λ-kalkül eingeführt. Der hier präsentierte Stoff stellt einen teil der

Mehr

Semestralklausur zu Modellierung verteilter Systeme

Semestralklausur zu Modellierung verteilter Systeme Name: Vorname: Matr.Nr: Technische Universität München WS 2010/2011 Institut für Informatik Prof. Manfred Broy 09.02.2011 Semestralklausur zu Modellierung verteilter Systeme Allgemeine Hinweise: Schreiben

Mehr

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende. PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include

Mehr

Webbasierte Programmierung

Webbasierte Programmierung Webbasierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der HTML5-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 6: JavaScript Kontrollstrukturen Verzweigungen Einseitig, zweiseitig,

Mehr

Charakteristikenmethode im Beispiel

Charakteristikenmethode im Beispiel Charakteristikenmethode im Wir betrachten die PDE in drei Variablen xu x + yu y + (x + y )u z = 0. Das charakteristische System lautet dann ẋ = x ẏ = y ż = x + y und besitzt die allgemeine Lösung x(t)

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

RRC Connection Management Procedures (TS 25.331, S. 57 ff)

RRC Connection Management Procedures (TS 25.331, S. 57 ff) RRC Connection Management Procedures (TS 25.331, S. 57 ff) 1. Broadcast of System Informations 2. Paging 2.1 Paging Type 1 Diese Paging-Prozedur wird verwendet um eine oder mehrere s zu erreichen. Sie

Mehr

Die Core-Tags. Die Core-Tags werden über den Tag Lib Desktiptor c.tld beschrieben und bekommen den Namensraum c zugewiesen.

Die Core-Tags. Die Core-Tags werden über den Tag Lib Desktiptor c.tld beschrieben und bekommen den Namensraum c zugewiesen. Die Core-Tags Core-Tags einbinden Die Core-Tags werden über den Tag Lib Desktiptor c.tld beschrieben und bekommen den Namensraum c zugewiesen. Es gibt kaum einen Grund, diesen Namensraum zu ändern!

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Wir übertragen Daten mit Licht

Wir übertragen Daten mit Licht Wir übertragen Daten mit Licht Durch das Internet werden täglich Unmengen von Daten von einem Ort an den anderen transportiert. Häufig geschieht dies über Glasfasern (Abb. 1). An dem einen Ende werden

Mehr

Ideale und Reale Gase. Was ist ein ideales Gas? einatomige Moleküle mit keinerlei gegenseitiger WW keinem Eigenvolumen (punktförmig)

Ideale und Reale Gase. Was ist ein ideales Gas? einatomige Moleküle mit keinerlei gegenseitiger WW keinem Eigenvolumen (punktförmig) Ideale und Reale Gase Was ist ein ideales Gas? einatomige Moleküle mit keinerlei gegenseitiger WW keinem Eigenvolumen (punktförmig) Wann sind reale Gase ideal? Reale Gase verhalten sich wie ideale Gase

Mehr

Kurs 1612 Konzepte imperativer Programmierung Kurs 1613 Einführung in die imperative Programmierung

Kurs 1612 Konzepte imperativer Programmierung Kurs 1613 Einführung in die imperative Programmierung Aufgaben Aufgabe 1 Schreiben Sie eine PASCAL-Prozedur transponierematrix, die als Parameter eine quadratische Matrix von integer-werten erhält und diese Matrix transponiert, also die Zeilen und Spalten

Mehr

Betragsgleichungen und die Methode der Fallunterscheidungen

Betragsgleichungen und die Methode der Fallunterscheidungen mathe online Skripten http://www.mathe-online.at/skripten/ Betragsgleichungen und die Methode der Fallunterscheidungen Franz Embacher Fakultät für Mathematik der Universität Wien E-mail: franz.embacher@univie.ac.at

Mehr

DataTables LDAP Service usage Guide

DataTables LDAP Service usage Guide DataTables LDAP Service usage Guide DTLDAP Usage Guide thomasktn@me.com / www.ktn.ch Benutzung des DTLDAP Service DataTables Der Service stellt einen JSON Feed für DataTables (http://www.datatables.net)

Mehr

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme Eines der am häufigsten auftretenden Standardprobleme der angewandten Mathematik ist das Lösen linearer Gleichungssysteme, etwa zur Netzwerkberechnung in der Elektrotechnik oder

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

P r o g r a m m a b l a u f s t e u e r u n g

P r o g r a m m a b l a u f s t e u e r u n g Jede Programmiersprache braucht Konstrukte zur Steuerung des Programmablaufs. Grundsätzlich unterscheiden wir Verzweigungen und Schleifen. Schleifen dienen dazu, bestimmte Anweisungen wiederholt auszuführen,

Mehr

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle. Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik Seminar Entscheidungsverfahren für logische Theorien Tobias Hebel Koblenz, am 18.02.2005 Inhaltsverzeichnis 1 Einleitung... 3 2 Grundlagen...

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Übungen zur Ingenieur-Mathematik III WS 2009/10 Blatt 10 21.12.2009

Übungen zur Ingenieur-Mathematik III WS 2009/10 Blatt 10 21.12.2009 Übungen zur Ingenieur-Mathematik III WS 2009/10 Blatt 10 21.12.2009 Aufgabe 35: Thema: Singulärwertzerlegung und assoziierte Unterräume Sei A eine m n Matrix mit Rang r und A = UDV T ihre Singulärwertzerlegung.

Mehr

Mail direkt aus Oracle versenden - komfortabel und mit Umlauten

Mail direkt aus Oracle versenden - komfortabel und mit Umlauten Kunde: DOAGNews Ort, Datum: Artikel im Heft Q1 / 2005 Thema / Themen: Artikel von merlin.zwo Projekt: Mail direkt aus Oracle versenden Autor: Jochen Kutscheruk Oracle & Technologien Systementwicklung Individuelle

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Verhaltensanalysegraph für Petrinetze

Verhaltensanalysegraph für Petrinetze Bachelorarbeit Carl von Ossietzky Universität Oldenburg 9. Januar 215 en 1 Gliederung en en 2 kurze gehen zurück auf Carl Adam Petri (1962). s 1 t 1 s 2 t 2 t 3 2 s 3 Abbildung : Beispiel Petrinetz...

Mehr

Künstliches binäres Neuron

Künstliches binäres Neuron Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de

Mehr

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. OPTIMISTIC CONCURRENCY CONTROL Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt. Abbruch einer Transaktion

Mehr

Steuern des GSR-Interface mit QBasic

Steuern des GSR-Interface mit QBasic Steuern des GSR-Interface mit QBasic Erstellt von Jochen Sendler, Geschwister-Scholl-Realschule Mannheim Inhaltsverzeichnis 1. Die Programmiersprache QBasic 3 2. Starten von QBasic 3 3. Ansteuern einzelner

Mehr

Übersetzung von Struktogrammen nach VBA

Übersetzung von Struktogrammen nach VBA Übersetzung von Struktogrammen nach VBA Einleitung Bezüglich der folgenden olien ist für die anstehende Klausur besonders wichtig: Die formelle Übersetzung der Struktogramme in VBA-Code (Spalte "Struktogramme"

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Schleifenprogrammierung in C/C++, Fortran und Pascal

Schleifenprogrammierung in C/C++, Fortran und Pascal Schleifenprogrammierung in C/C++, Fortran und Pascal Stefan Ackermann Mathematisches Institut der Universität Leipzig 8. April 2009 1 Die kopfgesteuerte Schleife Bei der kopfgesteuerten Schleife steht

Mehr

9: Verteilte Algorithmen

9: Verteilte Algorithmen 9: Verteilte Algorithmen Verteiltes System: Zusammenschluss unabhängiger Computer ( Knoten ), das sich für den Benutzer als einzelnes System präsentiert. (Begriffsbildung nach A. Tanenbaum hatten wir schon)

Mehr

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr