Prozedurale Programmierung
Kursthemen
-
-
Daten zu Dauer, Klausur und allgemeine Organisation
-
-
-
Algorithmik
Bevor man den Code einer Problemlösung eingeben kann, muss man zunächst einen Lösungsweg kennen, der möglichst effizient zum Ziel führt.
Die Aufgabe:
"Lege aus den vorhandenen Teilen
eine Figur "
Der erste Entwurf für einen möglichen Lösungsweg:
Nimm ein erstes Teil und lege es hin.
Nimm, solange die Figur noch nicht vollständig ist, ein weiteres Teil und probiere durch Drehen oder Verschieben, ob es zur Figur passt.
Wenn man das Teil nicht passend platzieren kann, lege es zurück und nimm ein anderes Teil. -
Prüfungsrelevante Informationen zum Begriff Algorithmus bei der Lösung von computergestützten Problemlösungen
-
Beispiele für Algorithmen
Berechnen eines Schaltjahres
In vielen Anwendungen ist es notwendig zu berechnen, ob in einem Zeitraum der 29.Februar enthalten ist. Dazu muss man die Jahreszahl auf Schaltjahr prüfen.
Der gültige Algorithmus für einen Gregorianischen Kalender lautet:
Ein Jahr ist ein Schaltjahr, wenn es restlos durch 4 teilbar ist.
Falls sich die Jahrzahl durch 100 restlos teilen lässt, ist es kein Schaltjahr.
Falls auch eine Teilung durch 400 ganzzahlig möglich ist, dann ist es ein Schaltjahr.Einfaches Sortieren
Sehr häufig liegen Daten unsortiert vor. Vor der Weiterverarbeitung oder Ausgabe sollen die Datensortiert werden. Es gibt viele Sortierverfahren, deren Algorithmen bekannt sind.
Für einen simplen BubbleSort lautet der Algorithmus:
Beim Durchlaufen der Daten werden die jeweiligen Nachbarelemente miteinander verglichen und, falls das linke Element größer ist als das rechte, ausgetauscht. Am Ende des ersten Laufs befindet sich das größte Element am Feldende. Dieser Vorgang wird nun erneut gestartet, allerdings diesmal ohne das letzte Element. Danach hat man das zweitgrößte Element gefunden. Der ganze Vorgang wird nun so oft wiederholt, bis das gesamte Feld sortiert ist.Diesen Algorithmus kann man auch tanzen!
-
Kontrollstrukturen: Entscheidungen, Verzweigungen, Schleifen, Wiederholungen
Schon in den einfachen Beispielen für Algorithmrn fallen einige spachliche Konstruktionen auf, die wir immer wieder antreffen werden.
- Wiederhole bis
- Solange
- Wenn dann sonst
- Falls
- Wähle aus
- mit allen Elementen
Mit solchen Formulierungen, die man Kontrollstrukturen oder Steuerkonstrukte nennt, kontrollieren wir die Reihenfolge der Verarbeitung einzelner Anweisungen in einem Computerprogramm.
Kontrollstrukturen kann man in zwei Gruppen einteilen.
Das Steuerkonstrukt ist entweder eine Verzweigung oder eine Schleife. -
Schleifenkonstrukte wiederholen einen Block von Anweisungen– den sogenannten Schleifenrumpf oder Schleifenkörper –, solange eine definierte Bedingung erfüllt ist.
Ist die Bedingung der Schleife nicht mehr erfüllt ( bool -> false ) wird die Schleife verlassen.Schleifen, deren Schleifenbedingung immer zur Fortsetzung führen oder die keine Schleifenbedingung haben, sind Endlosschleifen.
-
Eine Verzweigung besteht aus einer Bedingung und einem oder zwei alternativen Codeabschnitten, die wiederum aus einer oder mehreren Anweisungen bestehen können.
Wird bei der Programmausführung die bedingte Anweisung erreicht, dann wird erst die Bedingung ausgewertet, und falls diese zutrifft und nur dann wird anschließend der passende Codeabschnitt ausgeführt. Trifft die Bedingung nicht zu, wird der alternative Codeausschnitt, soweit vorhanden, ausgeführt.
-
Verzweigungen und Schleifen innerhalb eines Algorithmus können beliebig oft geschachtelt werden.
Bei der Erstellung der persönlichen internationalen Bankkontonummer für jeden Kontoinhaber wird von der Bank die Prüfziffer elektronisch berechnet. Dazu werden in Deutschland die achtstellige Bankleitzahl, die zehnstellige Kontonummer und die zweistellige, alphanumerische Länderkennung benötigt. Kontonummern mit weniger als zehn Stellen werden mit führenden Nullen aufgefüllt.
Die Berechnung erfolgt in mehreren Schritten. Zuerst wird die Länderkennung um zwei Nullen ergänzt. Danach wird aus Kontonummer und Bankleitzahl die BBAN kreiert.
Anschließend werden die beiden Alpha-Zeichen der Länderkennung sowie weitere eventuell in der Kontonummer enthaltene Buchstaben in rein numerische Ausdrücke umgewandelt. Die Grundlage für die Zahlen, die aus den Buchstaben gebildet werden sollen, bildet ihre Position der jeweiligen Alpha-Zeichen im lateinischen Alphabet. Zu diesem Zahlenwert wird 9 addiert. Die Summe ergibt die Zahl, die den jeweiligen Buchstaben ersetzen soll. Dementsprechend steht für A (Position 1+9) die Zahl 10, für D (Position 4+9) die 13 und für E (Position 5+9) die 14. Der Länderkennung DE entspricht also die Ziffernfolge 1314.
Im nächsten Schritt wird diese Ziffernfolge, ergänzt um die beiden Nullen, an die BBAN gehängt. Diese bei deutschen Konten immer 24-stellige Zahl wird anschließend Modulo 97 genommen. Das heißt, es wird der Rest berechnet, der sich bei der Teilung der 24-stelligen Zahl durch 97 ergibt. Dieses Ergebnis wird von der nach ISO-Standard festgelegten Zahl 98 subtrahiert. Ist das Resultat, kleiner als Zehn, so wird der Zahl eine Null vorangestellt, sodass sich wieder ein zweistelliger Wert ergibt. Aus der Länderkennung, der zweistelligen Prüfsumme und der BBAN wird nun die IBAN generiert.
Das ist zugegebener Weise ein etwas komplexer Algorithmus, aus dem nicht so schnell auf die Struktur des Prpgrammablaufs geschlossen werden kann.
-
Grafische Darstellungen und Hilfsmittel zur Programmerstellung
Da Programmstrukturen auch mit anderen Fachkräften, Kunden und weiteren Beteiligten besprochen oder ausgetauscht werden müssen, wird eine alternative, nicht textgebundene Darstellung verwendet.
PAP Struktogramm
-
Programmablaufpläne
Ein Programmablaufplan (PAP) ist eine grafische Darstellung zur Umsetzung eines Algorithmus in einem Programm und beschreibt die Folge von Operationen zur Lösung einer Aufgabe. Die Symbole für Programmablaufpläne sind nach der DIN 66001 genormt und wurden 1983 letztlich aktualisiert. Im Bereich der Softwareerstellung werden sie nur noch selten verwendet, da sie nicht mehr alle Konzepte moderner Computersürachen abbilden. Sie können jedoch bei IHK Prüfungen immer noch verwendet werden.
Die Symbole eines PAP
Kreis; Oval / Rechteck mit gerundeten Ecken: Terminator
Pfeil, Linie: Verbindung zum nächstfolgenden Element
Rechteck: Operation (Tätigkeit)
Rechteck mit doppelten, vertikalen Linien: Unterprogramm ausführen
Raute: Verzweigung / Entscheidungen
Parallelogramm: Ein- und Ausgabe (ist in der DIN 66001 von 1982 zwar definiert, soll jedoch nicht für PAs verwendet werden)[2]
-
Struktogramme
auch Nassi-Shneiderman-Diagramm genannt, sind Diagramme zur Darstellung von Programmentwürfen im Rahmen der Methode der strukturierten Programmierung.
Das Nassi-Schneiderman Diagramm wurde 1972/73 von Isaac Nassi und Ben Shneiderman entwickelt und ist in der DIN 66261, letzte Version 2011, genormt. Die Vorgehensweise entspricht der sogenannten Top-down-Programmierung, in der zunächst ein Gesamtkonzept entwickelt wird, das dann durch eine Verfeinerung der Strukturen des Gesamtkonzeptes aufgelöst wird.
Elemente:
Sequenz von Anweisungen
Jede Anweisung wird in einen rechteckigen Strukturblock geschrieben.
Die Strukturblöcke werden nacheinander von oben nach unten durchlaufen.
Leere Strukturblöcke sind nur in Verzweigungen zulässig.
Alternative Begriffe: Folge, Linearer Ablauf,
Verzweigung
Alternative Begriffe: Entscheidung, Alternative, Selektion.
ein möglicher Block
Nur wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen (
if
). Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Trifft die Bedingung nicht zu (falsch), wird der Durchlauf ohne eine weitere Anweisung fortgeführt (Austritt unten).Alternative Begriffe: Bedingte Verarbeitung, Einfache Auswahl/Selektion, Einfache Verzweigung.
zwei mögliche Blöcke
Wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen; trifft die Bedingung nicht zu (falsch), wird der Anweisungsblock 2 durchlaufen (
if then else
). Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Austritt unten nach Abarbeitung des jeweiligen Anweisungsblocks.Alternative Begriffe: Einfache Alternative, Zweifache Auswahl, Alternative Verzweigung/Verarbeitung.
Beispiel für Verschachtelung
Es folgt eine weitere Bedingung. Die Verschachtelung ist ebenso im Nein-Fall noch möglich.
Case-Statement
Besonders bei mehr als drei abzuprüfenden Bedingungen geeignet:
Der Wert von „Variable“ kann bedingt auf Gleichheit wie auch auf Bereiche (größer/kleiner bei Zahlen) geprüft werden und der entsprechend zutreffende „Fall“ mit dem zugehörigen Anweisungsblock wird durchlaufen (switch
,select
). Eine Fallauswahl kann stets in eine verschachtelte Auswahl umgewandelt werden – etwa wenn die später eingesetzte Programmiersprache Fallauswahlen nicht kennt.Alternative Begriffe: Mehrfache Alternative, Fallauswahl, Mehrfachauswahl, Case, Select.
Schleifen
Zählschleife
Wiederholungsstruktur, bei der die Anzahl der Durchläufe festgelegt ist (
for
). Als Bedingung muss eine Zählvariable angegeben und mit einem Startwert initialisiert werden. Ebenso muss ein Endwert und die (Zähl-)Schrittweite angegeben werden. Nach jedem Durchlauf des Schleifenkörpers (Anweisungsblock 1) wird die Zählvariable um die Schrittweite inkrementiert (bzw. bei negativer Schrittweite dekrementiert) und mit dem Endwert verglichen. Ist der Endwert überschritten bzw. unterschritten, wird die Schleife verlassen.Alternative Begriffe: Zählergesteuerte Schleife.
Schleife mit Anfangsprüfung
Wiederholungsstruktur mit vorausgehender Bedingungsprüfung (
while
). Der Schleifenkörper (Anweisungsblock 1) wird nur durchlaufen, wenn (und solange) die Bedingung zutreffend (wahr) ist. Diese Symbolik wird auch für die Zählschleife (Anzahl der Durchläufe bekannt) benutzt.Alternative Begriffe: Wiederholung mit vorausgehender Bedingungsprüfung, Abweisende/vorprüfende/kopfgesteuerte Schleife.
Schleife mit Endprüfung
Wiederholungsstruktur mit nachfolgender Bedingungsprüfung für den Abbruch (
loop
). Der Schleifenkörper (Anweisungsblock 1) wird mindestens einmal durchlaufen, auch wenn die Bedingung von Anfang an nicht zutreffend (falsch) war!Alternative Begriffe: Wiederholung mit nachfolgender Bedingungsprüfung, Nicht abweisende/nachprüfende/fußgesteuerte Schleife.
Break
Der Aussprung (
break
; auchExit
genannt) stellt die Beendigung eines Programmteils dar. Er sollte nicht mit der unbedingten Sprunganweisung (goto
) verwechselt werden, die Nassi und Shneiderman mit den Struktogrammen vermeiden wollten.Alternative Begriffe: Abbruchanweisung, Aussprung.
Blockaufruf
Symbol für den Aufruf eines Unterprogramms bzw. einer Prozedur, Funktion oder Methode. Nach deren Durchlauf wird zu der aufrufenden Stelle zurückgesprungen und der nächstfolgende Strukturblock durchlaufen. Dieses Symbol ist nicht genormt.
-
Das folgende Beispiel zeigt den euklidischen Algorithmus zur Berechnung des größten gemeinsamen Teilers zweier Zahlen als Nassi-Shneiderman-Diagramm.
-
Ein wichtiges Werkzeug zur Erzeugung von Struktogrammen.
-
Pseudocode
Ein Pseudocode (von griech. pseudo = unecht) ist ein nicht funktionärer Code, den man schreibt, um eine strukturierte Übersicht über ein Programm und seine Aktionen zu erhalten. Er hilft vor allem bei höheren Programmiersprachen um die passenden Befehle und Kontrollstrukturen zu codieren.
-
Umsetzung des Struktogramms in Pseudocode
-
Zitiert aus:
Seite „Pseudocode“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 3. September 2020, 09:00 UTC. URL: https://de.wikipedia.org/w/index.php?title=Pseudocode&oldid=203356710 (Abgerufen: 27. September 2020, 07:27 UTC)https://de.wikipedia.org/wiki/Pseudocode#Aussehen_und_Stilrichtungen
-
Pseudocode in der IHK Prüfung:
Da Pseudocode nicht standardisiert ist, kann man in der Abschlussprüfung irgendeine Programmiersprache verwenden, ohne das der Code compilierbar sein muss.In der vergangenen Jahren wurden in entsprechenden IHK Prüfungen oft die Formuierung
"Geben Sie Ihre Lösung als PAP, Struktogramm oder Pseudocode an".
-
Aufzählung der gebräuchlichsten Datentypen
-