Algorithmik

Übungsaufgaben zu Zeichenketten und Prüfziffern

Zwei umfangreiche Übungsaufgaben zu Algorithmen über Zeichenketten: Prüfziffern nach GS1, Luhn und Modulo 97 berechnen, prüfen und berichtigen, große Zahlen schrittweise rechnen, Codes zerlegen und zusammensetzen, eindeutige Zufallscodes mit Prüfzeichen erzeugen, Lauflängenkodierung samt Mehrdeutigkeiten und gemischte Ausdrücke aus Text und Zahl.

Zeichenketten und Prüfziffern: Algorithmen für Codes, Nummern und Texte

Barcodes, Sendungsnummern, IBAN, Ticketcodes und komprimierte Bilddaten haben eines gemeinsam: Ein Algorithmus muss Zeichenketten Zeichen für Zeichen lesen, Ziffern in Zahlen umwandeln, Teile zusammensetzen oder prüfen. Der Artikel zeigt die Grundoperationen auf Zeichenketten in Pseudocode, erklärt die verbreiteten Prüfziffernverfahren (gewichtete Summe modulo 10 wie bei GTIN/EAN, Luhn, Modulo 97 wie bei IBAN und Leitweg-ID), das Erzeugen eindeutiger Zufallscodes und die Lauflängenkodierung – jeweils mit den typischen Fehlern.

Übungsaufgaben zu Rekursion und Iteration

Zwei umfangreiche Übungsaufgaben zu Rekursion und Iteration: Schreibtischtest und Fehlersuche bei rekursiven Algorithmen, Abstieg und Aufstieg, Aufrufstapel und Stapelüberlauf, Umwandlung in beide Richtungen, rekursive Funktionen über einen Kategoriebaum, binäre Suche, Aufruftiefe berechnen, Endrekursion und Testabdeckung.

Rekursion und Iteration: Algorithmen, die sich selbst aufrufen

Eine rekursive Funktion löst ein Problem, indem sie sich selbst mit einem kleineren Teilproblem aufruft, bis eine Abbruchbedingung erreicht ist. Der Artikel erklärt Abbruchbedingung und Rekursionsschritt, den Aufrufstapel, den Unterschied zwischen Abstieg und Aufstieg, den Schreibtischtest rekursiver Algorithmen und die typischen Fehler. Er zeigt, wie Du Rekursion in Iteration umwandelst und umgekehrt, wann sich welche Lösung lohnt und wie Bäume, Teile-und-herrsche-Verfahren und Endrekursion funktionieren.

Übungsaufgaben zu Sortieralgorithmen und Vergleichsfunktionen

Vier Übungsaufgaben zu Sortieralgorithmen. Zwei kürzere Aufgaben aus der Systemverwaltung: Schleifengrenzen prüfen, Stellen mit Ganzzahldivision und Modulo bestimmen, Bubblesort-Lückencode ergänzen. Zwei umfangreiche Aufgaben üben Schreibtischtest, Bubblesort über Objekte, Vergleichsfunktionen mit mehreren Kriterien, Filtern und Sortieren, sortiertes Einfügen, Zeilentausch in zweidimensionalen Arrays, Stabilität und Laufzeit.

Sortieralgorithmen und Vergleichsfunktionen: Bubblesort, Selectionsort, Insertionsort und eigene Sortierkriterien

„Der Sortieralgorithmus muss selbst erstellt werden“ – dieser Satz taucht in Aufgaben immer wieder auf. Der Artikel zeigt die drei einfachen Verfahren Bubblesort, Selectionsort und Insertionsort mit Pseudocode und Schreibtischtest, erklärt, wie Du Objekte, zweidimensionale Arrays und gefilterte Daten auf- oder absteigend sortierst, und wie eine Vergleichsfunktion das Sortierkriterium austauschbar macht. Dazu kommen Bausteine rund ums Sortieren (Wertebereich prüfen, in freie Felder einfügen, Stellen mit DIV und MOD herauslösen), Stabilität, Laufzeit, typische Fehler und ein Vorgehen für Aufgaben.

Übungsaufgaben zu prozeduralen Algorithmen mit Arrays

Fünf Übungsaufgaben zu Algorithmen über ein- und zweidimensionale Arrays. In drei kürzeren Aufgaben vervollständigst Du Programmentwürfe in Python oder Java: Mittelwerte, Schwellenwerte, Minimum und Maximum, Prozentaufschlag, Messwerte prüfen, Quersumme. Zwei umfangreiche Aufgaben üben Schreibtischtest, Extremwerte, Suche nach freien Slots, Häufigkeiten, Gruppenwechsel, Verteilung mit Kapazitätsgrenzen und Fehlersuche – als Pseudocode, Struktogramm, Programmablaufplan oder Aktivitätsdiagramm.

Prozedurale Algorithmen mit Arrays: suchen, zählen, Extremwerte und Gruppenwechsel

Viele Aufgaben verlangen einen Algorithmus, der ein- oder zweidimensionale Arrays auswertet – in Pseudocode, als Struktogramm, Programmablaufplan oder Aktivitätsdiagramm. Fast immer setzt er sich aus wenigen Grundmustern zusammen: durchlaufen, zählen und summieren, Minimum und Maximum, suchen, verteilen, Gruppenwechsel, Werte prüfen und Ziffern zerlegen. Der Artikel zeigt jedes Muster mit Pseudocode, erklärt das richtige Runden, nennt typische Fehler und zeigt, wie Du eine solche Aufgabe Schritt für Schritt löst.

Übungsaufgaben zum Programmentwurf: Entwürfe lesen, prüfen und korrigieren

Eine umfangreiche Übungsaufgabe rund um eine Freizeit-App und fünf weitere Aufgaben zu Grundlagen und Arrays: Testfalltabelle und Schreibtischtest durchführen, Fehler in Struktogramm und Pseudocode beschreiben und korrigieren, Sinnbilder eines Programmablaufplans benennen und ihn in ein Struktogramm übertragen, ein Struktogramm-Gerüst ergänzen, ein Ergebnis gegen die Vorgabe prüfen und einen eigenen Algorithmus entwerfen; dazu Rückgabewerte berechnen, Grenzwertfehler finden, Kontrollstrukturen zuordnen, Arrays mit Index und Nummer auswerten und ein Aktivitätsdiagramm in Pseudocode übertragen.

Programmentwürfe lesen, prüfen und korrigieren: Pseudocode, Struktogramm und PAP

Ob Pseudocode, Struktogramm oder Programmablaufplan – oft musst Du einen fremden Entwurf nicht neu schreiben, sondern lesen, testen und reparieren. Der Artikel zeigt die Bausteine der drei Darstellungsformen nebeneinander, erklärt den Schreibtischtest mit Trace-Tabelle und Testfalltabelle, stellt die typischen Fehlerarten mit Korrektur vor und zeigt, wie Du Lücken in Vorgaben ergänzt und einen PAP in ein Struktogramm überträgst.

Übersicht der Programmentwurfsmethoden

Algorithmen können mit unterschiedlichen Programmentwurfstechniken dokumentiert werden: Pseudocode, Programm-Ablaufplan, Struktogramm oder UML-Aktivitätsdiagramm. Hier werden alle vergleichend dargestellt.

Blackboxtest- und Algorithmus-Übungsaufgabe „Gesamtnote und Bestehensregeln“

Übungsaufgaben zur Erstellung von Testfällen nach Blackbox-Systematik für eine Funktion, die aus den Einzelergebnissen die Abschlussnote nach den Bestehensregeln der Ausbildungsverordnung berechnet. Du bestimmst systematisch Äquivalenzklassen und Grenzwerte und formulierst abschließend den Algorithmus in Pseudocode.

Metrik der Komplexität eines Algorithmus: Die McCabe-Zahl (Zyklomatische Komplexität)

Die Zyklomatische Komplexität (McCabe-Zahl) gibt ein Maß für die Wartbarkeit von Code an. Sie kann auf verschiedene Arten bestimmt werden (binäre Verzweigungen, Anzahl Pfade, Anzahl Knoten und Kanten). Sie kann als Indikator für zu hohe Komplexität innerhalb von Methoden genutzt werden, kann aber objektorientierte Komplexität nicht detektieren.

Algorithmen mit Pseudocode dokumentieren

Die Dokumentation oder der Entwurf von Algorithmen soll häufig unabhängig von einer spezifischen Programmiersprache erfolgen. Eine Möglichkeit ist es, Pseudocode zu verwenden. Vier verbreitete Pseudocode-Notationen werden hier dargestellt: JANA, Pseudo-Pascal, eine deutsche Variante von Pseudo-Pascal und Pseudo-Python. Eine Schnellübersicht stellt die Schlüsselwörter gegenüber, die Beispiele lassen sich über Registerkarten zwischen den Notationen umschalten. Zum Schluss geht es um alternative Schreibweisen und typische Fehler beim Lesen von Pseudocode.