5.6. Programmstrukturen, Struktogramme und Programm-Ablaufpläne - PAP history menue Letztmalig dran rumgefummelt: 14.03.18 10:13:52
So komplex Programme in ihrer Logik auch sein mögen - sie sind auf nur drei Grundstrukturen zurück zu führen. Zwei davon kennen noch jeweils Unterordnungen, auf die man aber teilweise auch verzichten könnte. Diese allerdings als Laie noch datenflusstechnisch verfolgen zu können, kann schon mit wenigen Programmzeilen unmöglich werden. Klar ist, dass hier Erfahrung nur durch Erfahrung  sowie der geschulte Blick nur durch eben selbigen zu ersetzen ist.

1. Allgemeines
2. Geradeausprogramme - Sequenzen
3. Verzweigungen - Alternativen
4. Programmschleifen - Zyklen
5. Unterprogramme - Subroutinen
6. Interrupt-Service-Routinen - ISR
7. Editoren für Struktogramme und Ablaufpläne
8. Weblinks
9. Verwandte Themen

die Informatikseiten

Logo der Struktogramme

begrenzt verwendbar - selbst aufpassen, ab welcher Stelle es Blödsinn wird ;-)

Wissen für Fortgeschrittene der Informatik

Informatik-Profi-Wissen

Quellen:

Ablaufplan, wie ich mich morgens anziehe ;-)

Nassi-Shneiderman Diagramme sind ein graphisches Hilfsmittel, den teilweise komplexen Ablauf von Ereignissen zu beschreiben. In der Informatik werden Diagramme verwendet, um die Struktur von Programmen darzustellen. Außerdem benutzt man Flow-Charts. Eine genaue Beschreibung kann in [I. Nassi and B. Shneidermann, "Flowchart techniques for structured programming", ACM SIGPLAN Notices, vol. 8, pp. 12-26, Aug. 1973] nachgelesen werden.

Funktioniert der Computer?

Funktioniert der Computer? - hier als CDR-Datei


1. Allgemeines history menue scroll up

Nur drei wirklich verschiedene "Denkstrukturen" und somit auch Strukturen für "Ablaufpläne" - denn nichts anderes sind Programme - sind notwendig, um unsere Welt in Zusammenhängen komplex und doch mathematisch fassbar zu beschreiben.

Struktogramme und Ablaufpläne zum Ersten ...

Struktogramme und Ablaufpläne zum Zwetten ...

Grafische Lösung von Struktogrammen

Struktogramme und Ablaufpläne selbst gemacht ...

Struktogramme mit CorelDraw 11

Struktogramme und Ablaufpläne selbst gemacht ...

Struktogramme mit CorelDraw 11

Grafische Lösung von Programm-Ablaufplänen DIN 66001

Programm-Ablaufplan - PAP.

 

Struktogramme mit CorelDraw 11


2. Geradeausprogramme - Sequenzen history menue scroll up
Das ist am Anfang die wohl häufigste Programmstruktur - man kennt sie von jeder Schrittfolge zur Lösung jeder Aufgabe aus der Mathematik oder Geometrie. Wichtig ist, das einzelne Schritte evtl. austauschbar, jedoch keine Entscheidungen innerhalb des Ablaufes zu treffen sind.

grafische Struktur der Programmsequenzen


3. Verzweigungen - Alternativen history menue scroll up
Verzweigungen können entweder einfach oder aber mehrfach sein - in jedem Falle wird jedoch eine logische Aussage, welche auch noch extrem komplex verknüpft sein kann, zur Entscheidung herangezogen. Jede Logikaufgabe funktioniert nach diesem Schema.
Wir unterscheiden einfache unvollständige sowie einfache vollständige und mehrfache Alternativen.

grafische Struktur der unvollständigen Alternative

grafische Struktur der vollständigen Alternative

grafische Struktur der mehrfachen Alternative

Einfache Alternative unvollständig - IF bedingung THEN anweisungen

if bedingung
then
begin{begin of then}
anweisungsfolgen;
end;{end of then}

Einfache Alternative vollständig - IF bedingung THEN anweisungen ELSE anweisungen

if bedingung
then
begin{begin of then}
anweisungsfolgen;
end{end of then}
else
begin{begin of else}
anweisungsfolgen;
end;{end of else}

Mehrfache Alternative - CASE selector OF anweisungen ELSE anweisungen

case selector of
  erste_bedingung:
  begin{begin of branch zweigname}
    anweisungsfolge;
  end;{end of branch zweigname}
  zweite_bedingung:
  begin{begin of branch zweigname}
    anweisungsfolge;
  end;{end of branch zweigname}
  dritte_bedingung:
  begin{begin of branch zweigname}
    anweisungsfolge;
  end;{end of branch zweigname}
   ELSE
   begin{begin of else}
     anweisungsfolge;
   end;{end of else}
end;{end of case}


4. Programmschleifen - Zyklen history menue scroll up
Das zweite Stützbein der strukturierten Programmierung - das Wiederholen des ewig gleichen mit nur geringfügig anderen Parametern. Das ist fast so wie der Urlaub auf Ibiza, jedes Jahr gleich, aber doch jeweils um ein Jahr älter!!!
   
  • zählt zu den abweisenden Schleifen - es muss also nicht mit Notwendigkeit mindestens einmal die das Programmelement innerhalb der Schleife abgearbeitet werden
  • anwendbar ausschließlich in genau definierten und somit bekannten Programmteilen und ausschließlich nur das eine Programmelement kann mehrfach mit jeweils veränderlichen Parametern wiederholt werden
  • die Anzahl der Schleifendurchläufe ist vor Schleifeneintritt genau bekannt - die Nullmenge ist per Definition mit eingeschlossen

grafische Struktur des FORTO-Zyklus

   
  • zählt zu den nicht-abweisenden Schleifen - es muss also mit Notwendigkeit mindestens einmal die das Programmelement innerhalb der Schleife abgearbeitet werden
  • anwendbar besonders in nicht genau definierten und somit bekannten Programmteilen und ausschließlich nur das eine Programmelement kann mehrfach mit jeweils veränderlichen Parametern wiederholt werden
  • die Anzahl der Schleifendurchläufe ist vor Schleifeneintritt nicht genau bekannt - die Nullmenge ist per Definition nicht mit eingeschlossen

grafische Struktur des REPEAT-UNTIL-Zyklus

   
  • zählt zu den abweisenden Schleifen - es muss also nicht mit Notwendigkeit mindestens einmal die das Programmelement innerhalb der Schleife abgearbeitet werden
  • anwendbar ausschließlich in genau definierten und somit bekannten Programmteilen und ausschließlich nur das eine Programmelement kann mehrfach mit jeweils veränderlichen Parametern wiederholt werden
  • die Anzahl der Schleifendurchläufe ist vor Schleifeneintritt genau bekannt - die Nullmenge ist per Definition mit eingeschlossen

grafische Struktur des WHILE-DO-Zyklus


5. Unterprogramme - Subroutinen history menue scroll up
Unterprogramme und diese als solche zu erkennen, sind das Salz in der Suppe der Programmierung. In den Hochsprachen faktisch von vornherein so aufgebaut, muss man solche wiederkehrenden Strukturen auf Maschinenebene erst einmal finden und geschickte Parameter-Weitergabe organisieren.
Subroutinen sind der große Bruder der Zyklen - sie werden wiederholt ausgeführt. Im Gegensatz zu diesen allerdings an nicht gleicher Programmstelle. Einige Programmiersysteme unterscheiden zwischen Prozeduren und Funktionen - andere, wie BASIC nehmen das in einem Aufwasch
Funktionen - besonders interessant, da rekursiv sinnvoll einsetzbar
Prozeduren - sie können mehr als einen Parameter zwischen Hauptprogramm sowie rufender Prozedur auch mit verschiedenen Datentypen vermitteln - wir unterscheiden dann Werteparameter (Value-Parameters) und Übergabeparameter (Referenz-Parameters)

6. Interrupt-Service-Routinen history menue scroll up
... das sind auch Subrotinen, allerdings mit einer etwas erweiterten Eigenschaft. Sie sind nämlich in der Lage
Subroutinen sind der große Bruder der Zyklen - sie werden wiederholt ausgeführt. Im Gegensatz zu diesen allerdings an nicht gleicher Programmstelle.

7. Editoren für Struktogramme und Ablaufpläne history menue scroll up

Struktogramme sind grafische Veranschaulichungen von Programmabläufen - man kann sie einfach per Hand oder mit einem Grafikprogramm wie CorelDraw entwickeln, Dabei sind sind besonders Ablaufpläne gar keine Erfindung der Informatik - jeder Bauablauf oder technologische Plan unterliegt genau den selben Anforderungen - und das allerschönste ist, das er auch genau die selben Strukturen nutzt, was allerdings nur kurzzeitig wundern darf, denn schließlich sollen Programme ja reale Abläufe nachbilden bzw. vordenken ;-)
Schaltjahr Definition:

Die erste Daumenregel (die wir Gaius Julius Caesar immerhin bereits aus dem Jahre 46 v. Chr. zu verdanken haben) lautet: Ist eine Jahreszahl ohne Rest durch 4 teilbar, ist das Jahr ein Schaltjahr. Da diese Definition später als zu ungenau erkannt wurde, wurde (erst am 24. Februar 1582) von Papst Gregor XIII der Gregorianische Kalender verkündet, der nicht nur die Berechnung des Ostersonntags komplizierter als zuvor regelte, sondern auch die bis dahin bestehende 10-minütige Ungenauigkeit eines Jahres korrigierte: Ab diesem Datum galten neben der bekannten Definition nur solche restfrei durch 100 teilbare Jahre als Schaltjahre, die auch durch 400 glatt teilbar waren.

  • d.h. das Jahr 1600 ist ein Schaltjahr,
  • das Jahr 1700 ist zwar durch 4 teilbar , ist aber nicht durch 400 teilbar , somit ist es kein Schaltjahr
  • das Jahr 1800 ist zwar durch 4 teilbar , ist aber nicht durch 400 teilbar , somit ist es kein Schaltjahr
  • das Jahr 1900 ist zwar durch 4 teilbar , ist aber nicht durch 400 teilbar , somit ist es kein Schaltjahr
  • das Jahr 2000 ist durch 4 teilbar und ist durch 400 teilbar , somit ist es ein Schaltjahr

Teilbar heißt in diesem Fall ohne Rest teilbar.

Der Gregorianische Kalender

Struktogramm zur Berechnung des Schaltjahres

Programm-Ablaufpläne Struktogramme

WIKIPEDIA-Seite für Programmablaufpläne

WIKIPEDIA-Seite für Nassi-Schneidermann-Diagramme

insgesamt arbeit eich mit diesen drei kleinen Teilen, welche Freeware sind und sich für die Lösung meiner Softwareentwicklungs-Probleme hervorragend eignen, andere Probleme lösen wir mit anderen Werkzeugen ;-)

der NSD-Editor


8. Weblinks zum Thema history menue scroll up

 
 


9. Verwandte Themen history menue scroll up

Hier kann man eigentlich hinschreiben: Pauschal alles, was mit Programmierung zu tun hat - einschließlich der Worst-Case-Planung. Wir beschränken uns auf das, was in diesem bereich ausgearbeitet und einigermaßen auf Stand ist.
Bereich höhere Programmiersprachen

Worst-Case-Denken

ASide-Assembler

 
Bereich Programmierungstechnik

Programme

Programmierung

Programmiersprachen

Software-Engeneering

Datentypen - sind ja auch besond're Typen gewesen ;-)

EVA-Prinzip & Objekt-, Attribut-, Operatiosnbeziehung

Modultechnik

Intel-Interrupt-Logo

 



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Juni 2006

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist

Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-)