Algorithmen und algorithmische Sprachkonzepte
|
|
|
- Bernt Gärtner
- vor 10 Jahren
- Abrufe
Transkript
1 Algorithmen und algorithmische Sprachkonzepte Programme und Algorithmen Foliensatz von A. Weber zur Vorlesung Informatik I, Bonn, 2002/03 Überarbeitet und ergänzt von W. Küchlin zu Informatik I, Tübingen 2003/04 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -1- Springer-Verlag, ISBN
2 Was ist ein Programm? Deutliche Diskrepanz zwischen beiden Begriffserklärungen im Lexikon! 'Programm': sehr allgemein (umgangssprachlich) aufgefasst 'Programmierung': spezifische Deutung des Begriffs 'Programm' 'Programm' im allgemeinen: z.b. Fernsehprogramm, Konferenzprogramm, Parteiprogramm 'Programm' im speziellen: nicht notwendig nur auf Computer bezogen Programm einer Waschmaschine, eines Videorecorders Programm einer Waschmaschine, eines Videorecorders Nach R. Manthey, Vorlesung Informatik I, Universität Bonn, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -2- Springer-Verlag, ISBN
3 Was ist ein Programm? Nach R. Manthey, Vorlesung Informatik I, Universität Bonn, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -3- Springer-Verlag, ISBN
4 Was ist ein Programm? Nach R. Manthey, Vorlesung Informatik I, Universität Bonn, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -4- Springer-Verlag, ISBN
5 Begriff des Algorithmus Begriffsdefinition Ein Algorithmus (algorithm) ist die Beschreibung eines Verfahrens, um aus gewissen Eingabegrößen bestimmte Ausgabegrößen zu berechnen. Dabei müssen folgende Bedingungen erfüllt sein Spezifikation Durchführbarkeit Korrektheit W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -5- Springer-Verlag, ISBN
6 Begriff des Algorithmus Spezifikation Eingabespezifikation: Es muss genau spezifiziert sein, welche Eingabegrößen erforderlich sind und welchen Anforderungen diese Größen genügen müssen, damit das Verfahren funktioniert Ausgabespezifikation: Es muss genau spezifiziert sein, welche Ausgabegrößen (Resultate) mit welchen Eigenschaften berechnet werden W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -6- Springer-Verlag, ISBN
7 Begriff des Algorithmus Durchführbarkeit Endliche Beschreibung: das Verfahren muss in einem endlichen Text vollständig beschrieben sein Effektivität: Jeder Schritt des Verfahrens muss effektiv (d.h. tatsächlich) mechanisch ausführbar sein Bem.: Effektivität ist nicht zu verwechseln mit Effizienz ( Wirtschaftlichkeit ) Determiniertheit: Der Verfahrensablauf ist zu jedem Zeitpunkt fest vorgeschrieben W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -7- Springer-Verlag, ISBN
8 Begriff des Algorithmus Korrektheit partielle Korrektheit: Jedes berechnete Ergebnis genügt der Ausgabespezifikation, sofern die Eingaben der Eingabespezifikation genügt haben Terminierung: Der Algorithmus hält nach endlich vielen Schritten mit einem Ergebnis an, sofern die Eingaben der Eingabespezifikation genügt haben W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -8- Springer-Verlag, ISBN
9 Begriff des Algorithmus Bemerkung: Nach unserer Begriffsbestimmung gäbe es also keine nicht-deterministische, nicht-terminierende... Algorithmen Diese Begriffe werden aber durchaus verwendet! Methode erfüllt alle Anforderungen an einen Algorithmus, bis auf die mit nicht gekennzeichnete W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -9- Springer-Verlag, ISBN
10 Ein "Algorithmus" aus dem täglichen Leben Nach R. Manthey, Vorlesung Informatik I, Universität Bonn, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -10- Springer-Verlag, ISBN
11 Eine sehr alte Beschreibung eines Algorithmus Zitiert nach R. Manthey, Vorlesung Informatik I, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -11- Springer-Verlag, ISBN
12 Herkunft des Wortes Algorithmus nach R. Manthey, Vorlesung Informatik I, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -12- Springer-Verlag, ISBN
13 Algorithmen und Programme nach R. Manthey, Vorlesung Informatik I, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -13- Springer-Verlag, ISBN
14 Problem Algorithmus - Programm Nach R. Manthey, Vorlesung Informatik I, Universität Bonn, WS 2001/2002 W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -14- Springer-Verlag, ISBN
15 Prinzipien des Algorithmenentwurfs Neben den Bedingungen, die schon in die Begriffsdefinition eingegangen sind, gibt es weitere wichtige Prinzipien, die beim Entwurf zu beachten sind Effizienz Der Algorithmus soll möglichst wenig Aufwand verursachen Das Ergebnis mit möglichst wenig Rechenschritten (oder mit möglichst wenig Speicherbedarf) erzielen Frage der Komplexität von Algorithmen wichtiges Thema in der Informatik III und Informatik IV Korrektheit beweisbar? Ein nicht-korrekter Algorithmus ist nach unserer Definition kein Algorithmus! Trotzdem sind nicht-korrekte Verfahren eher die Regel als die Ausnahme W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -15- Springer-Verlag, ISBN
16 Beschreibung von Algorithmen Für die Beschreibung von Algorithmen gibt es viele Möglichkeiten Alltagssprache Konkrete Programmiersprache Dazwischen gibt es eine Vielzahl von Notationen, die den Übergang zwischen Problembeschreibung und Programm erleichtern sollen Flussdiagramme Pseudocode W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -16- Springer-Verlag, ISBN
17 Beschreibung von Algorithmen Wir stellen Algorithmen als Folge einzelner Bearbeitungsschritte dar Diese können ggf. wiederholt werden, bis das gewünschte Ergebnis erzielt ist Wiederholungen geschehen entweder innerhalb der Schrittfolge durch Anweisungen wie: weiter mit Schritt (2) ( Iteration ), oder durch erneutes Aufrufen des Algorithmus mit einer einfacheren Problemstellung ( Rekursion ) Jeder Schritt sollte wie ein Buchkapitel einem Thema folgen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -17- Springer-Verlag, ISBN
18 Grundschema des Algorithmenaufbaus Folgendes Grundschema wird uns bei vielen Algorithmen begegnen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -18- Springer-Verlag, ISBN
19 Grundschema des Algorithmenaufbaus: Beispiel Beispiel: Man finde ein Verfahren zur Berechnung des Rests r der Ganzzahldivision a/b, also für cb+r=a und r<b, wobei 0 a und 0 b Diese Funktion wird meist Modulus-Funktion genannt, da r a mod b W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -19- Springer-Verlag, ISBN
20 Steuerungsverlauf Die Anordnung der Anweisungen eines Algorithmus, die bestimmt, in welcher Reihenfolge Dinge geschehen, heißt Steuerungsverlauf (control flow) des Algorithmus Wird auch Kontrollfluss (flow of control) genannt Manchmal wird auch der Programmablauf oder Kontrollfaden (thread of control), also die tatsächlich abgespulten Schritte und Anweisungen so bezeichnet W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -20- Springer-Verlag, ISBN
21 Steuerungsverlauf Die Konstruktion fahre fort mit Schritt 2 stellt einen Sprung (jump) im Steuerungsverlauf dar Dies ist die elementarste Form, eine Wiederholung oder sonstige Verzweigung im Ablauf auszudrücken Dadurch erhalten wir die elementar-iterative Beschreibungsform von Algorithmen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -21- Springer-Verlag, ISBN
22 Elementar-iterative Beschreibungsform Die elementar-iterative Beschreibungsform hat die nützliche und angenehme Eigenschaft: Wir können über einzelne Schritte des Verfahrens sprechen Die fahre fort -Konstruktion entspricht unmittelbar der goto-anweisung im Programmieren Zur Anwendung von goto werden Schritte mit einer Marke (Label) versehen, um das Ziel des Sprunges zu kennzeichnen Anwendung von goto ist aber sehr gefährlich! Strukturiert komplexe Programm nicht ausreichend Steuerungsverlauf kann verworren und unübersichtlich sein W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -22- Springer-Verlag, ISBN
23 Flussdiagramme Der Steuerungsverlauf kann mit der Notation der Flussdiagramme (flow chart) graphisch dargestellt werden Die Sprache der Flussdiagramme benutzt folgende Symbole Werden mit Pfeilen verbunden Die Ausführung solcher Ablaufpläne folgt den Pfeilen zwischen den Kästchen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -23- Springer-Verlag, ISBN
24 Flussdiagramme Beispiel: Grundschema des Algorithmenaufbaus als Flussdiagramm W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -24- Springer-Verlag, ISBN
25 Modulus-Funktion als Flussdiagramm Beispiel: Flussdiagramm für iterative Beschreibung der Modulus-Funktion W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -25- Springer-Verlag, ISBN
26 Strukturiert-iterative Beschreibungsform Um den Steuerungsverlauf auch bei komplexen Algorithmen übersichtlich zu halten, schränkt man die Sprünge ein: Schleifen der Flussdiagramme sind höchstens ineinander geschachtelt Schleifen überkreuzen sich nicht! Im Arbeitsschritt des Grundschemas würde man z. B. nur wieder eine geschlossene Schleife oder einen (vorzeitigen) Sprung zurück zum Test des Trivialfalls erlauben Wir sprechen in diesem Fall von strukturierten Sprüngen im Gegensatz zu freien Sprüngen, die prinzipiell beliebige Ziele haben können W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -26- Springer-Verlag, ISBN
27 Strukturiert-iterative versus elemantar-iterative Beschreibungsform Beispiel: Schemata einiger Kontrollflüsse Strukturiert-iterativ Elementar-iterativ Spaghetti-Code W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -27- Springer-Verlag, ISBN
28 Strukturiert-iterative Beschreibungsform Sprünge kommen zunächst nur noch implizit bei der Ausführung höherer Iterationsstrukturen vor Dieses sind Fallunterscheidungen wie if-then-else Oder insbesondere bei Schleifenkonstrukten (loop), wie etwa while Diese bewirken, dass der Programmfluss in einer Schleife von einem Test zu einem Bearbeitungsschritt und wieder zurück zum Test geht W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -28- Springer-Verlag, ISBN
29 Strukturiert-iterative Beschreibungsform: while Schleifenkonstrukte: while Die klassische while-schleife lautet wie folgt: Bei Eintritt in die while-schleife wird zunächst die Bedingung (ein Boolescher Ausdruck) ausgewertet Beim Wert true wird die Anweisungssequenz einmal ausgeführt und danach erneut zur Bedingung verzweigt Beim Wert false wird die Schleife (ohne Ausführung der Anweisungssequenz) beendet W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -29- Springer-Verlag, ISBN
30 Strukturiert-iterative Beschreibungsform: while Die while-schleife entspricht also der Konstruktion. W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -30- Springer-Verlag, ISBN
31 Rekursive Beschreibungsform Im rekursiven Ansatz versucht man, ein vorgelegtes Problem P(X) nach folgendem Schema in zwei Teilen zu lösen: Bem.: Rekursive und iterative Beschreibungsformen sind gleich mächtig Nach einer Formalisierung des Algorithmenbegriffs kann dies auch bewiesen werden! Etwa in der Vorlesung Informatik IV W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -31- Springer-Verlag, ISBN
32 Rekursive Beschreibungsform: Beispiel Beispiel: In gängiger mathematischer Notation könnte ein Verfahren zur Berechnung der Modulus-Funktion a mod b wie folgt aussehen: W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -32- Springer-Verlag, ISBN
33 Rekursive Beschreibungsform: Beispiel Beispiel (Forts.): Um festzustellen, ob diese Berechnungsvorschrift einen Algorithmus darstellt, müssen wir folgende Fragen beantworten: Spezifikation Eingabe Ausgabe Durchführbarkeit Endliche Beschreibung Effektivität Determiniertheit Korrektheit Partielle Korrektheit Terminierung W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -33- Springer-Verlag, ISBN
34 Rekursive Beschreibungsform: Korrektheitsbeweis des Beispiels Beispiel (Forts.): Spezifikation W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -34- Springer-Verlag, ISBN
35 Rekursive Beschreibungsform: Korrektheitsbeweis des Beispiels Beispiel (Forts.): W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -35- Springer-Verlag, ISBN
36 Rekursive Beschreibungsform: Korrektheitsbeweis des Beispiels Beispiel (Forts.): W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -36- Springer-Verlag, ISBN
37 Rekursive Beschreibungsform: Korrektheitsbeweis des Beispiels Beispiel (Forts.): Korrektheit Bemerkungen: Diese Überlegungen stellen einen Korrektheitsbeweis dar Die Termination konnte bei diesem Algorithmus also bewiesen werden; es gibt aber kein mechanisches Verfahren das bei einem beliebigen Algorithmus entscheiden kann, ob dieser terminiert oder nicht ( Halte-Problem ) W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -37- Springer-Verlag, ISBN
38 Rekursive Beschreibungsform: Beispiel in Java Das rekursive Verfahren in mathematischer Notation können wir mit minimalen Änderungen nach Java umsetzen Wir definieren dazu eine Java-Funktion mod, die zwei ganze Zahlen a und b als Parameter hat und eine ganze Zahl als Ergebnis liefert W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -38- Springer-Verlag, ISBN
39 Rekursive Beschreibungsform: Beispiel in Java Zur Illustration stellen wir nun noch eine etwas ausführlichere (aber gleichwertige) Version dieser Funktion vor Kommentarzeilen Zum Vergleich: Rekursionsgleichung W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -39- Springer-Verlag, ISBN
40 Euklidischer Algorithmus zur ggt-berechung Als weiteres Beispiel für die rekursive Beschreibungsform nehmen wir den Euklidischen Algorithmus zu Berechnung des größten gemeinsamen Teilers (ggt) zweier ganzer Zahlen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -40- Springer-Verlag, ISBN
41 Euklidischer Algorithmus zur ggt-berechung Beschreibung in einem Pseudo-Code Zum Vergleich: Rekursionsgleichung W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -41- Springer-Verlag, ISBN
42 Euklidischer Algorithmus zur ggt-berechung Beschreibung in Java Andere Art eines Kommentars, ein Dokumentationskommentar Modulus-Funktion ist in Java eingebaut; wird durch das Symbol % beschrieben; könnten auch die selbst definierte Funktion mod aufrufen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -42- Springer-Verlag, ISBN
43 Rekursion und funktionale Programmierung Der rekursive Ansatz zur Problemlösung ist die Hauptdenkweise, die die funktionalen Programmiersprachen unterstützen Etwa LISP, Scheme, ML, Haskell Vorzug liegt in der großen Eleganz und Kompaktheit gerade bei kleinen Lehrbuchbeispielen Dieser Ansatz erfordert nur sehr wenige syntaktische Konstrukte der Programmiersprache (kein while, for, repeat,...) W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -43- Springer-Verlag, ISBN
44 Rekursion und funktionale Programmierung Funktionale Denkweise: kein Begriff des Zustands (state) einer Berechnung. manchmal beträchtliche Eleganz, erleichtert auch Korrektheitsbeweise Alle Daten sind global, alle Funktionen können auf allen Daten operieren Objektorientierte Denkweise: Funktionen sind mit ihren Daten zu Objekten gekapselt Objekte interagieren durch Fenster mit anderen Objekten Objekte haben Zustände (gegeben durch die Daten) Zustände werden durch Berechnung weiterentwickelt In der objektorientierten Welt ist daher das (ebenfalls klassische) zustandsorientierte iterative Konzept zur Konstruktion von algorithmischen Problemlösungen am weitesten verbreitet Wie wir gesehen haben, kann auch in einer objektorientierten Sprache wie Java rekursiv programmiert werden! W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -44- Springer-Verlag, ISBN
45 Konstruktion und Verifikation iterativer Algorithmen Bei der Verwendung von imperativen (Anweisungs orientiert) Programmiersprachen wie Java stellt die Konstruktion korrekter iterativer Algorithmen den Kern des Programmierens dar Hat man diese nicht verstanden, kann man auch nicht programmieren Wir betrachten deshalb den Grundaufbau iterativer Algorithmen nochmals in vertiefter Form Besonders auch unter dem Aspekt, dass wir strukturiertiterative Algorithmen entwickeln und als korrekt beweisen wollen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -45- Springer-Verlag, ISBN
46 Konstruktion und Verifikation iterativer Algorithmen Betrachten Grundschema des Algorithmenaufbaus in einer Variante, die einem strukturiert-iterativen Ansatz entspricht Der Algorithmus operiert dabei auf einer Menge V von Variablen (Name mit wechselndem Wert) Diese Zustandsvariablen haben veränderliche Werte und können somit bearbeitet werden, und unter ihnen befindet sich schlußendlich das Resultat Nach einem Vorbereitungsschritt wird so lange die Arbeit f(v) verrichtet, wie die Schleifenbedingung C(V) wahr ist Danach wird ein Nachbearbeitungsschritt ausgeführt und der Algorithmus beendet W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -46- Springer-Verlag, ISBN
47 Konstruktion und Verifikation iterativer Algorithmen Zur Verifikation werden Zustandsvariablen partitioniert in V=E H A E ist Menge der Eingabevariablen Eingabeparameter der Berechnung A ist Menge der Ausgabevariablen Werte zum Schluss zeigen Ergebnis der Berechnung an H ist Menge der Hilfsvariablen Die Werte der Variablen spiegeln zu jedem Zeitpunkt den Zustand (state) der Berechnung wider W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -47- Springer-Verlag, ISBN
48 Konstruktion und Verifikation iterativer Algorithmen Problemlösung durch den Algorithmus findet also dadurch statt, dass der Anfangszustand V 0, in dem nur die Variablen in E relevante Werte haben, durch eine Berechnungssequenz Schritt für Schritt ( iterativ ) in einen Endzustand transformiert wird In dem die Werte der Variablen in A das gewünschte Gesamtresultat darstellen Oft gibt es nur ein einziges Resultat, das wir üblicherweise mit r oder res bezeichnen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -48- Springer-Verlag, ISBN
49 Konstruktion und Verifikation iterativer Algorithmen Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Variablen können Werte zugewiesen werden Zuweisungsoperator in imperativen Sprachen von fundamentaler Bedeutung In Pascal heißt Zuweisungsoperator := Benutzen := für Zuweisungsoperator in Pseudocode In C, C++, Java heißt Zuweisungsoperator = W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -49- Springer-Verlag, ISBN
50 Konstruktion und Verifikation iterativer Algorithmen Erfolgt Reduktion mithilfe strukturierter Iteration, so kann i.a. Korrektheit durch Finden einer geeigneten Schleifeninvariante bewiesen werden Schleifeninvariante: Prädikatenlogische Formel INV(V), die an bestimmter Stelle einer Schleife bei allen Schleifendurchgängen stets gilt F(V) ist Schleifeninvariante falls 1. F(V) gilt vor dem ersten Durchgang 2. F(V) => F(V ); F gilt nachher, falls F vorher gegolten hat W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -50- Springer-Verlag, ISBN
51 Konstruktion und Verifikation iterativer Algorithmen Grundschema der strukturierten Iteration mit Schleifeninvariante als UML activity chart Name des Algorithmus Eingabe: Liste der Parameter mit Typ Anforderung: Bedingung für Parameter Ausgabe: Ausgabevariablen mit Typ Zusicherung: Bedingung für Ausgaben Hilfsgrößen: Hilfsvariablen mit Typ [Anforderung] Vorbereitung Schleifen-Invariante INV(V) gilt hier Schleifeninvariante INV(V) geeignete Formel, die bei allen Schleifendurchgängen gilt Arbeit f(v) [Abbruchbedingung] [Iterationsbedingung] Zusicherung gilt hier Nachbereitung W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -51- Springer-Verlag, ISBN
52 Konstruktion und Verifikation iterativer Algorithmen Grundschema der strukturierten Iteration mit Schleifeninvariante Schleifeninvariante INV(V) geeignete Formel, die bei allen Schleifendurchgängen gilt Verifikation nach Floyd: 1) INV(V) ʌ C(V) => nach Arbeit f(v) gilt INV(V) 2) Anforderung => nach Vorbereitung gilt INV(V) 3) INV(V) ʌ C(V) => nach Nachbereitung gilt Zusicherung W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -52- Springer-Verlag, ISBN
53 Verifikationsmethode von Floyd Die Verifikationsmethode von Floyd für das Grundschema iterativer Algorithmen ist 1. Finde eine geeignete Formel F(V) und zeige, dass sie eine Schleifen-Invariante an der im Flußdiagramm auf voriger Seite angegebenen Stelle ist; bezeichne F(V) nachfolgend mit INV(V) 2. Zeige, dass aus der Eingabespezifikation folgt, dass INV(V) vor dem ersten Schleifendurchgang gültig ist 3. Zeige, dass nach dem letzten Schleifendurchgang aus INV(V) und aus der Negation der Schleifenbedingung C(V), also aus INV(V) C(V) die Gültigkeit der Ausgabespezifikation folgt 4. Zeige, dass die Schleife terminiert W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -53- Springer-Verlag, ISBN
54 Verifikationsmethode von Floyd W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -54- Springer-Verlag, ISBN
55 Konstruktion und Verifikation iterativer Algorithmen Algorithmus für die Fakultätsfunktion mit Schleifeninvariante Schleifeninvariante F(n,r,i)= [n! = r*i!] W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -55- Springer-Verlag, ISBN
56 Konstruktion und Verifikation iterativer Algorithmen Fakultätsfunktion als UML activity chart Funktion fac(n) Eingabe: n : IN Anforderung: n in IN Ausgabe: r : IN Zusicherung: r = n! Hilfsgrößen: i : int [n >= 0] r := 1; i := n; Schleifen-Invariante: (n! = r * i!) gilt hier. [i <= 1] return( r ); [i > 1] r := r * i; i := i - 1; Zusicherung: r = n! gilt hier W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -56- Springer-Verlag, ISBN
57 Konstruktion und Verifikation iterativer Algorithmen W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -57- Springer-Verlag, ISBN
58 Konstruktion und Verifikation iterativer Algorithmen Beispiel: Modulus-Funktion (iterativ) W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -58- Springer-Verlag, ISBN
59 Konstruktion und Verifikation iterativer Algorithmen Beispiel: Modulus-Funktion (iterativ) W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -59- Springer-Verlag, ISBN
60 Konstruktion und Verifikation iterativer Algorithmen Beispiel: Modulus-Funktion (iterativ) als UML activity chart Funktion mod(a,b) Anforderungen: a: IN, b: IN, (b > 0) Ausgabe: r : IN Zusicherung: r = a - (a/b)*b (r ist der Rest der Division a/b) [a >= 0; b > 0] r := a; [r < b] return( r ); [r >= b] r := r - b; r = a - (a/b)*b W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -60- Springer-Verlag, ISBN
61 Konstruktion und Verifikation iterativer Algorithmen Beispiel: Verifikation der Modulus-Funktion (iterativ) nach Floyd Funktion mod(a,b) Anforderungen: a: IN, b: IN, (b > 0) Ausgabe: r : IN Zusicherung: r = a - (a/b)*b (r ist der Rest der Division a/b) [a >= 0; b > 0] Verifikation nach Floyd: 1. Aus [a-(a/b)*b = r-(r/b)*b] und (r>=b) und {r := r-b;} folgt [a-(a/b)*b = r-(r/b)*b] 2. Aus (a >= 0, b > 0) und {r := a;} folgt [a-(a/b)*b = r-(r/b)*b] 3. Aus [a-(a/b)*b = r-(r/b)*b] und (r < b) und {return( r );} folgt (r = a (a/b)*b) Invariante [a - (a/b)*b = r - (r/b)*b] gilt hier r := a; [r < b] return( r ); [r >= b] r := r - b; r = a - (a/b)*b W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -61- Springer-Verlag, ISBN
62 Konstruktion und Verifikation iterativer Algorithmen Verifikations-Beispiel: Modulus-Funktion (iterativ) W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -62- Springer-Verlag, ISBN
63 Konstruktion und Verifikation iterativer Algorithmen Finden von Schleifen-Invarianten Invariante für fac(n) : [n! = r * i!] Invariante für mod(a,b): [(a mod b) = r (r/b)*b] Gemeinsame Struktur Links von = steht die Aufgabe Rechts steht getane Arbeit und noch zu tuende Arbeit r steht für getane Arbeit (akkumuliertes Ergebnis) Schleifen-Index i repräsentiert noch zu tuende Arbeit Beifac ist i! der Wert, den man noch zu r multiplizieren muß, bis r = n! Beimod ist (r/b)*b der Wert, den man noch von r abziehen muß, bis r = (a mod b). W. Küchlin, A. Weber: Einführung in die Informatik objektorientiert mit Java -63- Springer-Verlag, ISBN
Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
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
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)
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
Kontrollstrukturen - Universität Köln
Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,
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
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
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
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
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.
Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie
Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per
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
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
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
Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
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
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
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Formale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
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
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte
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
Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Einführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
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
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
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
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
SEQUENZDIAGRAMM. Christoph Süsens
SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von
Wir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
Lineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
1. Einführung. 2. Weitere Konten anlegen
1. Einführung In orgamax stehen Ihnen die gängigsten Konten des Kontenrahmens SKR03 und SKR04 zur Verfügung. Damit sind im Normalfall alle Konten abgedeckt, die Sie zur Verbuchung benötigen. Eine ausführliche
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
4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04
4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 JOACHIM VON ZUR GATHEN, OLAF MÜLLER, MICHAEL NÜSKEN Abgabe bis Freitag, 14. November 2003, 11 11 in den jeweils richtigen grünen oder roten Kasten
Text-Zahlen-Formatieren
Text-Zahlen-Formatieren Beobachtung: Bei der Formatierung einer Zahl in eine Textzahl und umgekehrt zeigt Excel ein merkwürdiges Verhalten, welches nachfolgend skizziert werden soll: Wir öffnen eine neue
Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer
Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der
Kurzanleitung MAN E-Learning (WBT)
Kurzanleitung MAN E-Learning (WBT) Um Ihr gebuchtes E-Learning zu bearbeiten, starten Sie bitte das MAN Online- Buchungssystem (ICPM / Seminaris) unter dem Link www.man-academy.eu Klicken Sie dann auf
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
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
Internet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
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
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:
Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
Zwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
1. Einführung. 2. Die Abschlagsdefinition
1. Einführung orgamax bietet die Möglichkeit, Abschlagszahlungen (oder auch Akontozahlungen) zu erstellen. Die Erstellung der Abschlagsrechnung beginnt dabei immer im Auftrag, in dem Höhe und Anzahl der
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
5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)
Technische Universität München Zentrum Mathematik PD Dr. hristian Karpfinger http://www.ma.tum.de/mathematik/g8vorkurs 5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Aufgabe 5.1: In einer Implementierung
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
Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
Informatik Kurs Simulation. Hilfe für den Consideo Modeler
Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke
Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:
Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen
5. Bildauflösung ICT-Komp 10
5. Bildauflösung ICT-Komp 10 Was sind dpi? Das Maß für die Bildauflösung eines Bildes sind dpi. Jeder spricht davon, aber oft weiß man gar nicht genau was das ist. Die Bezeichnung "dpi" ist ein Maß, mit
www.internet-einrichten.de
E-Mail-Programme E-Mail Adresse einrichten Bei t-online, AOL, Compuserve, und anderen können Sie sich E-Mail-Adressen einrichten. Dies hat aber den Nachteil, dass Sie diese nur mit der entsprechenden Zugangssoftware
Suche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel
Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung
Was meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:
Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung
Konzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit
Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN
ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN Wir wollen nun die Rechengesetze der natürlichen Zahlen auf die Zahlenmenge der ganzen Zahlen erweitern und zwar so, dass sie zu keinem Widerspruch mit bisher geltenden
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Kapitalerhöhung - Verbuchung
Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.
Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
Erstellen einer digitalen Signatur für Adobe-Formulare
Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist
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
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
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
Lineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der
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
Arbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
Überprüfung der digital signierten E-Rechnung
Überprüfung der digital signierten E-Rechnung Aufgrund des BMF-Erlasses vom Juli 2005 (BMF-010219/0183-IV/9/2005) gelten ab 01.01.2006 nur noch jene elektronischen Rechnungen als vorsteuerabzugspflichtig,
iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013
iloq Privus Schließanlagen Programmierung Version 1 - Copyright 2013 Kurth Electronic GmbH Kommunikations- & Sicherheitssysteme / Im Scherbental 5 / 72800 Eningen u. A. Tel: +49-7121-9755-0 / Fax: +49-7121-9755-56
Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!
9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr
teischl.com Software Design & Services e.u. [email protected] www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. [email protected] www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt
ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster
Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
Modellbildungssysteme: Pädagogische und didaktische Ziele
Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und
Anwendungsbeispiele Buchhaltung
Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen
Zimmertypen. Zimmertypen anlegen
Zimmertypen anlegen Hier legen Sie Ihre Zimmer an, damit sie auf der Homepage dargestellt werden und online buchbar gemacht werden können. Wobei wir ausdrücklich darauf hinweisen möchten, dass es ganz
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
... ... Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3
Browsereinstellungen Um die Know How! Lernprogramm nutzen zu können, sind bei Bedarf unterschiedliche Einstellungen in Ihren Browsern nötig. Im Folgenden finden Sie die Beschreibung für unterschiedliche
MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: [email protected] Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
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
Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen
4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.
Bauteilattribute als Sachdaten anzeigen
Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...
Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller
Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen
Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.
Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann [email protected]
Software Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
Einführung in die Informatik II
Einführung in die Informatik II Vorlesung Sommersemester 2013 Prof. Dr. Nikolaus Wulff Ziele der Vorlesung Sie vertiefen die Kenntnisse aus Informatik I und runden diese in weiteren Anwendungsgebieten
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
FlowFact Alle Versionen
Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für
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
Analysis I für Studierende der Ingenieurwissenschaften
Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen
