Bücher online kostenlos Kostenlos Online Lesen
Algorithmen

Algorithmen

Titel: Algorithmen
Autoren: Veikko Krypczyk
Vom Netzwerk:
1 Grundlagen und Implementierung von Algorithmen
    Wenn es etwas annähernd Beständiges in der Informatik gibt, dann sind es Algorithmen. Sie begegnen uns in den unterschiedlichsten Arten von Programmen, wie Spielen, Simulationen, CAD-Anwendungen, ja sogar in datenbankbasierten Geschäftsanwendungen, dort in Form von Sortier- und Suchfunktionen. Die Implementierung von Algorithmen ist nicht jedermanns Sache, setzt sie doch einige Grundlagenkenntnisse und mathematisches Verständnis voraus. Moderne Klassenbibliotheken helfen zwar, bieten jedoch keine Lösungen für den speziellen Fall.
    Das Verständnis und die Entwicklung von Algorithmen gehören zum grundlegenden Handwerkszeug eines Informatikers. In vielen Anwendungen werden (spezielle) Algorithmen benötigt. Grundsätzlich folgt der gesamte Ablauf eines Computerprogramms einem Algorithmus. Gemeint sind hier jedoch spezifische – teilweise komplexe – Algorithmen für die Lösung von Problemen, oft mathematischer Natur. Typische Vertreter sind Such- und Sortierverfahren, die eine gegebene Datenmenge nach bestimmten Regeln sortieren oder möglichst schnell auf das Vorhandensein bestimmter Informationen untersuchen. Andere Algorithmen basieren auf mathematischen Verfahren. Optimierungsprogramme errechnen kürzeste Wege und Laufzeiten oder bestimmen die bestmögliche Materialstärke von Werkstoffen. In Computerspielen suchen die virtuellen Gegner ihren Weg zum Ziel und wetteifern mit der Person vor der „Kiste“. Schachprogramme besiegen heute die besten menschlichen Spieler. Wo auch immer wir hinschauen, wir haben es überall mit Algorithmen zu tun. Nicht für alle ist ein explizites Analysieren und Aufarbeiten nötig, viele Algorithmen lassen sich ad hoc programmieren. Doch gelegentlich kann ein systematisches Vorgehen notwendig sein. Bei der Entwicklung von Algorithmen werden uns viele Fragestellungen beschäftigen, oftmals ist auf mathematische Inhalte zurückzugreifen. Starten wir deshalb mit einem Überblick zu den „Mathematikangeboten“ der Programmiersprachen. Danach gehen wir die grundsätzliche Entwicklung von Algorithmen systematisch an, bevor wir uns beispielhaft einen Überblick zu Sortier- und Suchalgorithmen verschaffen.
    Mathematische Unterstützung in den Programmiersprachen
    Die meisten Programmiersprachen und Klassenbibliotheken bieten bereits einen guten Fundus an Funktionen aus dem mathematischen Bereich. Neben den klassischen Rechenfunktionen finden sich auch Methoden für trigonometrische Berechnungen, zum Runden von Zahlen und vieles mehr. Für .NET ist es die Klasse Math . Tabelle 1 enthält eine Zusammenstellung wichtiger Methoden dieser Klasse. Für Delphi-Entwickler sind ebenfalls mathematische Funktionen verfügbar. Wir unterscheiden Konstanten, arithmetische und trigonometrische Routinen. Die meisten Routinen sind in der Unit Math , einige wenige in der Unit System verfügbar. Bitte studieren Sie dazu die Dokumentation der Sprache Delphi.
Methode
Kurzbeschreibung
Beispiele
Abs
Gibt den Absolutbetrag einer Zahl zurück.
Abs (-3) = 3
    Abs (3) = 3
Ceiling
Gibt die kleinste Ganzzahl zurück, die größer oder gleich der Zahl ist.
Ceiling (0.0) = 0
    Ceiling (0.8) = 1
    Ceiling (1) = 1
Floor
Gibt die größte Ganzzahl zurück, die kleiner oder gleich der Zahl ist.
Floor (2.1) = 2
    Floor (1.6) = 1
    Floor (1) = 1
Max
Gibt die größere von zwei angegebenen Zahlen zurück.
Max (2, 5) = 5
    Max (-3, 0) = 0
Min
Gibt die kleinere von zwei Zahlen zurück.
Min (2, 5) = 2
    Min (-3, 0) = -3
Round
Rundet einen Wert auf die nächste Ganzzahl oder auf die angegebene Anzahl von Dezimalstellen.
Round (1.45, 1) = 1.4
    Round (1.55, 1) = 1.6
    Round (3.45, 1, MidpointRounding.ToEven) = 3.4
    Round (3.45, 1, MidpointRounding.AwayFromZero) = 3.5
Sign
Gibt einen Wert zurück, der das Vorzeichen einer Zahl angibt. Das Ergebnis lautet -1, wenn die Zahl kleiner als 0 ist. Beträgt das Argument 0, so ist der Rückgabewert ebenfalls 0. Eine 1 wird zurückgeliefert bei Werten größer 0.
Sign (-4) = -1
    Sign (0) = 0
    Sign (4) = 1
Truncate
Berechnet den ganzzahligen Teil einer Zahl.
Truncate (-123.456) =123
    Truncate (2.4) = 2
    Tabelle 1: Wichtige Funktionen der Klasse Math aus dem .NET Framework
    Fertige Baukästen: Bibliotheken
    Als Alternative zur Eigenentwicklung ist es möglich, auf fertige Bibliotheken zurückzugreifen. Zur Nutzung dieser Möglichkeit müssen jedoch einige Voraussetzungen gegeben sein. Primär muss die gesuchte fachliche Funktionalität, zum
Vom Netzwerk:

Weitere Kostenlose Bücher