13.07.2012 Aufrufe

Informatik

Informatik

Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Informatik</strong><br />

Teil 1 – Wintersemester 2011/2012<br />

Prof. Dr.-Ing. habil. Peter Sobe<br />

Fachkultät <strong>Informatik</strong> / Mathematik<br />

Dieser Foliensatz wurde z.T. von Herrn Prof.<br />

Grossmann übernommen<br />

Inhalt<br />

1. Algorithmen - Wesen, Eigenschaften, Entwurf<br />

1.1 Einführende Beispiele<br />

1.2 Algorithmendefinition<br />

1.3 Beispiele für berechenbare und nicht berechenbare<br />

Funktionen<br />

1.4 Charakteristische Eigenschaften von Algorithmen<br />

2. Darstellung von Algorithmen mit Struktogrammen und<br />

Programmablaufplänen<br />

3. Spezielle Algorithmen<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

2


1.1 Einführende Beispiele<br />

Algorithmen<br />

Täglich werden Verarbeitungsvorschriften ausgeführt, die eine Weg<br />

beschreiben, wie ein gewünschtes Ergebnis erzielt werden kann.<br />

Solche Vorschriften sind:<br />

� Bedienungsanleitungen<br />

Bedienung eines Parkscheinautomaten, Login für ein<br />

Rechnernetz, Montageanleitung für Möbelstücke, usw.<br />

� Verhaltensvorschriften<br />

Verhalten bei Unfällen, Feueralarm, usw.<br />

� Rezepte<br />

Mischen von Farben, Kochen einer Speise, usw.<br />

� Rechenvorschriften<br />

Lösen eines Gleichungssystems, Berechnung eines elektrischen<br />

Stromkreises, Bestimmung von Flächeninhalten, usw.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

3<br />

Algorithmen<br />

Algorithmen sind spezielle Verhaltensvorschriften,<br />

die gewisse Mindestanforderungen erfüllen müssen.<br />

1.2 Algorithmendefinition<br />

In diesem Abschnitt soll der Algorithmenbegriff etwas genauer<br />

präzisiert werden. In der Literatur gibt es dazu verschiedene<br />

Definitionen.<br />

Drei solcher Definitionen sollen hier kurz angegeben werden:<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

4


Algorithmen<br />

1. Ein Algorithmus ist eine eindeutige Vorschrift zur Lösung einer<br />

Aufgabe. Die Vorschrift besteht aus einer Folge von Anweisungen.<br />

Die Anweisungen beziehen sich auf Operationen, die jeweils den<br />

nächsten Lösungsschritt veranlassen. Die Anzahl der auszuführenden<br />

Lösungsschritte ist endlich und ihre zeitliche Reihenfolge liegt fest.<br />

2. Ein Algorithmus ist eine präzise, d.h. in einer festgelegten Sprache<br />

abgefasste, endliche Beschreibung eines allgemeinen Verfahrens unter<br />

Verwendung ausführbarer elementarer Verarbeitungsschritte.<br />

3. Ein Algorithmus ist eine detaillierte und explizite Vorschrift zur<br />

schrittweisen Lösung eines Problems. Im einzelnen bedeutet dies:<br />

� Die Ausführung erfolgt in diskreten Schritten<br />

� Jeder Schritt besteht aus einer einfachen, offensichtlichen<br />

Grundaktion<br />

� Zu jedem Zeitpunkt muss eindeutig bestimmt sein, welche Schritte<br />

als nächste auszuführen sind.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

5<br />

Algorithmen<br />

Definition:<br />

Ein Algorithmus ist eine Vorschrift zur Lösung einer Klasse von<br />

Problemen. Er besteht aus einer endlichen Folge von Schritten,<br />

mit der aus bekannten Eingangsdaten neue Ausgangsdaten<br />

eindeutig berechnet werden können.<br />

Eigenschaften:<br />

� Die Definition zeigt den engen Zusammenhang mit<br />

Funktionen (Eingangsdaten → Ausgangsdaten).<br />

� Die Definition bindet den Algorithmus an die Lösung einer<br />

Klasse von Problemen und nicht an eine einzelne Aufgabe.<br />

Probleme:<br />

� Die Definition ist nicht exakt genug, sondern eher eine<br />

intuitive Charakterisierung des Algorithmenbegriffs.<br />

� Die Definition eines Algorithmus enthält keine Forderungen<br />

an die praktische Ausführbarkeit des Algorithmus<br />

auf einer realen Maschine (Rechner).<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

6


Algorithmen<br />

Schlussfolgerungen:<br />

� Ein Algorithmus berechnet eine Funktion.<br />

� Da die Menge der Funktionen überabzählbar unendlich<br />

ist, aber die Menge der Algorithmen abzählbar unendlich<br />

ist (GÖDEL), folgt dass es Funktionen geben muss,<br />

denen kein Algorithmus zugeordnet werden kann.<br />

Diese Funktionen sind also nicht berechenbar.<br />

Definition:<br />

Eine Funktion f heißt berechenbar, wenn es einen<br />

Algorithmus gibt, der für jedes Argument x den<br />

Funktionswert f(x) berechnet.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

7<br />

Algorithmen<br />

1.3 Beispiele berechenbarer und nicht berechenbarer Funktionen<br />

a) Berechne alle Primzahlen im Intervall [1,100] !<br />

Dieses Beispiel stellt eine berechenbare Funktion dar,<br />

der Algorithmus ist relativ einfach.<br />

b) Berechne die Funktionswerte der Funktion<br />

f(x+1) = 2 f(x) mit f(0)=0 für 6


Algorithmen<br />

1.3 Beispiele berechenbarer und nicht berechenbarer Funktionen<br />

(Fortsetzung)<br />

d) Berechne alle reellen Zahlen im Intervall [0,1]<br />

Dieses Beispiel stellt eine nicht berechenbare Funktion dar.<br />

Es kann bewiesen werden, dass solch ein Algorithmus nicht<br />

existieren kann.<br />

1.4 charakteristische Eigenschaften von Algorithmen<br />

An den Beispielen ist erkennbar, dass es zweckmäßig<br />

ist, an Algorithmen solche Forderungen zu stellen, dass<br />

sie auf realen Maschinen praktisch ausführbar werden.<br />

Im folgenden werden diese wichtigen Eigenschaften aufgeführt.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

9<br />

Algorithmen<br />

Endlichkeit<br />

Ein Algorithmus muss aus einer endlichen Anzahl von<br />

Lösungsschritten bestehen und nach Abarbeitung dieser<br />

endlich vielen Schritte nach einer endlichen Zeit das<br />

Ende erreichen.<br />

Eindeutigkeit<br />

Die einzelnen Schritte eines Algorithmus und ihre Aufeinanderfolge<br />

müssen eindeutig beschrieben sein.<br />

Allgemeinheit<br />

Ein Algorithmus darf nicht nur die Lösung einer speziellen Aufgabe<br />

(z.B. Lösung der Gleichung x² + 2x + 1=0) , sondern muss die<br />

Lösung einer Klasse von Problemen (z.B. die Lösung aller<br />

quadratischen Gleichungen ax² +bx +c =0) beschreiben.<br />

Determiniertheit<br />

Die mehrmalige Anwendung des Algorithmus mit denselben<br />

Eingangsdaten muss immer wieder dieselben Ausgangsdaten<br />

liefern.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

10


Algorithmen<br />

Effektivität<br />

Ein Algorithmus muss real von einer Maschine ausführbar sein.<br />

Effizienz<br />

Ein Algorithmus muss möglichst wenig Ressourcen einer Maschine,<br />

d.h. möglichst wenig Rechenzeit und möglichst wenig Speicher in<br />

Anspruch nehmen.<br />

In der <strong>Informatik</strong> wurden Effizienzmaße für Algorithmen, die sogenannte<br />

Zeit- und Speicherkomplexität entwickelt, mit der Algorithmen bewertet<br />

werden können. Dies ist praktisch sehr wichtig, da i.a. zur Berechnung<br />

einer Funktion mehrere Algorithmen angegeben werden können.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

11<br />

Inhalt<br />

0. Rechner und Programmierung für<br />

Kommunikationstechniker und Mechatroniker<br />

1. Algorithmen - Wesen, Eigenschaften, Entwurf<br />

2. Darstellung von Algorithmen mit Struktogrammen und<br />

Programmablaufplänen<br />

3. Spezielle Algorithmen<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

12


2. Die Darstellung von Algorithmen<br />

Aus den Einführungsbeispielen und Übungsaufgaben ist erkennbar, dass<br />

zur Darstellung von Algorithmen Grundelemente notwendig sind. Neben der<br />

Notation einzelner elementarer Aktionen/Anweisungen, wie z.B.<br />

- Gebe die Werte der Koeffizienten a,b,c ein<br />

sind auch logische Elementarstrukturen notwendig, die die zeitliche<br />

Ablauffolge darstellen, wie z.B. die Folge (Sequenz) von Anweisungen,<br />

wie z.B.<br />

1. Gebe die Werte der Koeffizienten a,b,c ein<br />

2. Berechne d = b*b – 4*a*c<br />

aber auch die Auswahl (Selektion)<br />

3. Falls d


formale Darstellung von Algorithmen<br />

Es wurden zwei verschiedene Darstellungsformen entwickelt, die<br />

hauptsächlich in Gebrauch sind und auf grafische Symbole<br />

zurückgreifen:<br />

� Programmablaufplan (abk. PAP)<br />

nach DIN 66001 (vgl. Bild 1)<br />

� Struktogramm nach Nassi und Shneiderman<br />

nach DIN 66261 (vgl. Bild 2)<br />

Beide repräsentieren eine sogenannte Syntax, die die<br />

Ausducksformen der Beschreibung formal spezifiziert.<br />

Die Bedeutung der Darstellung wird als Semantik bezeichnet.<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

15<br />

Algorithmus als Programmablaufplan<br />

Bild 1: Programmablaufplan<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

16


Bild 2:<br />

Struktogramm<br />

Algorithmus als Struktogramm<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

17<br />

Sequenz<br />

Struktogramm Programmablaufplan<br />

Anw_1<br />

Anw_2<br />

...<br />

Anw_n<br />

Anw_1<br />

Anw_2<br />

Peter Sobe <strong>Informatik</strong> 1 / Wintersemester 11/12<br />

18<br />

...<br />

Anw_n<br />

Das Wesentliche einer Sequenz besteht darin, dass sie nach<br />

außen wiederum nur eine einzige Aktion/Anweisung repräsentiert,<br />

obwohl sie intern aus einer Folge von Anweisungen (Anw) besteht.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!