FB Technologie und Management Datenverarbeitung (D 1) (Kapitel 7 Programmierung) Darstellungsarten (DF) Datenflußplan (PA) Programmablaufplan (PN) Programmnetz (DN) Datennetz (PH) Programmhierarchie (DH) Datenhierarchie (KP) Konfigurationsplan 1 2 erarbeitung / erarbeitungseinheiten erarbeitungseinheit, allgemein (processing unit) Manuelle erarbeitung (manual operation) erzweigung (decision) Daten (Begriffe nach DIN 44 300) Daten, allgemein (data) Maschinell zu verarbeitende Daten (data to be processed by machine) Manuell zu verarbeitende Daten (data to be processed by manual operation) 3 4
erbindungen erbindung (line) erarbeitungsfolge Zugriffsmöglichkeit Zugriffsweg Über-/Unterordnung Zusammenfassung / Unterteilung Datenübertragungsweg (communication link) Darstellungshilfen Grenzstelle - zur Umwelt (terminator) (z.b. Beginn oder Ende einer Folge, Herkunft oder erbleib von Daten) erbindungsstelle (connector) Eine erbindung kann durch eine erbindungsstelle unterbrochen und an anderer Stelle derselben Darstellung mit einer erbindungsstelle mit gleicher Innenbeschriftung fortgesetzt werden. 5 6 Darstellungshilfen Bemerkung (annotation) Mit diesem Sinnbild kann erläuternder Text jedem anderen Sinnbild dieser Norm zugeordnet werden. Die durchbrochene Linie zum erläuternden Sinnbild darf durch eine olllinie ersetzt werden. DIN 66261 Struktogramme nach Nassi-Shneiderman G = Gemeinsamer Bedingungsteil B = Bedingung = erarbeitung N = Bezeichner des zu verlassenden umfassenden Sinnbildes n = natürliche Zahl größer oder gleich 2 7 8
DIN 66261 - Sinnbilder DIN 66261 - Sinnbilder 5.1 erarbeitung allgemein process 5.2 Folge serial 5.1.1 erarbeitung imperative 1 Folge serial 5.1.2 Block block 2 9 10 DIN 66261 - Sinnbilder 5.4 DIN 66261 - Sinnbilder Alternative selective choice 5.3 5.3.1 5.3.2 5.3.3 B B Wiederholung Wiederholung mit vorausgegangener Bedingungsprüfung Wiederholung mit nachfolgender Bedingungsprüfung Wiederholung ohne Bedingungsprüfung iterative pre-tested iteration post-tested iteration continuous iteration 5.4.1 5.4.2 B B1 1 G G 2 B2 5.4.3 B 1 G 1 B i i n-1 bedingte erarbeitung einfache Alternative n B n mehrfache Alternative monadic selective dyadic selective multiple exclusive selective 11 12
Compiler Binder und Lader 5 Bearbeitungsschritte (Übersetzungsphasen) Frontend Backend Lexikalische Analyse Syntaxanalyse Semantische Analyse Optimierungen Codeerzeugung Quellprogramm Folge von Symbolen Syntaxbaum Symbolliste, Zwischensprache Symbolliste, optimierte Zwischensprache Maschinenprogramm Übersetzer (Compiler) Quelldatei Quelldatei Quelldatei Binder (Linker) Gebundene Lader (Loader) ausführbares Programm im Hauptspeicher 13 14 Linker (Binder) Adressraum eines ablauffähigen Programms on der Aufgabe zum Ergebnis Adressen main() Sub1() Sub2()... Sub n () Bibliotheks-funktionen / Laufzeitsystem selbst geschriebene Funktionen A.) B.) C.) D.) E.) F.) Aufgabenstellung Algorithmische Aufbereitung Strukturdiagramm C-Programm Ergebnis Auswertungen globale ariablen Stack Heap 15 16
Programm Ein Programm ist eine eindeutige, formalisierte Beschreibung von Algorithmen und Datenstrukturen, die durch einen automatischen Übersetzungsprozess auf einem Computer ablauffähig werden. Den zur Formulierung eines Programms verwendeten Beschreibungsformalismus bezeichnen wir als Programmiersprache Algorithmus Ein Algorithmus ist eine endliche Menge von genau beschriebenen Anweisungen, die unter Benutzung von vorgegebenen Anfangsdaten in einer genau festgelegten Reihenfolge auszuführen sind, um die Lösung eines Problems in endlich vielen Schritten zu ermitteln. 17 18 Algorithmen Bestandteile und Eigenschaften, die zu einem Algorithmus gehören: 1. eine Menge von Objekten, die durch den Algorithmus bearbeitet werden. 2. eine Menge von Operationen, die auf den Objekten ausgeführt werden 3. ein ausgezeichneter Anfangszustand, in dem sich die Objekte zu Beginn befinden 4. ein gewünschter Endzustand, in dem sich die Objekte nach der Lösung des Problems befinden sollen. Euklidischer Algorithmus Beispiel: Gesucht ist der größte gemeinsame Teiler von m = 376 und n = 24 Schritt 1 [Restbildung] Dividiere m durch n und nenne den Rest r. (Es ist 0 <= r < n) Schritt 2 [Ende? ] Wenn r = 0 ist, dann ist n der gesuchte größte gemeinsame Teiler und der Algorithmus ist zu Ende. Schritt 3 [Ersetzung] Setze m = n und n = r und gehe zurück nach Schritt 1 Schritt m n r Start 376 24 - Gehe nach Schritt 1 Nach Schritt 1 376 24 16 Gehe nach Schritt 2 Nach Schritt 2 376 24 16 Gehe nach Schritt 3 Nach Schritt 3 24 16 16 Gehe nach Schritt 1 Nach Schritt 1 24 16 8 Gehe nach Schritt 2 Nach Schritt 2 24 16 8 Gehe nach Schritt 3 Nach Schritt 3 16 8 8 Gehe nach Schritt 1 Nach Schritt 1 16 8 0 Gehe nach Schritt 2 Nach Schritt 2 Der größte gemeinsame Teiler von 376 und 24 ist 8. Ende 19 20
GgT bestimmen Euklidischer Algorithmus und Bestimmung des Kg ertausche M und N Initialisiere M und N Nein z1 = 0 ODER z2 = 0 Abs(z1)<Abs(z2) Ja Nein r = z1 z1 = z2 z2 = r n = Abs(z1); r = Abs(z2); Ja Solange r > 0 m = n n = r r = Rest(m/n) Es gibt keine Lösung GgT = n 21