Sortieren. Eine Testmenge erstellen

Größe: px
Ab Seite anzeigen:

Download "Sortieren. Eine Testmenge erstellen"

Transkript

1 Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten Sortieralgorithmus, der einen geringen Speicherbedarf aufweist und möglichst schnell ist. Eine Testmenge erstellen Ausgangspunkt unserer Betrachtung ist ein eindimensionales, ungeordnetes statisches Array, z.b.: var Feld : array[1.. 40] of Byte; Von der Möglichkeit dynamischer Arrays werden wir ebenfalls Gebrauch machen: Die Übergabe von offenen Arrays an Funktionen bzw. Prozeduren. Innerhalb der Prozedur lassen sich über die Funktionen High und Low die Schranken des Arrays bestimmen, damit sind auch die Grenzwerte für Schleifenvariablen festgelegt. procedure sort_shell (var a: array of word); Zurück zum Sortieren: Für die Untersuchung verwen wir die Routine Zufallszahlen, die das Array mit einer bestimmten Anzahl von zufälligen Werten (Word) füllt: procedure zufallszahlen(var a : array of word); var bis,i: LongInt; for i := 0 to bis do a[i] := Random(65000) HINWEIS: Auf die Verwung von Assembler-Code (bietet sich beim Datentyp Word eigentlich an) wurde bewusst verzichtet, um die Algorithmen mit wenig Aufwand auch für andere Datentypen nutzen zu können. HINWEIS: Alle beschriebenen Verfahren lassen sich mit relativ wenig Aufwand auf Pointer- Listen etc. (siehe Kapitel 14) umschreiben. Arbeiten Sie mit Records, ist diese Vorgehensweise unbedingt zu empfehlen, da in diesem Fall nicht erst der komplette Record kopiert werden muss, sondern lediglich der Pointer neu gesetzt wird (wesentlich bessere Performance!). Austauschverfahren (Exchange-Sort) Das Austauschverfahren ist eine der einfachsten und zugleich langsamsten Sortiermethoden. Beginn mit dem ersten wird jedes weitere Element der Liste mit allen anderen Werten verglichen. Ist der Vergleichswert kleiner als der aktuelle Wert, werden beide ausgetauscht. Dieser Vorgang wird bis AN-1 fortgesetzt. Genaueres können Sie dem folgen Programmablaufplan entnehmen. Die Realisierung des Sortieralgorithmus in Delphi: procedure sort_austausch (var a: array of Word); var bis,i,j : LongInt; for i := 0 to bis - 1 do for j := i + 1 to bis do If a[i] > a[j] then h := a[i]; a[i] := a[j];

2 a[j] := h Einen Test der Leistungsfähigkeit im Vergleich zu den anderen Verfahren finden Sie am Ende dieses Abschnitts. Auswahlverfahren Das Auswahlverfahren ähnelt in seiner Arbeitsweise dem Austauschverfahren. Beginn mit dem ersten Feldelement wird das Minimum gesucht, im Erfolgsfall werden die Werte getauscht. In dieser Vorgehensweise ist der Vorteil gegenüber dem Austauschverfahren zu sehen. Bei jedem Schleifurchlauf wird maximal ein Wert getauscht. Für die Ermittlung des Minimums verwet das Programm eine Hilfsvariable vom Typ Word sowie einen Hilfsindex (Zeiger auf das jeweils kleinste Element).

3 Die Umsetzung in Delphi bereitet keine weiteren Probleme: procedure sort_auswahl (var a: array of Word); var bis,i,j,k : LongInt; for i := 0 to bis - 1 do h := a[i]; k := i; for j := i + 1 to bis do if a[j] < h then h := a[j]; k := j a[k] := a[i]; a[i] := h Eine noch schnellere Variante des Auswahlverfahrens sortiert das gefundene Minimum in ein neues Feld ein. Diese Möglichkeit entspricht zwar dem menschlichen Vorgehen, zwei Punkte sprechen jedoch gegen dieses Verfahren:? Der Speicherbedarf verdoppelt sich durch das zweite benötigte Array.? Wir brauchen ein Kennzeichen für bereits einsortierte Werte ("abstreichen").

4 Bubble-Sort-Verfahren Dieses Verfahren ändert die bisherige Vorgehensweise dahingeh, dass der jeweils größere zweier benachbarter Werte durch das gesamte Array "geschoben" wird. Aus diesem Vorgang resultiert die Bezeichnung "Bubble-Sort", die Maxima steigen wie Blasen (Bubbles) zu ihren jeweiligen Positionen auf. Dieser Vorgang wird so lange wiederholt, bis das Minimum im ersten Feld steht. Was so kompliziert aussieht, ist auch entsprech langsam. Der Bubble-Sort-Algorithmus zählt deshalb mit zu den Schlusslichtern, wenn es um Ausführungsgeschwindigkeit geht. Der Algorithmus ist nur vollständigkeitshalber aufgeführt, von der Anwung für "normale" Applikationen wird abgeraten (Ausnahmen siehe Abschnittse). procedure sort_bubble (var a: array of Word); var bis,i : LongInt; repeat for i := 0 to bis - 1 do if a[i] > a[i + 1] then h := a[i]; a[i] := a[i + 1]; a[i + 1] := h Dec(bis) until bis = 1 Eine Mutante des Bubble-Sort, der Shake-Sort, wechselt währ der Bearbeitung die Sortierrichtung, d. h., das Minimum wird an den Anfang geschoben. Was für Vorteile soll das bringen? Für Sortiervorgänge im Arbeitsspeicher spielt die obige Vorgehensweise keine Rolle, werden die Daten jedoch auf einer Festplatte oder einem Magnetband sortiert, lassen sich die Positionierungen der Schreib-/Leseköpfe auf diese Art und Weise minimieren. Da in diesem Fall die mittlere Zugriffszeit der Festplatte die Geschwindigkeit des Sortiervorgangs bestimmt, ist eine Optimierung an dieser Stelle besonders wichtig. Und damit können Sie sich denken, in welchen Bereichen auch der Bubble-Sort-Algorithmus sinnvoll einsetzbar wäre.

5 Shell-Sort-Verfahren Die Geschwindigkeitsvorteile werden mit einer etwas aufwändigeren Programmierung bezahlt. Der Ansatz ist anders als bisher. Das Array der Länge N wird halbiert, danach vergleicht man die Werte A0 und AN/2, A1 und AN/2+1,... miteinander. Das Maximum wird in die zweite Hälfte verschoben. In einem zweiten Durchlauf werden die Intervalle halbiert, es erfolgt ein erneuter Vergleich. Der Ablauf wiederholt sich so lange, bis die Intervallgröße einem Feldelement entspricht und die jeweils benachbarten Werte verglichen werden: procedure sort_shell (var a: array of Word); var bis,i,j,k : LongInt; k := bis shr 1; // div 2 while k > 0 do for i := 0 to bis - k do j := i; while (j >= 0) And (a[j] > a[j + k]) do h := a[j]; a[j]:= a[j + k]; a[j + k] := h;

6 If j > k then Dec(j,k) else j := 0 k := k shr 1 // div 2

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

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

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

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

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

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

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

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

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

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Algorithmen. Suchalgorithmen

Algorithmen. Suchalgorithmen Algorithmen Suchalgorithmen Suchen in Tabellen Der Standardfall. Wie in der Einleitung beschrieben, handelt es sich bei den Datensätzen, die durchsucht werden sollen, um Zahlen. Ein Array könnte beispielsweise

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Quicksort. Referat am 18.11.1996 in Proseminar "Grundlagen der Programmierung" Inhalt. 1. Geschichte und Hintergründe des Sortierproblems

Quicksort. Referat am 18.11.1996 in Proseminar Grundlagen der Programmierung Inhalt. 1. Geschichte und Hintergründe des Sortierproblems Quicksort Referat am 18.11.1996 in Proseminar "Grundlagen der Programmierung" Inhalt 1. Geschichte und Hintergründe des Sortierproblems 2. Theoretische Grundlagen 2.1 Das Sortierproblem (lat. sors, -tis

Mehr

KV Software Engineering Übungsaufgaben SS 2005

KV Software Engineering Übungsaufgaben SS 2005 KV Software Engineering Übungsaufgaben SS 2005 Martin Glinz, Silvio Meier, Nancy Merlo-Schett, Katja Gräfenhain Übung 1 Aufgabe 1 (10 Punkte) Lesen Sie das Originalpapier von Dijkstra Go To Statement Considered

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

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

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

Von Pascal zu Delphi. Aufbau eines Delphi-Projektes. Grundlagen von ObjectPascal. Prozeduren und Funktionen. Übungen. Ende

Von Pascal zu Delphi. Aufbau eines Delphi-Projektes. Grundlagen von ObjectPascal. Prozeduren und Funktionen. Übungen. Ende Von Pascal zu Delphi Aufbau eines Delphi-Projektes Aufbau einer Unit Aufbau einer Prozedur Grundlagen von ObjectPascal Schleifen Verzweigungen Array Prozeduren und Funktionen Übungen Ende Entwicklung der

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

Mehr

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Projekt Nr. 15: Einen elektronischen Würfel erstellen Nun wissen Sie, wie Sie Zufallszahlen erzeugen können. Als Nächstes wollen wir diese neuen Kenntnisse gleich in die Tat umsetzen, indem wir einen elektronischen Würfel konstruieren. Projekt Nr. 15: Einen

Mehr

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

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

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Ein Turbo-Pascal-Programm zur Umrechnung vom Dezimalsystem in andere Zahlensysteme

Ein Turbo-Pascal-Programm zur Umrechnung vom Dezimalsystem in andere Zahlensysteme Ein Turbo-Pascal-Programm zur Umrechnung vom Dezimalsystem in andere Zahlensysteme Stefan Ackermann Mathematisches Institut der Universität Leipzig 11. November 2005 Zusammenfassung Dezimalzahlen bzw.

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Delphi-Grundlagen Hn 26.4.2010

Delphi-Grundlagen Hn 26.4.2010 Delphi Grundlagen Ein Delphiprogramm besteht aus 3 Teilen: - dem Formular (*.dfm) - dem Quelltext oder der Unit (*.pas) und - der Projektdatei (*.dpr), die Quelltext und Formular zusammenfügt. Änderungen

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion 17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Computerpraxis Schritt für Schritt. Programmieren lernen für Einsteiger

Computerpraxis Schritt für Schritt. Programmieren lernen für Einsteiger Computerpraxis Schritt für Schritt Delphi Programmieren lernen für Einsteiger VERLAG EUROPA-LEHRMITTEL Nourney, Vollmer GmbH & Co. KG Düsselberger Straße 23 42781 Haan-Gruiten Europa-Nr.: 84351 2 Impressum

Mehr

Technische Informatik II

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

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

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

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Volkmar Sieh Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2013 VHDL Verhaltensmodellierung 1/18 2013-01-11 Inhalt

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 5. Vorlesung Martin Middendorf / Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Quick-Sort

Mehr

Einführung LUA Programmierung

Einführung LUA Programmierung Einführung LUA Programmierung Unterschied Homecenter 2 Homecenter Lite Die Unterschiede zwischen dem Homecenter 2 und Homecenter Lite sind für den Endverbraucher auf den ersten Blick nicht sichtbar. Die

Mehr

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser Programmierung, Algorithmen und Techniken von Thomas Ohlhauser 1. Begriff Programmierung Entwicklung von Programmen inklusive der dabei verwendeten Methoden und Denkweisen. Ein Programm ist eine eine Zusammensetzung

Mehr

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

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

Mehr

16 SQL Server-Zugriff per VBA

16 SQL Server-Zugriff per VBA Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 16 SQL Server-Zugriff per VBA Sie werden an verschiedenen Stellen per VBA auf die Tabellen der SQL Server-Datenbank zugreifen müssen sei

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 VHDL Verhaltensmodellierung 1/26 2008-10-20

Mehr

Die Technologie von Solid State Disks

Die Technologie von Solid State Disks Beispielbild Die Technologie von Solid State Disks Matthias Niemann Fachbereich Mathematik und Informatik Institut für Informatik 30.01.09 Solid State Disk Überblick Massenspeicher ohne bewegliche Mechanik

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Frühjahr. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer. - Prüfungsaufgaben -

Frühjahr. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer. - Prüfungsaufgaben - Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnummer Kennzahl: Kennwort: Arbeitsplatz-Nr.: Frühjahr 2000 46114 Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen - Prüfungsaufgaben - Fach: Einzelprüfung:

Mehr

LISE MEITNER GYMNASIUM NEUENHAUS UELSEN

LISE MEITNER GYMNASIUM NEUENHAUS UELSEN Entwurf eines schulinternen Curriculums im Fach Informatik für die Qualifikationsphase (Jahrgang 11 und 12) Für die Gestaltung des Informatikunterrichts in der Qualifikationsphase sind für das schulinterne

Mehr

Algorithmen und Programmieren II Einführung in Python

Algorithmen und Programmieren II Einführung in Python Algorithmen und Programmieren II Einführung in Python SS 2012 Prof. Dr. Margarita Esponda 1 Was ist Python? eine Skript-Sprache Anfang der 90er Jahre entwickelt. Erfinder: Guido van Rossum an der Universität

Mehr

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge

Mehr

FEINDLICHE VERWENDUNG

FEINDLICHE VERWENDUNG 1 2 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer Vorlesung 2: Modularität, Wiederverwbarkeit Programm für heute 3 Software Qualität 4 Software Qualität Modularität Wiederverwbarkeit

Mehr

Kontrollstrukturen - Universität Köln

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,

Mehr

12. ArcView-Anwendertreffen 2010. Workshop Programmierung in ArcGIS. Daniel Fuchs. Wo kann eigene Programmierung in ArcGIS verwendet werden?

12. ArcView-Anwendertreffen 2010. Workshop Programmierung in ArcGIS. Daniel Fuchs. Wo kann eigene Programmierung in ArcGIS verwendet werden? Wo kann eigene Programmierung in ArcGIS verwendet werden? 12. ArcView-Anwendertreffen 2010 Workshop Programmierung in ArcGIS Daniel Fuchs 1) Makros für die Automatisierung einzelner Arbeitsschritte im

Mehr

TAFS_SEPA = class(tcomponent)

TAFS_SEPA = class(tcomponent) TAFS_SEPA = class(tcomponent) Funktionsumfang: - SEPA Überweisungen - SEPA Lastschriften (B2C) - SEPA Firmenlastschriften (B2B) erzeugen - IBAN Berechnungen aus Blz und Kontonummern (Länderübergreifend)

Mehr

Delphi Grundkurs Seite 31

Delphi Grundkurs Seite 31 Delphi Grundkurs Seite 31 Beispiel 9 Notenanalyse Problem: Programm P09 Schulnoten in Editfeld eingeben: bei wird Text in Zahl x umgewandelt; Bei Eingabefehler (x < 1 oder x > 5 oder x nicht numerisch)

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

Mehr

Beispiel einer Übersetzung

Beispiel einer Übersetzung Beispiel einer Übersetzung Ausdruck in C aktuelle_zeit = Startzeit + vergangene_minuten*60 + vergangene_sekunden; Ausdruck im Instruktionssatz des R10000 LW r1,minuten LW r1,sekunden ADDI r2,r0,60 ADD

Mehr

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor Inhaltsverzeichnis Vorwort 1 Was ist Delphi? 1.1 Die Wurzeln von Delphi 1.2 Der Konkurrent - Visual Basic 1.3 Die komponentenbasierte Entwicklung 1.4 Object-Pascal 2 Programmieren mit Delphi 2.1 Das ))visuelle((

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Ü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

Mehr

1.1 Was für Funktionen gibt es in der Unit Math?

1.1 Was für Funktionen gibt es in der Unit Math? mitp Seitenanzahl 13 Die Unit Math 1 Die Unit Math Die Unit Math stellt an die 100 Funktionen für mathematische Berechnungen zur Verfügung. Das schöne daran ist, das der Source verfügbar ist und zwar ist

Mehr

Suchen in Listen und Hashtabellen

Suchen in Listen und Hashtabellen Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

DV-Grundlagen Programmieren in Turbo-Pascal, Delphi-Pascal, Visual Basic, HTML und JavaScript. Betriebssystem MS-DOS Windows DV-Anwendungen

DV-Grundlagen Programmieren in Turbo-Pascal, Delphi-Pascal, Visual Basic, HTML und JavaScript. Betriebssystem MS-DOS Windows DV-Anwendungen Dr. K. Haller Turbo-Pascal Kap. 0: Gliederung 0.1 Skriptum zur Vorlesung und zum Praktikum Datenverarbeitung DV-Grundlagen Programmieren in Turbo-Pascal, Delphi-Pascal, Visual Basic, HTML und JavaScript

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 8, Donnerstag 11. Dezember 2014 (Cache-Effizienz, Teile und Herrsche) Junior-Prof. Dr.

Mehr

Einführung in die Informatik I

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

Mehr

Mehrdimensionale Arrays...16 Records...16 Was sind Records?...16 Wie funktionieren Records?...17 Die with-anweisung...17 Varianten...

Mehrdimensionale Arrays...16 Records...16 Was sind Records?...16 Wie funktionieren Records?...17 Die with-anweisung...17 Varianten... I Inhaltsverzeichnis Vorwort...1 Delphi, was ist das?...1 Aufbau des Buches...1 Die Grundlagen...1 Der Schnelleinstieg...1 Die RAD Umgebung...1 Warum Pascal?...2 Warum Delphi?...2 Pascal...2 Grundlagen...2

Mehr

Aufabe 7: Baum-Welch Algorithmus

Aufabe 7: Baum-Welch Algorithmus Effiziente Algorithmen VU Ausarbeitung Aufabe 7: Baum-Welch Algorithmus Florian Fest, Matr. Nr.0125496 baskit@generationfun.at Claudia Hermann, Matr. Nr.0125532 e0125532@stud4.tuwien.ac.at Matteo Savio,

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Performanceanalyse der Artikeldarstellung

Performanceanalyse der Artikeldarstellung PhPepperShop - Performanceanalyse José Fontanil und Reto Glanzmann Performanceanalyse der Artikeldarstellung José Fontanil / Reto Glanzmann Januar 2003 Performanceanalyse Artikel anzeigen im PhPepperShop.sxw

Mehr

Seminar Finanzmathematik

Seminar Finanzmathematik Seminar Finanzmathematik Simulationen zur Black-Scholes Formel von Christian Schmitz Übersicht Zufallszahlen am Computer Optionspreis als Erwartungswert Aktienkurse simulieren Black-Scholes Formel Theorie

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Funktionaler Aufbau eines Computers Untersuchung von Delphi-Compilaten

Funktionaler Aufbau eines Computers Untersuchung von Delphi-Compilaten Funktionaler Aufbau eines Computers Im Folgenden soll der Weg untersucht werden, wie ein Programm, das von einem Compiler/Interpreter in Maschinencode übertragen wurde, schließlich vom Prozessor abgearbeitet

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

2. Die Darstellung von Algorithmen

2. Die Darstellung von Algorithmen 2. Die Darstellung von Algorithmen Aus den Einführungsbeispielen und Übungsaufgaben ist erkennbar, dass zur Darstellung von Algorithmen Grundelemente notwendig sind. Neben der Notation einzelner elementarer

Mehr

Seminar Finanzmathematik

Seminar Finanzmathematik Seminar Finanzmathematik Simulationen zur Black-Scholes Formel Seite 1 von 24 Zufallszahlen am Computer 3 Gleichverteilte Zufallszahlen 3 Weitere Verteilungen 3 Quadratische Verteilung 4 Normalverteilung

Mehr

Mit Windows beginnen. Windows 7. Die neue Benutzeroberfläche (seit 2009) Windows 7 - Grundlagen 1

Mit Windows beginnen. Windows 7. Die neue Benutzeroberfläche (seit 2009) Windows 7 - Grundlagen 1 1 Mit Windows beginnen Windows 7 Die neue Benutzeroberfläche (seit 2009) Windows 7 - Grundlagen 1 1 Mit Windows beginnen Sicheres Kennwort Zufällige Zeichenfolge Mindestens 8 Zeichen, jedes zusätzliche

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

5. Programmieren mit Pascal

5. Programmieren mit Pascal 5. Programmieren mit Pascal 5.0. Einführung 5.0.1. Die Datenorganisation Das Betriebssystem auf unserer vernetzten Rechneranlage heißt Windows XP. Ein Betriebssystem versetzt als Basisprogramm den Rechner

Mehr

Einführung in die Java- Programmierung

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

Mehr

Kapitel 7: Formaler Datenbankentwurf

Kapitel 7: Formaler Datenbankentwurf 7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen

Mehr

SSDs als Cache für HDDs

SSDs als Cache für HDDs SSDs als Cache für HDDs CacheCade vs. BCache Dirk Geschke Linux User Group Erding 23. Oktober 2013 Dirk Geschke (LUG-Erding) SSD-Cache 23. Oktober 2013 1 / 71 Gliederung 1 Einleitunng 2 HDD Hard-Disk-Drive

Mehr

Beispiel: Verschlüsseln eines Textes mit Grafik

Beispiel: Verschlüsseln eines Textes mit Grafik Algorithmus Ein Algorithmus (auch Lösungsverfahren) ist eine formale Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen in endlich vielen Schritten. Algorithmen sind

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE 1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS

Mehr

Ruby. Erfinder: Yukihiro Matsumoto Japan 1993 Einflüsse: Smalltalk Perl Eigenschaften: Objektorientiert Interpretiert

Ruby. Erfinder: Yukihiro Matsumoto Japan 1993 Einflüsse: Smalltalk Perl Eigenschaften: Objektorientiert Interpretiert Ruby Erfinder: Yukihiro Matsumoto Japan 1993 Einflüsse: Smalltalk Perl Eigenschaften: Objektorientiert Interpretiert I believe that the purpose of live is, at least in part, to be happy. Based on this

Mehr

Histogramme in der Datenbankoptimierung. Marian Marx 26.06.2008

Histogramme in der Datenbankoptimierung. Marian Marx 26.06.2008 Histogramme in der Datenbankoptimierung Marian Marx 26.06.2008 Inhaltsverzeichnis 1. Histogramme im Allgemeinen 1.1 Definition Histogramm 1.2 Beispiel Histogramm 2. Histogramme in der Datenbankoptimierung

Mehr