5. Spezifikation und Verifikation von Programmen. Hier: Spezifikation einfacher Programme

Größe: px
Ab Seite anzeigen:

Download "5. Spezifikation und Verifikation von Programmen. Hier: Spezifikation einfacher Programme"

Transkript

1 5. Spezifikation und Verifikation von Programmen Programmentwicklung: genaue Kenntnis der gewünschten Leistungen offensichtlich unabdingbar In größeren Systemen: Anforderungsdefinition legt fest: - Funktionalität (was soll Programm leisten?) - technische Randbedingungen (Plattform? Antwortzeitverhalten? - organisatorische Vorgaben (wer benutzt System? Vorkenntnisse?) Softwaretechnik Hier: Spezifikation einfacher Programme hs / fub - alp2-5 1 Spezifikation... beschreibt das sichtbare Verhalten eines Programm von außen, im Detail soll hohes Sprachniveau haben - eindeutig, präzise - kein Interpretationsspielraum - keine Redundanz Formale Sprache ermöglicht Korrektheitsbeweise Umgangssprache bei entsprechender Disziplin möglich Beispiel: Suche einen Wert x in dem Feld a - was wird als Wert erwartet? -... und wenn x nicht in a? - wenn x mehrfachl in a enthalten ist? - enthält a mindestens ein Element? - sind alle a[i], 0 <= i <= a.length - 1 definiert? Korrektheit: nur sinnvolle Frage, wenn Spezifikation formal hs / fub - alp

2 Beispiel: Suchproblem oft in prädikatenlogischer Sprache Signatur, hier als Methoden Signatur (Java) Spezifikation.: int search ( int [] a, int x) a Feld der Länge k > 0, a[i] definiert für 0 <= i < k Wert j erfüllt: meist implizit angenommen ( 0 <= j < k : a[j] == x ( i: 0 <= i < j ) a[i]!= x ) mindestens ein Feldelement und überall definiert Programmcode als Spezifikation? ( j = k ( i: 0 <= i < k ) a[i]!= x ) wenn x nicht in a pos :: Eq b => [b] -> b -> Int pos alist x = pos' alist x 0 where pos' [] x s = length alist pos' (y:xs) x s = if (x==y) then s else pos' xs x (s+1) erstes Vorkommen von x hier etwas unübersichtlich, modellierende Spezifikation in funktionaler Sprache aber oft nützlich hs / fub - alp2-5 3 Entwicklung und Vereinfachung des Algorithmus search (int a[int], int x) {int i = 0; while (nicht gefunden und nicht letztes Element) i++; return i; } Spezifikation unübersichtlich - besonders das Prädikat für j: P (j) Q(j) Vereinfachung? Kombination von Bedingungen fehleranfällig verfeinern, Konjunktion entspricht unhandlicher Spezifikation Gesuchtes Element wird immer gefunden! wie das? Vorauss.: Feld hat ein weiteres, zunächst undefiniertes Feldelement: a.length = k+1, a[k] == undef Setze: a[k] = x; search (int a[int], int x) {int i = 0; a[a.length-1]= x; while (a[i]!= x) i++; return i; } a[k] heißt Wächter (sentinel) Beachte: entspricht NICHT ursprünglicher Spezifikation hs / fub - alp

3 Spezifikation imperativer Algorithmen Imperativer Algorithmus: Variablen definieren Zustandsraum Z Algorithmus A: Abbildung des Zustandsraum in sich P = true alle Zustände x,y int erlaubt Z P S { y = y + x; x = -x + y; x = x * x } Q = (y = Y + X x = Y*Y x >= 0 ) Q Z Prädikat P definiert die Voraussetzung für Anwendung von S Q definiert den Effekt der Anweisung(en) S Falls ein Wert berechnet wird, auch den spezifizieren (P,Q) charakterisiert Abbildung S: Z -> Z Wirkung (Effekt) auf Zustandsraum hs / fub - alp2-5 5 Voraussetzungen und Effekte Terminologie: Voraussetzungen P, Vorbedingungen, preconditions Effekte Q, Nachbedingungen, postconditions (P,Q) heißt Zusicherung (assertion) aber wie beweist man das? // {P} S {Q} bedeutet: wenn P vor Ausführung von S gilt und S terminiert, dann gilt Q hat den Wert Sprache für P, Q: prädikatenlogische Formeln, elementare Prädikate ( =, >, < usw. ) x=x für eine Variable x: x hat Wert X x : Wert von Variable x vor Ausführung von S weitere Prädikate, wenn nötig (sortiert(a),...) Beispiel: gegeben Feld a[i], i<= 0 < n und a=a. Dann spezifiziert Q den Effekt eines Sortieralgorithmus: Q : perm(a.a) ( i: 0<=i< n-1 : a[i] <= a[i+1] a ist Permutation von A...und wie spezifiziert man perm?? und jetzt gilt: sortiert(a) hs / fub - alp

4 Starke und schwache Voraussetzungen Z P Wünschenswert: möglichst schwache Voraussetzungen - sollen für viele Zustände zutreffen möglichst starke Effekte Q - Zielzustände sollen möglichst genau charakterisiert werden S(x) R(x) Schwächste Voraussetzung wäre true: jeder Zustand erlaubt Z S R (P, Q) stärker als (P,Q ) genau dann wenn Ordnungsrelation auf Spezifikationen. Partiell! P P Q Q (d.h. P stärker als P und Q stärker als Q ) Schreibweise: (P, Q ) (P, Q ) hs / fub - alp2-5 7 Eigenschaften von Spezifikationen true: false: von jedem Zustand z erfüllt nicht erfüllbar (P, P): ohne Wirkung ( bzgl P!) (false, Q): nicht anwendbar - es gibt keinen Zustand, der die Voraussetzung erfüllt (true, Q): Effekt erfüllt Q ohne Voraussetzung (P, true): was beliebt ist erlaubt: Effekt spielt keine Rolle (P, false): terminiert nicht, da es keine Anweisung und keinen gültigen Zustand gibt, der die Spezifikation erfüllt Jedes Programm erfüllt diese Spezifikation Wie kann man {P} S { Q} zeigen, das heißt Anweisung(en) S erfüllt/en Spezifikation (P,Q)? x++ erfüllt Spezifikation (x>0, x>0) hs / fub - alp

5 Verifikation Formale Semantik der Anweisungen als Voraussetzung Axiomatische Definition der Bedeutung einiger imperativer Anweisungen: {P} ; {P} Axiom der leeren Anweisung: bewirkt nichts {P(e)} x=e {P(x)} Warum nicht anders herum? Beispiel: { prim(7) } x=7; {prim(x)} aber nicht umgekehrt! Also: alles, was für e gilt, gilt nach Ausfürhung der Anweisung für x Zuweisungsaxiom: Wenn vor der Zuweisung P für den Term e gilt, dann nach der Zuweisung P mit e ersetzt durch x. Umgekehrt: P(e) ist die schwächste Vorbedingung, so dass nach der Zuweisung P(x) gilt. hs / fub - alp2-5 9 Weitere Ableitungsregeln {P} S {Q} {P } T {Q } Q P {P} S;T {Q } Ableitungsregel : Prämisse Konsequenz Sequenz: Wenn die Nachbedingung der Anweisung S stärker ist, als die Voraussetzung von T, gilt für S;T die Voraussetzung P und die Nachbedingung Q {P B } S1 {Q} {P B} S2 {Q} {P} if B S1; else S2; {Q} Alternative: Die Auswertung von B darf keine Seiteneffekte haben. Geeignetes Q ist oft: B Q1 B Q2 hs / fub - alp

6 Iterationsregel {Inv B} S {Inv} {Inv} while (B) S; end {Inv B} Auch hier darf die Auswertung von B keine Variablen verändern (keine Seiteneffekte!). while (B) S; end statt Java-Notation: while (B) {S;} Diese Klammern haben eine andere Bedeutung! Abweisende Schleife: problematisch ist die gleichzeitige Forderung nach möglichst starker Nachbedingung und möglichst schwacher Voraussetzung - denn in n+1-ter Iteration ist die Vorbedingung die Nachbedingung der n-ten Iteration. hs / fub - alp Korrektheit Korrektheit eines imperativen Programms S bezüglich Spezifikation (P,Q): - für jede Eingabe, die P erfüllt, erfüllt die Ausgabe von S das Prädikat Q - und: S terminiert Algorithmus terminiert nur dann nicht, wenn Iteration (oder Rekursion) nicht abbricht. Deshalb für jede Schleife Termination prüfen: ganze Zahlen Gesucht Funktion term : Zustandsraum -> Z mit den Eigenschaften: {Inv B} while (B) S; end {term(z) < term(z)} und {Inv B} term(z) > C Streng monoton fallend, nach unten beschränkt hs / fub - alp

7 Verifikation Prinzipielles Vorgehen bei der Verifikation eines Programms S bezüglich Spezifikation (P,Q): - annotiere jede Anweisung S i von S mit geeigneten Voraussetzungen und Nachbedingungen (als Kommentar) {P} S 1 {P 1 } S 2...{P n-1 } S n {Q} - Beweise schrittweise unter Anwendung der Hoare-Axiome, dass aus P Q folgt, wenn S ausgeführt wurde. Vorwärtsbeweis (P -> P1 ->... -> Q) oft unhandlicher als rückschreitende Beweisführung: finde zu vorgegebener Nachbedingung eine möglichst schwache Voraussetzung ( weakest precondition ) Besser als Verifikation eines fertigen Programms: Programmentwicklung unter Beachtung von Voraussetzung / Konsequenz für Anweisungen / Programmstücke. ---> später hs / fub - alp Beispiel: Verifikation der ganzzahligen Division {x>0 y >0} q = 0; r = x; while (r >= y) r = r-y; statt {...}- Block.! q = q+1; end; {x = q*y+r 0 <= r < y } auch x >= 0 möglich? {x>0 y >0} {x>0 y >0 0=0} q = 0; {x>0 y >0 q=0} {x=x x>0 y >0 q=0} r = x; {x=r x>0 y >0 q=0} Invariante Inv: im Gegensatz zu anderen Formeln nicht herleitbar {x=r x > 0 y > 0 q=0} {x=q*y+r r >= 0} while (r >= y) {x=q*y+r r >= 0 r >= y {x=(q+1)*y + r-y r-y>=0} r = r-y; {x=(q+1)*y + r r>=0} q = q+1; {x=q*y + r r>=0} end; {x=q*y + r r>=0 r < y} {x= q*y+r 0 <= r < y } brauchen wir Voraussetzung y>0? hs / fub - alp

8 Termination der ganzzahligen Division Terminationsfunktion: t(z) = r Hier wird y>0 benötigt Zeige: r streng monoton fallend und beschränkt Erweitere Invariante : Inv = Inv y > 0 {x=q*y+r r >= 0 y > 0} B: r >= 0 Dann gilt: { Inv B r-y < R } S {Inv r < R} R: vorheriger Wert von r Inv B => r >= y y > 0 => r > 0 hs / fub - alp Schwächste Vorbedingung Nützlich bei rückschreitender Verifikation (oft einfacher als vorwärtsgerichtete Verifikation, weil zielgerichtet) : Gegeben die Nachbedingung (Konsequenz) Q, gesucht die schwächste Voraussetzung wp = weakest precondition P = wp (S, Q) so dass S Zustand, der P erfüllt, in Zustand überführt, der Q erfüllt. Semantikdefinition äquivalent zu Ableitungsregeln: wp (;, Q) = Q leere Anweisung wp (x=e;, Q(x)) = Q(e) Zuweisung wp(s1;s2;, Q) = wp(s1;, wp(s2;, Q)) Sequenz wp( if (B) S1; else S2;, Q) = (B => wp ( S1;,Q)) B => wp ( S1;,Q) ) Alternative hs / fub - alp

9 Iterative Programme Schleifen : rückschreitende Verifikation wenig geeignet stattdessen geeignete Invariante finden wie findet man Invarianten? true ist immer eine Invariante, aber selten hilfreich Konstruktion von Schleifen 1. Nachbedingung Q festlegen ( was ist das Ziel? ) 2. Invariante INV finden 3. Voraussetzung P festlegen und initialisieren, damit INV gilt 4. Bedingung B festlegen 5. Invariante beweisen: INV gilt auch nach Schleifendurchlauf 6. Zeigen: INV B => Q Wenn das nicht gelingt, bessere Invariante suchen, weiter bei 2. hs / fub - alp Wie findet man Invarianten? Heuristiken... A. Konjunktiven Term entfernen Q = Q1 Q2 Beispiel: Suche von Wert x in Feld a, a.length = n, x wird gefunden. Nachbedingung Q: 0 <= i < n ( j: 0<=j< i : a[j]!= x) a[i]=x naheliegend: a[i] = x entfernen, Rest ist Invariante Damit auch B gefunden: Nach Verlassen soll INV a[i] = x gelten, also B = a[i]!= x B. Konstante durch Variable ersetzen Beispiel: Summe der Feldelemente von a mit a.length = n Nachbedingung: Q s = Σ a[i] : 0 <= i < n ersetze Konstante n durch Variable j : INV s = Σ a[i] : 0 <= i < j Damit INV B => Q : B = j >= n oder B = j < n auch die Konstante 0 hätte durch Variable ersetzt werden können! hs / fub - alp

10 ... wie findet man Invarianten? C. Variablenbereich festlegen Beispiel: lineare Suche in Feld a, a.length = n, gesuchter Wert kommt vor Eine Möglichkeit (s.o., i und j sind Variablen im Programm) INV; 0 <= i < n ( j: 0<=j< i : a[j]!= x) Alternative: sei k der gesuchte Index a[k]=x beachte: k ist ein Wert, keine Variable. Der Wert von k soll nach Durchlaufen der Schleife in der Variablen j stehen. für k gilt also: 0 <= k ( j: 0<=j < k : a[j]!= x) a[k] = x Damit: j nimmt die Werte 0 <= j <= k an Das ist die Invariante! Schranke: k -j Invariante herstellen: j= 0; {0 <= j <=k a[j]!=x} while ( a[j]!= x) j++; {0 <= j <=k a[j]=x} Schranke fällt streng monoton,... nachprüfen. hs / fub - alp wie findet man Invarianten? D. Teile und herrsche / Rekursive Invarianten Beispiel: Quersumme von N qs 0 = 0 qs n = qs (n div 10) + n mod 10 Nachbedingung s = qs(n) n = N INV : qs(n) = s + qs(n) 0 <= n <= N while ( n > 0 ) { s=s+n mod 10; n = n div 10;} Java-Blockklammern Beweis der Invariante Eigenschaft der Quersumme {qs(n) = s + n mod 10 + qs (n div 10) 0 <= n div 10 <= N } => INV s = s + n mod 10; {qs(n) = s + qs(n div 10) 0 <= n div 10 <= N } Zuweisungsaxiom n= n div 10; {qs(n) = s + qs(n) 0 <= n <= N } INV hs / fub - alp

11 Schrittweise Programmentwicklung Nutzen der Verifikationsmethodik: Zur Konstruktion von Programmen Dokumentation des Codes und sich von der Richtigkeit überzeugen Systematisches Durchdenken der Bedingungen und Formulieren in anderer Sprache als Programmiersprache hilft Fehler erkennen. (aber nicht alle...was ist z.b. mit Rundungsfehlern der Gleitkommaarithmetik? Beispiel für systematische Programmentwicklung Anforderungsdefinition: Gegeben eine Liste von Tagekursen einer Aktie für n0 Tage. Gesucht: der maximale Spekulationsgewinn, das ist die größte Differenz von zwei Aktienkursen, wobei der Verkaufstag größer als der Tag des Kaufs ist. Spezifikation: (P,Q) mit mindestens 2 Tage P : a.length = n0, 0 <= i < n0 a[i] = A[i] (alle Werte definiert) n0 > 1 // a ist Feld der Größe n0) Q : g = max( a[j] - a[i]) 0 <= i < j < n0 0 <= i < j < n0 hs / fub - alp Fallstudie Programmentwicklung Invariante bestimmen: Methode B: Konstante durch Variable ersetzen, n0 durch Variable n 2 <= n <= n INV : g = max a[j] -a[i], 0 <= i < j < n 2 <= n <= n0 also g enthält immer den maximalen Kursgewinn der ersten n Tage Bedingung : folgt aus INV n = n0 => Q, also n!= n0 Invariante herstellen: g = a[1] -a[0] Erste Teillösung: {n0 >= 2} g = a[1] - a[0]; n = 2; {INV] while (n!=n0) // {INV n! n0} {bestimme max der Differenz für 0 <= i < j <= n und erhöhe n um 1} {INV} hs / fub - alp

12 ... Fallstudie Programmentwicklung Schleifenrumpf konstruieren: Zerlegen in {Inv n!= n0} berücksichtige n {INV n+1 } n = n+1; {INV} // Invariante, bei der n durch n+1 ersetzt Betrachte INV n+1 : g = max a[j] -a[i], 0 <= i < j < n+1 2 <= n+1 <= n also: g = max (a[j] -a[i]), 0 <= i < j < n+1 = max2 (max (a[j] - a[i]), 0 <= i < j < n, max ( a[n] - a[i], 0 <= i < n) ) = max2 ( max..., a[n] - min a[i], 0<= i < n) ) Verschiedene max-funktionen! Minimum der a [i] merken, 0 <= i <n und zwar in Variable mina Damit : g = max (g, a[n] - mina) --> weitere Invariante: INV = mina = min a[i], 0 <= i < n Erweiterte Invariante: INV ges = INV INV hs / fub - alp Fallstudie Herstellen von INV : mina = min (a[0], a[1]) Herstellen von INV beim Übergang n -> n+1: mina = min a[i], 0 <= i < n+1 also: mina = min (mina, a[n]) Teile zusammenfügen: { n >= 2...} n = 2; mina = a[1] - a[0]; g = a[1] - a[0]; {g = max ( a[j] - a[i] 0 <= i < j < n 2 < n < n0 mina = min a [i], 0 <= i < n } while ( n!=n0) // {INV n!= n0} { g = max ( g, a[n] - mina); mina = min (mina, a[n]); Beachte: lineares Programm n = n+1; {...} Block, keine Zusicherung } {Q : g = max a[j] - a[i], 0 <= i < j < n0 } hs / fub - alp

13 Zusammenfassung Spezifikation und Verifikation Semantikbeschreibung dient u.a zur Definition einer Programmiersprache (hier: axiomatisch) Grundlage zur Implementierung von Übersetzer / Interpretierer Programmbeschreibung was tut das Programm? Beschreibung mit Hilfe der semantischen Sprachdefinition entsprechend dem Programmaufbau (als syntaktisch korrekt vorausgesetzt) Programmspezifikation was soll das Programm tun? Präzisierung der Anforderungsdefinition Programmverifikation tut das Programm, was es soll? Nachweis der Verträglichkeit von Spezifikation und Programm(beschreibung) hs / fub - alp Verifizieren oder Testen? Programmfehler: Programm tut nicht das, was es soll oder tut etwas, was es nicht soll Es gibt praktische keine (sehr großen) fehlerfreien Programme häufig völlig unabhängige Entwicklung (Betriebssystem, Anwendungsprogramm ), Probleme im Zusammenwirken der Teile! Für manche Programme ist formale Verifikation ein Qualitätsmerkmal (Zertifizierung von Programmen nach formaler Verifikation, Bsp.: Steuerprogramme in Verkehrsleitsystemen) Begleitende Verifikation vermindert Fehler und unterstützt die Konstruktion von Algorithmen. Ohne Spezifkation keine Verifikation meist aufwendig. Verifikationsprogramme wünschenswert Tests beweisen (ggf.) die Anwesenheit von Fehlern, nie die Abwesenheit (wenn unendlich viele mögliche Eingaben) hs / fub - alp

14 Anmerkungen zum Testen Klassifikation: Schnittstellentest (blackbox-test) Ein- / Ausgaberlation auf Konformität zur Spezifikation prüfen Programmabhängiger Test (whitebox-test) Überprüfung möglichst großer Teile aller Pfade durch das Programm Möglichst große Überdeckung (des Programmcodes) wünschenswert Systematische Auswahl von Testfällen: Schnittstellentest Hauptproblem: kombinatorische Explosion der Testfälle, deshalb Vollständigkeit meist illusorisch. pro spezifizierter Bedingung mindestens ein Testfall Randbereiche (ggf. von beiden Seiten) prüfen, Maximal-, Minmalwerte Genügende Anzahl von Normallfällen jeweils gegen Sollwerte vergleichen! Überdeckungstest erwünscht, aber kaum machbar: Wegüberdeckung: jeden Weg einmal durchlaufen Abschwächung: jede Anweisung einmal durchlaufen (Anweisungsüberdeckung) stärker : zweigüberdeckend: jeden Zweig mindestens einmal durchlaufen hs / fub - alp

Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.

Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Formale Verifikation von Algorithmen 1.3 Verifikation Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Bisher nicht möglich

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

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

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

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

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

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

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

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

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

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

Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b Aufgabe 1: Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. (a) Nehmen Sie lineares Wachstum gemäß z(t) = at + b an, wobei z die Einwohnerzahl ist und

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Tage des Unterrichts in Mathematik, Naturwissenschaften und Technik Rostock 2010 Prof. Dr. Hans-Dieter Sill, Universität Rostock, http://www.math.uni-rostock.de/~sill/

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

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

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

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

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

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

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

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

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

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

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

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

Mathematischer Vorbereitungskurs für Ökonomen

Mathematischer Vorbereitungskurs für Ökonomen Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen

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

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

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

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

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen. R. Brinkmann http://brinkmann-du.de Seite 1 13.0.010 Lineare Gleichungen Werden zwei Terme durch ein Gleichheitszeichen miteinander verbunden, so entsteht eine Gleichung. Enthält die Gleichung die Variable

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

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in

Mehr

Einfache Varianzanalyse für abhängige

Einfache Varianzanalyse für abhängige Einfache Varianzanalyse für abhängige Stichproben Wie beim t-test gibt es auch bei der VA eine Alternative für abhängige Stichproben. Anmerkung: Was man unter abhängigen Stichproben versteht und wie diese

Mehr

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler

Mehr

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung Ablauf für die Erfassung der Fehler in der Fertigung Voraussetzung ist die Zuordnung der Erzeugnisse zu Produktgruppen. Wie das funktioniert ist der Anleitung Neue Produktgruppe anlegen und mit Erzeugnissen

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

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

8. Quadratische Reste. Reziprozitätsgesetz

8. Quadratische Reste. Reziprozitätsgesetz O Forster: Prizahlen 8 Quadratische Reste Rezirozitätsgesetz 81 Definition Sei eine natürliche Zahl 2 Eine ganze Zahl a heißt uadratischer Rest odulo (Abkürzung QR, falls die Kongruenz x 2 a od eine Lösung

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Repetitionsaufgaben: Lineare Gleichungen

Repetitionsaufgaben: Lineare Gleichungen Kantonale Fachschaft Mathematik Repetitionsaufgaben: Lineare Gleichungen Zusammengestellt von Hannes Ernst, KSR Lernziele: - Lineare Gleichungen von Hand auflösen können. - Lineare Gleichungen mit Parametern

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

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

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert

Mehr

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist. Matrizennorm Es seien r,s N Mit M r,s (R bezeichnen wir die Menge der reellen r s- Matrizen (also der linearen Abbildungen R s R r, und setze M s (R := M s,s (R (also die Menge der linearen Abbildungen

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

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

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

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

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

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

Musterlösungen zur Linearen Algebra II Blatt 5

Musterlösungen zur Linearen Algebra II Blatt 5 Musterlösungen zur Linearen Algebra II Blatt 5 Aufgabe. Man betrachte die Matrix A := über dem Körper R und über dem Körper F und bestimme jeweils die Jordan- Normalform. Beweis. Das charakteristische

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und

Mehr

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt

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

Ü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

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

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

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert. Der Gutachtenstil: Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert. Das Ergebnis steht am Schluß. Charakteristikum

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

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen Gleichungen Ungleichungen. Lineare Gleichungen Sei die Gleichung ax = b gegeben, wobei x die Unbekannte ist a, b reelle Zahlen sind. Diese Gleichung hat als Lösung die einzige reelle Zahl x = b, falls

Mehr

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Grundlagen der Videotechnik. Redundanz

Grundlagen der Videotechnik. Redundanz Grundlagen der Videotechnik Redundanz Redundanz beruht auf: - statistischen Abhängigkeiten im Signal, - Information, die vorher schon gesendet wurde - generell eine Art Gedächtnis im Signal Beispiel: Ein

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 3.2.07 astian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches / Review is zum 2.2 müssen alle Praxisaufgaben

Mehr

Wie löst man Mathematikaufgaben?

Wie löst man Mathematikaufgaben? Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt

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

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1 Abiturprüfung Mathematik (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe Für jedes t f t () + t R ist die Funktion f t gegeben durch = mit R. Das Schaubild von f t heißt K t.. (6 Punkte)

Mehr

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah Lernmaterial für die Fernuni Hagen effizient und prüfungsnah www.schema-f-hagen.de Sie erhalten hier einen Einblick in die Dokumente Aufgaben und Lösungen sowie Erläuterungen Beim Kauf erhalten Sie zudem

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Softwareentwicklungsprozess im Praktikum. 23. April 2015 Softwareentwicklungsprozess im Praktikum 23. April 2015 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit

Mehr

Verkehrsteilnehmer. Beispiel: Wir betrachten die Modellierung von Handlungskomponenten wie Verkehrsteilnehmern und Straßen.

Verkehrsteilnehmer. Beispiel: Wir betrachten die Modellierung von Handlungskomponenten wie Verkehrsteilnehmern und Straßen. 7.6 Bedingte Rechte Manchmal sind Rechte nur unter bestimmten Voraussetzungen gültig. Diese Situation beschreiben wir -wie sonst auch üblich- mit bedingten Rechten. Beispiel: Wir betrachten die Modellierung

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

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

Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)

Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.) Lösungsmethoden gewöhnlicher Dierentialgleichungen Dgl) Allgemeine und partikuläre Lösung einer gewöhnlichen Dierentialgleichung Eine Dierentialgleichung ist eine Gleichung! Zum Unterschied von den gewöhnlichen

Mehr

Lehrer: Einschreibemethoden

Lehrer: Einschreibemethoden Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder

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

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

Lineare Differentialgleichungen erster Ordnung erkennen

Lineare Differentialgleichungen erster Ordnung erkennen Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

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

DIFFERENTIALGLEICHUNGEN

DIFFERENTIALGLEICHUNGEN DIFFERENTIALGLEICHUNGEN GRUNDBEGRIFFE Differentialgleichung Eine Gleichung, in der Ableitungen einer unbekannten Funktion y = y(x) bis zur n-ten Ordnung auftreten, heisst gewöhnliche Differentialgleichung

Mehr

Erfahrungen mit Hartz IV- Empfängern

Erfahrungen mit Hartz IV- Empfängern Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November

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

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse UNIVERSITÄT DES SAARLANDES FACHRICHTUNG 6.1 MATHEMATIK Dipl.-Math. Kevin Everard Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14 Auswahl vorausgesetzter Vorkenntnisse

Mehr