grundlagen der Wirtschafts- informatik

Slides:



Advertisements
Ähnliche Präsentationen
Programmierung: Einführung
Advertisements

Projekt 5 Prolog - Programmieren mit Logik
Hochschule Fulda – FB ET Sommersemester 2010
Einführung in die Programmierung Zusammenfassung
Foliensatz von A. Weber zur Vorlesung Informatik I, Bonn, 2002/03
9. Syntaxdiagramme und Backus-Naur-Form (BNF)
3. Kapitel: Komplexität und Komplexitätsklassen
2. Kapitel: Komplexität und Komplexitätsklassen
Inhaltsverzeichnis Einleitung zum Thema Was ist ein Lastenheft?
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Fachdidaktische Grundlagen
Wieviel Programmieren-Können braucht man in der Mathematiklehre? Arbeitsgruppe MU&I Ak der GDM Dillingen2005, Ltg: Haftendorn Teilnehmer: Epkenhans, Martin.
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Bedingte Wiederholung (Buch S119)
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Kurzüberblick über ereignisgesteuerte Prozessketten (EPK)
Kontrollfragen zu Kapitel 1
Einführung Inhalte dieses Kurses Generationen der Programmiersprachen
Vorgehensmodelle: Schwergewichtige Modelle
10. Vorlesung: Dynamische Konzepte
Subjektorientiertes BPM – Eine Methode revolutioniert das Business!
Anschauliche Mathematik mit Derive 6
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Dienstag, Markus Schoenen
Wirtschaftsinformatik (WI) an der CTS
Informatik eine 1.0 Einführung.
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Software und Programme
Entwicklung der Programmiersprachen
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Einführung in die Programmierung
Allgemeines zu Datenbanken
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
2.4 Rekursion Klassifikation und Beispiele
Programmieren in C Einführung
Wasserfallmodell und Einzelbegriffe
UML Modellierung des Verhaltens von Klassen und Objekten
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Modell der vollständigen Handlung aus Wikipedia
Algorithmen und Datenstrukturen Übungsmodul 8
Algorithmen und Datenstrukturen Übungsmodul 1
Starten der Entwicklungsumgebung (IDE)
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
Hochschule Fulda – FB ET Sommersemester 2014
„ Ein Programm mit Papier und Stift “
Software Engineering Grundlagen
Algorithmen und Datenstrukturen 1 SS 2002
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Das Java-Hamster-Modell
Software Engineering Struktogramme
Informatik in den dualen Studiengängen Prof. Dr. Michael Löwe.
IEC Ablaufsprache / Sequential Function Chart
Die 7 Management-Werkzeuge
Programmieren mit Variablen
Software-Entwicklung
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
P Erkenntnisgewinnung 5, 10, P Kommunikation 2, 7 P Kommunikation 8
Kontrollstrukturen von Algorithmen
 Präsentation transkript:

grundlagen der Wirtschafts- informatik Algorithmierung

Wirtschaftsinformatik Einleitung Wirtschaftsinformatik 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.

Algorithmierung 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.

Programm und Programmiersprache 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.

Programmieren im Kleinen 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.

Konstruktion eines Algorithmus 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 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 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) Zusammenfassung

Bewertung von Algorithmen 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. 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.

Bewertung von Algorithmen 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: O(logn)<O(n)<O(n*logn)<O(n²)<

Bewertung von Algorithmen Nach einigen bekannten mathematischen Funktionen kann man die Zeitkomplexität einteilen in: Logarithmische Komplexität Polynomische Komplexität Exponentielle Komplexität. Verfahren mit logarithmischer Komplexität gelten als ideal, mit polynomischer als durchführbar und solche mit exponentieller als nicht akzeptabel.

Darstellungsmittel für Algorithmen Durch einfache Darstellung der Strukturelemente eines Algorithmus sollen Beteiligte diese sinnvoll einsetzen können. Der Pseudocode: Umgangssprachliche Formulierung der Lösungsschritte <Wenn><Bedingung><dann>…<andernfalls>… Der Programmierablaufplan Auch Flussdiagramm genannt Aber: zahlreiche Verzweigungen, schwierige Zerlegbarkeit, schlechte Änderungsfähigkeit.

Das Struktogramm Strukturierte Programmierung durch das Blockkonzept mit Sequenz, Iteration und Alternative 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.

Der Strukturblock 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

Das Prinzip der strukturierten Programmierung Das Struktogramm Das Prinzip der strukturierten Programmierung 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. 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.

Symbole für Struktogramme Anm.: Schleife wird mindestens einmal durchlaufen.

Das Strukturelemente von Algorithmen Die Sequenz Pseudocode: Blockanfang BLOCK 1 Eingabe Faktoren Führe aus Rechnen Ausgabe Ergebnis Blockende Block 1

Das Strukturelemente von Algorithmen 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 (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.

Das Strukturelemente von Algorithmen Pseudocode: Blockanfang BLOCK 1 Führe aus BLOCK_VOR_SCHLEIFE Wiederhole solange Ausführungsbedingung erfüllt BLOCK_IN_SCHLEIFE Führe aus BLOCK_NACH_SCHLEIFE Blockende BLOCK 1

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>.

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.

Das Strukturelemente von Algorithmen Pseudocode: Blockanfang BLOCK 1 Führe aus BLOCK_VOR_SCHLEIFE Wiederhole BLOCK_IN_SCHLEIFE bis Endbedingung erfüllt Führe aus BLOCK_NACH_SCHLEIFE Blockende BLOCK 1

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“ Blockbeginn x=x+1 Wenn x gerade dann drucke x Wenn x ungerade dann Rückkehr zum Schleifenanfang Wenn x>15 dann verlasse Schleife Blockende Endlosschleife

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=1 Sonst falls Prozentsatz >= 80 dann Note=2 Sonst falls Prozentsatz >= 66 dann Note=3 Sonst falls Prozentsatz >= 50 dann Note=4 Sonst Note = 5

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ösen Sonst Ersatzangebot machen Führe aus Block nach Alternative

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)

Das Strukturelemente von Algorithmen Die Mehrfachalternative Pseudocode: Führe aus BLOCK_VOR_ALTERNATIVE Fall: D<=7: Skonto gewähren Fall: D<=28: Bruttobetrag Sonst: Verzugszinsen Führe aus BLOCK_NACH_Alternative

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.

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?

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.

Lösung – Struktogramm: Nachfolgende Bedingungsprüfung Do-until-Schleife Abfrage erfolgt im Nachhinein Schleife wird mindestens einmal durchlaufen.

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!

Lösung – Struktogramm: Vorausgehende Bedingungsprüfung Do-while-Schleife Abfrage erfolgt eingangs Schleife kann auch keinmal durchlaufen werden.

Vom Algorithmus zum Programm Grundlagen der Wirtschaftsinformatik Vom Algorithmus zum Programm

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.

Herstellung eines lauffähigen Programms AlgorithmusProgrammierspracheMaschinencode 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.

Testen von Programmen auf Fehler Erproben 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

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.

Ü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-Sprachen nichtprozedurale 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.

Ü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.

Übersicht über Programmiersprachen: Aktuelle Entwicklungen 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.

Grundprinzipien moderner Programmierung Objektorientierung Grafische Bedienoberflächen (GUI, Graphical User Interfaces). Ereignissteuerung (Event Handling). Arbeit in Projekten.

Grundprinzipien moderner Programmierung Objektorientierung 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:

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> <Methoden> public: private: Zugriffbeschränkung public: externe Schnittstelle, kann von anderen Komponenten aufgerufen werden.

Grundprinzipien moderner Programmierung Zusätzliche Mechanismen des Datentyps Klasse 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.

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)

Grafische Nutzerschnittstelle VisualBasic.Net

Grundprinzipien moderner Programmierung Event Handling Das System reagiert nur auf festgelegte Ereignisse. zB keyPressed, mouseClicked Die Ereignisbehandlungsprozeduren werden dazu in der Programmlogik verankert.

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.

EditierenCompilierenLinkenlauffähiges Maschinenprogramm oder: EditierenInterpretierenausführbares Maschinenprogramm ohne speicherbaren Objektcode. Klassen mit exemplarischen Attributen:

Wichtige Algorithmen der Informationsverarbeitung Sortier- und Suchalgorithmen Bubblesort Quicksort Bisektion

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 2. Durchlauf

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

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.

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).

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.

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.

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.

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:

Verschlüsselungsalgorithmen Verschlüsselungsverfaheren Dechiffrierung ist die inverse Operation der Chiffrierung Je nach Art der Schlüssel unterscheidet man: Symmetrische Verfahren Asymmetrische Verfahren

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.

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.

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.

Verschlüsselungsalgorithmen Digitale Signatur Bei Authentifizierung und digitale Signatur spielt der Key-Privat die Hauptrolle. Authentifizierungsverfahren: Zufallszahl wird verschicktVerschlü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.

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.

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.

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.

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.

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

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.