71
Algorithmierung GRUNDLAGEN DER WIRTSCHAFTS- INFORMATIK

Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Embed Size (px)

Citation preview

Page 1: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Algorithmierung

GRUNDLAGEN DER

WIRTSCHAFTS-INFORMATIK

Page 2: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung.

Sie Erfordert aus diesem Grund Verständnis für Geschäftsprozesse und Programmabläufe.

Kenntnisse der Algorithmierung sowie der betrieblichen Anforderungen sind notwendig, um eindeutige Arbeitsunterlagen für die Programmierung zur Verfügung stellen zu können.

Einleitung◦Wirtschaftsinformatik

Page 3: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Ein Algorithmus ist eine endliche, eindeutige Folge von Arbeitsschritten, die eine Klasse von gleichartigen Problemen lösen soll.

Ein Algorithmus ist eine Verfahrensweise zur Lösung von Problemstellungen.

Algorithmierung ist ein kreativer Prozess, der nicht automatisierbar ist.

Algorithmieren stellt das Programmieren im Großen dar.

Durch Algorithmierung wird mit zulässigen Arbeitsschritten ein allgemeiner Lösungsweg erstellt.

Algorithmierung

Page 4: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Ein Programm ist ein in einer Programmiersprache dargestellter Algorithmus.

Eine Programmiersprache überträgt die einzelnen Schritte eines Algorithmus in die Maschinensprache des Computers.

Programmiersprachen können nach den Anforderungen ausgewählt werden. zB:◦ Naturwissenschaftlich-technische Anwendungen◦ Kaufmänische Aufgabenstellungen◦ Systemnahe Anwendungen◦ Wissensverabeitende Anwendungen.

Programm und Programmiersprache

Page 5: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Im Gegensatz zur Algorithmierung (Programmierung im Großen), wird bei der Programmierung im Kleinen je nach Programmiersprache der Algorithmus schrittweise verfeinert.

Programmierung bei denen das „Wie“ zur Lösung der Problemstellung im Vordergrund steht wird prozedurale Programmierung bezeichnet.

Diese Programmiersprachen werden Sprachen der 3. Generation genannt.

Programmieren im Kleinen

Page 6: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Schrittweise Verfeinerung◦ Zerlegung in beherrschbare Teilaufgaben (Module)◦ Ab einer bestimmten Modulgröße ermöglicht die

Programmiersprache eine Beschreibung der Teilaufgabe.

◦ Module können abgeändert und wiederverwendet werden.

Konstruktion eines Algorithmus

Page 7: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Top-Down-Entwicklung◦ Betrifft die zeitliche Abfolge der Algorithmierung ◦ Vollständige Problembeschreibung mit

zunehmenden Detaillierungsgrad◦ Ab einer bestimmten Modulgröße ermöglicht die

Programmiersprache eine Beschreibung der Teilaufgabe. (diese Module stehen an unterster Stelle.

Konstruktion eines Algorithmus

Page 8: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Ablaufsteuerung ist das Zusammenspiel der einzelnen Lösungsschritte:◦ Als Aufeinanderfolge (Sequenz)◦ Als Wiederholung (Iteration)◦ Als alternative Ausführung (Alternative)

Diese Prinzipien der Konstruktion werden strukturierte Programmierung genannt.◦ Ziel ist es einen Programmcode mit der

größtmöglichen Übersicht zu erstellen defensiver Ansatz des Programmierens (Nachvollziehbarkeit durch Dritte)

Konstruktion eines Algorithmus

◦Zusammenfassung

Page 9: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Eine Prozedur kann durch Auswahl des Algorithmus mit dem günstigsten Zeitverhalten optimiert werden.

Ein Algorithmus kann durch die Zeitkomplexität T(n) bewertet werden.

n stellt die Zahl der zu bearbeitenden Datenelemente dar.

Bewertung von Algorithmen

◦T(n) ~O[f(n)]

Für zunehmendes n wächst die Zeit T in der gleichen Größenordnung (O) wie f(n). F(n) stellt eine obere Schranke

dar.

Page 10: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

O(logn)<O(n)<O(n*logn)<O(n²)<

Bekannte obere Schranken ausgedrückt als mathematische Funktionen sind:◦ f(n) = log n◦ f(n) = n * log n◦ f(n) = n◦ f(n) = n²◦

Die Zeitkomplexität O[f(n)] verhält sich wie:

Bewertung von Algorithmen

nenf )(

)( neO

Page 11: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Nach einigen bekannten mathematischen Funktionen kann man die Zeitkomplexität einteilen in:

◦ Logarithmische Komplexität◦ Polynomische Komplexität◦ Exponentielle Komplexität.

Bewertung von Algorithmen

Verfahren mit logarithmischer Komplexität gelten als ideal, mit polynomischer als durchführbar und solche mit exponentieller als nicht akzeptabel.

Page 12: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Der Pseudocode:◦ Umgangssprachliche Formulierung der Lösungsschritte◦ <Wenn><Bedingung><dann>…<andernfalls>…

Der Programmierablaufplan◦ Auch Flussdiagramm genannt◦ Aber: zahlreiche Verzweigungen, schwierige

Zerlegbarkeit, schlechte Änderungsfähigkeit.

Darstellungsmittel für Algorithmen

◦Durch einfache Darstellung der Strukturelemente eines Algorithmus

sollen Beteiligte diese sinnvoll einsetzen können.

Page 13: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Schrittweise Verfeinerung und Zusammenfassung inhaltlich zusammenhängender Lösungsschritte.

Verschiedene Strukturblöcke können völlig unabhängig sein, oder völlig abhängig sein, indem sie in anderen enthalten sind. Eine teilweise Überlappung kommt nicht vor.

Ein Strukturblock hat genau einen Ein- bzw. Ausgang. Jeder Block kann aufgrund seiner Funktion benutzt

werden. Kenntnisse über seine Realisierung sind nicht notwendig.

Das StruktogrammStrukturierte Programmierung durch

das Blockkonzept mit Sequenz, Iteration und Alternative

Page 14: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Anweisungen werden üblicherweise in einem Strukturblock zusammengefaßt.

Eine Anweisung wird auch Befehl oder Command genannt.

Beispiele für Anweisungen sind:◦ Variablenzuweisungen ◦ Variablendeklarationen; zB Integer◦ Goto –Anweisungen◦ Ausgabeanweisungen: print, Show, WRITELN …◦ Bedingete Anweisungen: if then else

Der Strukturblock

Page 15: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Unabhängige Strukturblöcke können nur aneinandergereiht durchgeführt werden. (Sequenz)

Ein neuer Strukturblock entsteht durch Wiederholung eines inneren Strukturblocks aufgrund einer Bedingung.

Ein neuer Strukturblock entsteht, da wegen einer Bedingung nur einer von mehreren möglichen Strukturblöcken durchgeführt wird.

Das StruktogrammDas Prinzip der strukturierten

Programmierung

Ein so dargestellter Algorithmus besteht stets aus einer Folge von Strukturblöcken, die in sich strukturiert wieder aus einer Folge , einer

Wiederholung oder einer Alternative bestehen können.

Page 16: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Symbole für Struktogramme

Anm.: Schleife wird mindestens einmal durchlaufen.

Page 17: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Die Sequenz Pseudocode:

Blockanfang BLOCK 1Eingabe FaktorenFühre aus RechnenAusgabe ErgebnisBlockende Block 1

Page 18: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Die Iteration (Wiederholung, Zyklus, auch Schleife)

In Abhängigkeit einer Bedingung wird ein bestimmter Strukturblock mehrfach ausgeführt, wobei die steuernden Parameter sich ändern müssen.

Der Vorteil der Iteration liegt in der Möglichkeit die gleiche Operation vielfach auszuführen.

Es gibt 4 Grundformen der Iteration:

• (1) Wiederholung mit vorausgehender Bedingungsprüfung

• (2) Wiederholung in Abhängigkeit einer Zählvariablen

• (3) Wiederholung mit nachfolgender Bedingungsprüfung

• (4) Wiederholung ohne Bedingungsprüfung

Das Strukturelemente von Algorithmen

Page 19: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

(1) Die Iteration mit vorausgehender Bedingungsprüfung – kopfgesteuerte

Iteration Vor jedem Durchlauf wird die Bedingung überprüft. Steuervariable muss einen zulässigen Wert haben. Steuervariable wird in der Schleife verändert Iteration bis Ausführungsbedingung erfüllt ist. Beendigung erfolgt wenn Bedingung das erste Mal erfüllt

ist.

Die kopfgesteuerte Iteration wird angewandt wenn gewisse Schritte erst gar nicht durchlaufen werden sollen. Zum Beispiel Test einer Datei auf den Inhalt von Datensätzen um die Bearbeitung

einer leeren zu vermeiden.

Page 20: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen Pseudocode:

Blockanfang BLOCK 1Führe aus BLOCK_VOR_SCHLEIFEWiederhole solange

Ausführungsbedingung erfülltBLOCK_IN_SCHLEIFEFühre aus BLOCK_NACH_SCHLEIFEBlockende BLOCK 1

Page 21: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

(2) Die Iteration in Abhängigkeit einer Zählvariablen

Ist ein Spezialfall der geschlossenen (kopfgesteuerten) Iteration.

Abbruch bei Erreichen eines Endwertes. Zahl der Durchläufe ist damit vorher bekannt.

FOR <Index> = Anfangswert TO Endwert STEP Schrittweite DO <Strukturblock>.

Page 22: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

(3) Die Iteration mit nachfolgender Bedingungsprüfung – fußgesteuerte

Iteration Strukturblock wird vor der Bedingung ausgeführt.

Strukturblock wird mindestens einmal ausgeführt.

Wiederholung bis Endbedingung erfüllt ist.Enthält zum Beispiel ein Strukturblock eine

Variableneingabe, kann diese im Anschluss auf Zulässigkeit geprüft werden. Ist die Variable

unzulässig wird die Schleife wiederholt.

Beispiel: Wird die Eingabe einer österreichischen Postleitzahl gefordert, so läuft die Schleife bis eine vorhandene die Bedingung erfüllt.

Page 23: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen Pseudocode:

Blockanfang BLOCK 1Führe aus BLOCK_VOR_SCHLEIFEWiederhole BLOCK_IN_SCHLEIFEbis Endbedingung erfülltFühre aus BLOCK_NACH_SCHLEIFEBlockende BLOCK 1

Page 24: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

(4) Die Iteration ohne Bedingungsprüfung

Die „Bedingung“ ist stets wahr, dadurch wird eine Endlosschleife erzeugt.

Anwendungen finden sich in der Systemsteuerung Durch spezielle Befehle kann innerhalb des

Strukturblocks die Schleife verlassen werden (Exit).

x=0 Wiederhole solange „wahr“Blockbeginnx=x+1Wenn x gerade dann drucke xWenn x ungerade dann Rückkehr zum SchleifenanfangWenn x>15 dann verlasse Schleife Blockende

Endlosschleife

Page 25: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Die Alternative (Selektion)

Bedingte Durchführung von Alternativen Strukturblöcken in Abhängigkeit von Bedingungen.

If – then – else Bei sich ausschließenden Alternativen kann „else“

weggelassen werden.Falls Prozentsatz >= 96 dann Note=1Sonst falls Prozentsatz >= 80 dann Note=2Sonst falls Prozentsatz >= 66 dann Note=3Sonst falls Prozentsatz >= 50 dann Note=4Sonst Note = 5

Page 26: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Die Alternative (Selektion) Bedingte Durchführung von Alternativen

Strukturblöcken in Abhängigkeit von Bedingungen.

Pseudocode: Führe aus Block vor Alternative Wenn Artikel vorhanden Lieferung auslösenSonst Ersatzangebot machenFühre aus Block nach Alternative

Page 27: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Die Mehrfachalternative

Bei einer Fallunterscheidung wird genau der Strukturblock ausgeführt, bei dem die Bedingung zutrifft.

Case:100>=Prozentsatz>=96: Note=1 (Strukturblock 1)

96>=Prozentsatz>=80: Note=2 (Strukturblock 2) 80>=Prozentsatz>=66: Note=3 (Strukturblock 3) 66>=Prozentsatz>=50: Note=4 (Strukturblock 4) Prozentsatz<50: Note=5 (Strukturblock 5) Endcase (Blockende)

Page 28: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Die Mehrfachalternative

Pseudocode:Führe aus BLOCK_VOR_ALTERNATIVEFall: D<=7: Skonto gewährenFall: D<=28: BruttobetragSonst: VerzugszinsenFühre aus BLOCK_NACH_Alternative

Page 29: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Rekursive Algorithmen

Ein Algorithmus ist rekursiv, wenn er sich selbst aufrufen kann.

Damit sich so ein Algorithmus nicht selbst unendlich oft aufruft muß er ◦ Das Niveau seiner Ausführung ändern können, also

sich in ständig kleinerem Maßstab aufrufen können.◦ Er muß einfache Lösungsoperationen zulassen und

damit enden.

Page 30: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Das Strukturelemente von Algorithmen

Zusammenfassende Fragen

Welche Darstellungsmittel für Algorithmen kennen Sie?

Nennen Sie bekannte Symbole eines Struktogramms!

Auf welchen drei Kontrollstrukturen baut die strukturierte Programmierung auf?

Welche 4 Grundformen der Iteration gibt es? Worin liegt der Unterschied zwischen einer

Sequenz und einer Mehrfachalternative?

Page 31: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Beispiel Struktogramm

Der Elektriker Sommer führt Wartungsarbeiten an E-Anlagen vor Ort durch.

Den Kunden werden die Arbeiten nach folgendem Modus verrechnet:◦ Arbeitszeit € 40.-/h◦ Materialkosten: nach Aufwand◦ Anfahrt: € 1,2.- pro Kilometer, erst ab 20 km

Die Eingabe zur Erstellung der Rechnung soll über die Positionen Arbeitszeit, Material, Anfahrt ab 20km erfolgen. Anschließend soll die Summe gebildet werden.

Es sollen mehrere Rechnungen durch eine Nutzerbfrage nacheinander erstellt werden können.

Erstellen Sie ein Struktogramm zur Erstellung der Rechnungen.

Page 32: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Lösung – Struktogramm:

•Nachfolgende Bedingungsprüfung•Do-until-Schleife•Abfrage erfolgtim Nachhinein•Schleife wird mindestens einmal durchlaufen.

Page 33: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Beispiel zu den Bedingungen (Struktogramm)

Ein Personalwirtschaftssystem soll folgenden Programmablauf ermöglichen:

Nach Eingabe des Bruttobezuges und des Namens sollen der AN-Anteil und der AG-Anteil der Sozialversicherung berechnet werden.

Der SV-Satz vom Bruttobezug beträgt: ◦ Bis 374.- An=0, AG= 2,93%◦ Bis 4200.- AN=~18,07%, AG=~23,23%◦ Ab 4200.- Protzentsatz von der Höchstbeitragsgrundlage.

Erneute Eingabe zur Berechnung mehrerer ANs soll möglich sein.

Am Ende sollen die Gesamtsummen der AN-Beiträge und AG-Beiträge ausgegeben werden.

Erstellen Sie bitte ein Struktogramm!

Page 34: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Lösung – Struktogramm:

•Vorausgehende Bedingungsprüfung•Do-while-Schleife•Abfrage erfolgt eingangs•Schleife kann auch keinmal durchlaufen werden.

Page 35: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Vom Algorithmus zum Programm

GRUNDLAGEN DER WIRTSCHAFTSINFORMA

TIK

Page 36: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Elemente von Programmiersprachen

Grundlegende Operationen bei der Datenverarbeitung

Daten müssen in Abhängigkeit von Bedingungen eingelesen, verarbeitet, gespeichert und wieder ausgegeben werden können.

Jede Programmiersprache muß daher folgende Kategorien zur Verfügung stellen.◦ Variablen: Darstellung von Veränderlichen◦ Datentypen: Beschreibung der Eigenschaften von Objekten◦ Operatoren: für die Eingabe, Veränderung, Speicherung,

Ausgabe.◦ Kontrollstrukturen: Um die Abfolge von Schritten und

Blöcken darstellen zu können.

Page 37: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Herstellung eines lauffähigen Programms

AlgorithmusProgrammierspracheMaschinencode

Editor:◦ Dient zur Texterfassung von Programmen, dabei entsteht der

Quellcode (Sourcecode). Compiler:

◦ Übersetzt ein Programm (einer höheren Programmiersprache) als Ganzes in den Maschinencode. Die Objektdatei ist noch nicht lauffähig.

Linker: ◦ Bindet die Systembibliothek ein und macht aus dem compilierten

Objektcode ein lauffähiges Programm. Interpreter:

◦ Übersetzt eine höhere Programmiersprache Schritt für Schritt in einen ausführbaren Maschinencode. Dabei entsteht kein ausführbares Programm als Ganzes.

Page 38: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Testen von Programmen auf FehlerErproben eines Algorithmus mittels Testdaten

Syntaktische Fehler◦ Falsche Sprachregeln - werden vom Compiler angezeigt

Semantische Fehler◦ Funktion weicht von der Vorgabe ab.

Trockentest: ◦ Code-Inspection am Schreibtisch in früher Phase ◦ zB Variablendeklarationen, Schleifenterminierungen,

fehlende Initialisierungen, Datentypenkonflikte. Dynamischer Test: (setzt lauffähiges

Programm voraus)◦ (1) Ablaufbezogen◦ (2) Datenbezogen◦ (3) Funktionsbezogenes Testen

Page 39: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Testen von Programmen auf Fehler(1) Ablaufbezogener Test, (2) datenbezogene

Tests Ablaufbezogene Tests, sogenannte

White-Box-Tests beeinhalten:◦ Die Ausführung aller Anweisungen◦ Die Ausführung aller Ablaufzweige◦ Erfüllung aller Bedingungen und Wiederholung

aller Schleifen◦ Kombination aller Programmverzweigungen und

Programmschleifen, sog. Pfadtests. Datenbezogene Tests:

◦ Fachabteilung und Spezialisten stellen sinnvolle Datenkombinationen zum Testen zur Verfügung.

◦ zB. ein Wert der Mitte, Grenzwerte und unzulässige Werte.

Page 40: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Übersicht über Programmiersprachen:

Einteilung nach Generationen oder nach Programmierparadigmen.

Generation

Sprache Beispiel

1 Binäre Maschinensprache

2 Assemblersprache

3 Problemorientierte , prozedurale, imperative Sprachen

BASIC, PASCAL, FORTRAN, C

4 4GL-Sprachennichtprozedurale Sprachen

SQL, DELPHI

5 Deklarative (KI) Sprachen

LISP, PROLOG

Paradigma Beispiele

Prozedural BASIC; C; COBOL, FORTRAN, PASCAL

Logisch/ prädikativ

PROLOG

objektbasiert JavaScript

objektorientiert

Ada95, C++, Java, Smalltalk

Es können auch Compiler- Bzw. Interpreterbasierte Programmiersprachen unterschieden werden.

Page 41: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Übersicht über Programmiersprachen:

Mögliche Unterscheidungen sind compilerbasierte oder interpreterbasierte Sprachen.

Scriptsprachen wie Perl, Python, PHP sind für die zunehmende Internetprogrammierung von Bedeutung. (Kommandos werden in Scriptform im Klartext miteinander verbunden.)

HTML stellt keine eigene Programmiersprache im engeren Sinn dar, da sie weder über Variablen noch Kontrollstrukturen verfügt. Ähnliches gilt für XML.

Page 42: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Übersicht über Programmiersprachen:

Plattformunabhängigkeit des Quellcodes. Die Plattformanpassung erfolgt mittels Interpreterlauf.

.Net Initiative von Microsoft◦ Im komponentenbasierten Ansatz wird ein

neutraler Zwischencode erzeugt, der bei Aufruf in einen betriebsystemspezifischen Code umgewandelt und ausgeführt wird. Dieser neutrale Zwischencode oder auch Intermediate Language genannt, soll aus den unterschiedlichen .NET Programmiersprachen C#, C++ und Visual Basic entstehen.

Aktuelle Entwicklungen

Page 43: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grundprinzipien moderner Programmierung

ObjektorientierungGrafische Bedienoberflächen (GUI, Graphical User Interfaces).

Ereignissteuerung (Event Handling).

Arbeit in Projekten.

Page 44: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grundprinzipien moderner Programmierung

Die Objektmodellierung beginnt bereits in den frühen Phasen.

Jede Variable in einem Programm sowohl Bezeichnung als auch Datentyp enthalten.

Eigenschaften werden in Form von Attributen zu einer Verbundvariablen zusammengefasst.

Hier das Objekt Geschäftspartner:

Objektorientierung

};

.....

;OrtNeu[20](char SetzeOrt

();LiesOrt

(); LiesID

];NameNeu[20(char SetzName

(); LiesName

__________________

...

Ort[20];char

Name[20];char

ID;Partner int

{

artnerGeschäftspstruct

Page 45: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grundprinzipien moderner Programmierung

Objekte können auch in einer Klasse zusammengefasst werden

Das Schlüsselwort class ermöglicht auch: Kapselung Information Hiding Vererbung

Class Geschäftspartner

private:<Attribute>

private:<Methoden>

public:<Methoden>

private: Zugriffbeschränkung

public: externe Schnittstelle, kann von anderenKomponenten aufgerufen werden.

Page 46: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grundprinzipien moderner Programmierung

Datenkapselung◦ Attribute können nur über Zugriffsmethoden dieser Klasse

gelesen oder verändert werden - sie sind dadurch geschützter.

Information Hiding◦ Kenntnis über die Funktionalität der Schnittstelle Public-

Methoden reicht aus um zugreifen zu können. Interne Realisierung muß dabei nicht bekannt sein.

Vererbung◦ Bereits vorhandene Klasse kann durch hinzufügen von

weiteren Attributen und Methoden zu einer neuen Klasse entwickelt werden. Die bereits vorhandenen Eigenschaften der Basisklasse bleiben dabei erhalten.

Zusätzliche Mechanismen des Datentyps Klasse

Page 47: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grundprinzipien moderner Programmierung

Graphische Nutzerschnittstellen

Zur Bedienung der Software gibt es grafische Benutzerschnittstellen (GUI)

Toolboxen ermöglichen das einfügen von Steuerelementen (links im Bild)

Im Eigenschaftenfenster können Einstellungen vorgenommen werden (rechts unten)

Über einen Splittscreen können Formular und Quellcode betrachtet werden.

Die Error-List gibt das Ergebnis des Debuggings aus (unten)

Page 48: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grafische Nutzerschnittstelle VisualBasic.Net

Page 49: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Grundprinzipien moderner Programmierung

Event Handling

Das System reagiert nur auf festgelegte Ereignisse.

zB keyPressed, mouseClicked Die Ereignisbehandlungsprozeduren werden

dazu in der Programmlogik verankert.

Page 50: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Zusammenfassende Fragen

Stellen Sie die Schrittfolge zum Erstellen eines lauffähigen Programms dar.

Nach welchen Kriterien können Programmiersprachen eingeteilt werden.

Stellen Sie je eine Klassedefinition für Elektroartikel und Lebensmittel auf und leiten Sie gleiche sowie spezifische Attribute und Methoden durch Generalisierung (Ausklammern der gleichen Attribute) ab.

Page 51: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

EditierenCompilierenLinkenlauffähiges Maschinenprogramm oder: EditierenInterpretierenausführbares Maschinenprogramm ohne

speicherbaren Objektcode.

...};

);OrtNeu[20](char SetzeOrt

(); ller_IDLiesHErste

]);NameNeu[20(char SetzeName

(); LiesName

(); lIDLiesArtike

_ID[20];Herstellerchar

Name[20];char

[10];Artikel_IDchar

Artikel{ class

};(); ungLies_Leist

L);(int tungSetze_Leis

Leistung;int

{ Artikel public :ikelElektroart class

};(); llsdatumLies_Verfa

VD[3]);(char allsdatumSetze_Verf

tum[3];Verfallsdachar

{ kelpublicArti:smittelclassLeben

Klassen mit exemplarischen Attributen:

Page 52: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Sortier- und Suchalgorithmen

BubblesortQuicksortBisektion

Page 53: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Das Bubble-Sortverfahren

Benachbarte Schlüsselpaare werden verglichen und gegebenenfalls umgetauscht. So steigt der größere Schlüssel wie eine Blase auf.

Durchlauf

60 40 20 70 1. Durchlauf

40 60 20 70

40 20 60 70

40 20 60 70 2. Durchlauf

20 40 60 70

Page 54: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Das Quicksort-Verfahren – „Teile und herrsche!“

Nach Wahl eines Mittelwertes, wird links gesucht bis ein Element größer als die Mitte ist und rechts bis ein Element kleiner als die Mitte ist.

Danach kommt es zu einem rekursiven Aufruf und die grob vorsortierten Hälften werden nach dem gleichen Verfahren durchsucht.

Quicksort

19 3 18 22 6

6 3 18 22 19

Page 55: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Die Bisektion

Auch binäre Suche genannt, ist anwendbar auf sortierte Datenbestände. (ähnlich wie in einem Telefonbuch.)

Datenbestand wird in zwei Hälften geteilt um zu prüfen ob der Schlüssel sich im oberen oder im unteren Teil befindet usw. .

Die Suche endet wenn der Halbierungspunkt auf den gesuchten Schlüssel fällt oder wenn der Schlüssel nicht im Datenbestand vorhanden ist.

Die Zahl der Halbierungen ist auf log2 n beschränkt.

Page 56: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Verschlüsselungsalgorithmen

Bei Geschäftsdaten jeglicher Art besteht meist ein Interesse an Vertraulichkeit und Integrität.

Datensicherheit umfaßt:◦ Zugangssicherheit◦ Übertragungssicherheit

Praktisches Beispiel: Über EDI (Electronic Data Interchange) kann der branchentypische Geschäftsverkehr standardisiert über Netze elektronisch übertragen werden. (Rechnungen, Überweisungen, Mahnungen, Zollpapiere).

Page 57: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Sicherheitsanforderungen an den elektronischen Geschäftsverkehr

Vertraulichkeit◦ Nachricht ist nur für Befugte, nicht für Dritte.

Integrität (Unverfälschtheit)◦ Veränderung durch Dritte muß erkannt werden.

Verbindlichkeit◦ Sende- und Empfangsbeweis.

Authentizität (Zurechenbarkeit)◦ Nachweis der behaupteten Identität.

Gültigkeit (Dokument mit Zeitstempel)◦ Dokument ist keine Kopie und innerhalb der Zeit.

Page 58: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Sicherheitsmaßnahmen zur Erreichung der Anforderungen

Vertraulichkeit◦ Verschlüsselung mittels symmetrischer

Verfahren Integrität (Unverfälschtheit)

◦ Kontrolle durch eine Prüfsumme - eindeutige Zeichenkette wird mittels einer One-way-Hashfunktion aus der Nachricht berechnet.

Page 59: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Sicherheitsmaßnahmen zur Erreichung der Anforderungen

Authentizität (Zurechenbarkeit)◦ Sender und Empfänger tauschen jeweils ein

Passwort oder einen Schlüssel aus, der nur Ihnen bekannt ist, aber von der Gegenseite überprüft werden kann. Eine vertrauenswürdige Instanz (Trusted Third Party) muß dabei die sichere Schlüsselübergabe gewährleisten.

Page 60: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Wichtige Algorithmen der Informationsverarbeitung

Sicherheitsmaßnahmen zur Erreichung der Anforderungen

Gültigkeit (Dokument mit Zeitstempel)◦ Zur persönlichen Identifizierung und als Zeichen

der Integrität kann eine elektronische Unterschrift mit dem Dokument übersendet werden. (Vertraulichkeit wird dadurch nicht gewährt!)

Prinzip der elektronischen

Unterschrift:

Page 61: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Verschlüsselungsalgorithmen

Verschlüsselungsverfaheren

Dechiffrierung ist die inverse Operation der Chiffrierung

Je nach Art der Schlüssel unterscheidet man:◦ Symmetrische Verfahren◦ Asymmetrische Verfahren

2) Klartext :rungDechiffrie

)1,( Chiffrat :ngChiffrieru

Key ,f(Chiffrat

KeyKlartextf

Page 62: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Verschlüsselungsalgorithmen

Symmetrisches Verfahren

Der gleiche Schlüssel ‚K-Privat‘ dient zum ver- wie zum entschlüsseln.

Wie gelangt der Schlüssel sicher zum Empfänger? Sicherheit hängt von der Länge des Schlüssels ab.

Page 63: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Verschlüsselungsalgorithmen

Asymmetrisches Verfahren

Es gibt einen öffentlichen und einen privaten Schlüssel. K-Public kann zB in einem Verzeichnis öffentlich zugänglich gemacht

werden. Beide Schlüssel besitzen die Eigenschaften, dass sich:

◦ K-Public aus K-Privat leicht ermitteln läßt◦ K-Privat aus K-Public schwer ermitteln läßt

Aus diesem Grund braucht nur K-Privat geheim gehalten zu werden.

Page 64: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Verschlüsselungsalgorithmen

Hybride Verfahren

Asymmetrisches Verfahren ist bei großen Datenmengen langsamer als symmetrisches.

Der symmetrische Schlüssel wird asymmetrisch verschlüsselt und mit dem chiffrierten Dokument gemeinsam versandt.

Page 65: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Verschlüsselungsalgorithmen Digitale Signatur

Bei Authentifizierung und digitale Signatur spielt der Key-Privat die Hauptrolle.

Authentifizierungsverfahren: ◦ Zufallszahl wird verschicktVerschlüsselung mit dem

privaten Schlüssel beim Empfänger Entschlüsselung mit dem öffentlichen Schlüssel des ursprünglichen Senders der Zufallszahl.

Digitale Signatur:◦ Prüfsumme des Dokuments wird mit privatem Schlüssel

verschlüsselt und gemeinsam mit dem Dokument versandt.◦ Gegenseite entnimmt dem Dokument mit dem gleichen

Verfahren eine Prüfsumme (One-Way-Hashfunktion) und vergleicht sie mit der mitgeschickten Prüfsumme.

Page 66: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Kompressionsalgorithmen Verlustfreie Kompression

Insgesamt werden nur geringe Kompressionsraten erreicht.

Lauflängenkodierung (Run-Lenght-Encoding)◦ zB für Bilder mit großen gleichfarbigen Flächen◦ Neben einem Wert wird die Anzahl der Wiederholungen

gespeichert. Statische Kodierung

◦ Häufig vorkommende Zeichen werden durch kurze Bitfolgen codiert. (Gleiches Prinzip wie im Morsealphabet)

Dictionary-Kodierung◦ Längere Folgen von Zeichen werden mit kurzen Indizes

kodiert, die in einem Wörterbuch festgehalten werden.◦ Der Datenstrom besteht dann nur mehr aus Indizes.

Page 67: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Kompressionsalgorithmen

Verlustbehaftete Kompression

Das wieder dekomprimierte Dokument (Bild, Text, Audio, Video) entspricht nicht mehr dem Original.

Informationsverluste werden dort zugelassen, wo es am Wenigsten bemerkt wird. ZB◦ Nicht mehr wahrnehmbare Farbnuancen◦ Helligkeitsunterschiede werden eher wahrgenommen als

Farbunterschiede◦ Kanten mehr als Flächen◦ Laute Töne überdecken leise.◦ Geringfügige Informationsänderung bei bewegten Bildern.

Somit brauchen nur mehr die Differenzen gespeichert werden. Insgesamt nehmen die Verluste bei steigenden

Kompressionsraten zu.

Page 68: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Kompressionsalgorithmen

Verlustbehaftete Kompression

Prädikative Techniken (Vorhersagetechnik)◦ Vorhersage künftiger Werte aufgrund von bestehenden.

Übertragen werden nur die Differenzen zu den vorhergesagten Werten.

Frequenzorientierte Verfahren◦ Verschiedene Frequenzen im hörbaren wie im sichtbaren

Bereich werden unterschiedlich stark wahrgenommen. Subbandverfaheren, Diskrete KosinusTransformation.

Bedeutungsorientierte Verfahren◦ Setzen voraus, dass man die unterschiedlichen Bedeutungen

kennt. Filterung, variable Bizuweisung, Subsampling, Quantisierung.

Page 69: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Kompressionsalgorithmen Standbildkompression

JPEG (Joint Photographic Expert Group) ist ein Standard zur Kompression von Farbbildern.

Redundanzen innerhalb eines Bildes werden reduziert.

Besteht aus verlustfreien und verlustbehafteten Kompressionsverfahren.

Page 70: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Kompressionsalgorithmen

Videokompression

Bei der Videokompression kommt es zur Reduktion von Redundanzen zwischen den Bildern. (Interframekompression)

Da mehrere Bilder zusammen kodiert werden, kann es zu Einschränkungen beim zB Schnitt zur Folge.

MPEG1 (Motion Picture Expert Group) komprimiert Audio- und Videosequenzen mit 1,5MBit/s

Page 71: Algorithmierung. Wirtschaftsinformatik beinhaltet die Schnittstelle zwischen Fachabteilung und Programmierung. Sie Erfordert aus diesem Grund Verständnis

Kompressionsalgorithmen

Videokompression

Mit MPEG2 (DVD, digitales Fernsehen) und MPEG4 werden auch höhere Datenraten erzielt.

Die komprimierten Dateien werden stückweise ineinander geschachtelt (Interleaving) wodurch ein einzelner Datenstrom erzeugt wird.

MP3 ist ein MPEG-Audio Layer III der Frauenhofergesellschaft.

Es ist ein internetfähiges Austauschformat für Audiodateien, mit guter Wiedergabequalität, wodurch der einfache Austausch von Musiktiteln übers Internet ermöglicht wurde, was zu Problemen in der Musikindustrie geführt hat.