Anwendungsfall: Einsteiger â einfache mathematische Beispiele
Einsteiger beginnen typischerweise mit einfachen mathematischen Berechnungen (etwa der Berechnung der FakultĂ€t, des gröĂten gemeinsamen Teilers oder Ăhnlichem) im IPO-Stil (EingabeâVerarbeitungâAusgabe), basierend auf unmittelbar ausfĂŒhrbaren Anweisungen ohne komplizierte Syntax, oder mit einfachen Zeichenaufgaben mithilfe der Primitive des Turtleizer. So lassen sich rasch motivierende Erfolge erzielen, die ein schnelles praktisches VerstĂ€ndnis der algorithmischen Konzepte vermitteln. Die Beobachtungsmöglichkeiten ĂŒber die Animationsfunktionen des Debuggers sind dabei ebenso unverzichtbar wie die vielfĂ€ltigen Hinweise des Analysers.
Nach dieser ersten, eher Bottom-Up-orientierten Lernphase unterscheidet sich der Anwendungsfall der fortgeschritteneren Einsteiger kaum vom Top-Down-Ansatz des Entwurfs mit interner Verfeinerung â schlicht weil dies in der Regel der optimale Weg ist, ein Problem mithilfe eines Algorithmus zu lösen.
In diesem Fall ist es jedoch weniger wichtig, wie kompatibel die gefundene Lösung mit verschiedenen Programmiersprachen ist â entscheidend ist, einen funktionierenden Algorithmus zu entwickeln, der getestet und verifiziert werden kann. Dabei sollten Sie die syntaktischen Spezifikationen des Structorizer-Sprachdialekts einhalten. Deshalb empfiehlt es sich, die Syntaxhervorhebung und den Analyser einzuschalten (siehe empfohlene Einstellungen unten).
Bezogen auf unsere Beispielaufgabe könnte das im vorherigen Anwendungsfall grob skizzierte Unterprogramm so weit verfeinert werden, bis es vollstĂ€ndig durch Anweisungen in ausfĂŒhrbarer Structorizer-Syntax implementiert ist, z. B.:
Nun können alle Arten von Test- und Debugging-Möglichkeiten sowie Laufzeitanalysen (AusfĂŒhrungszĂ€hlung zur Hot-Spot-Erkennung oder Testabdeckung) genutzt werden, um ein tieferes VerstĂ€ndnis des Algorithmenverhaltens zu gewinnen:
Testabdeckungsnachweis fĂŒr die obige Eingabe (Modus âdeep test coverage" â tiefe Testabdeckung):
Visualisierung des Testlaufs mit Hervorhebung der AusfĂŒhrungs-Hot-Spots â welche Operationen am hĂ€ufigsten ausgefĂŒhrt werden (Modus âexecution count" â AusfĂŒhrungszĂ€hlung):
Visualisierung des Testlaufs mit Hervorhebung der logarithmischen AusfĂŒhrungszeitverteilung ĂŒber die Diagramme â welche Operationslast sich hinter einer bestimmten algorithmischen Komponente verbirgt, z. B. einer Schleife oder einem Aufruf (Modus âdone operations, logar." â durchgefĂŒhrte Operationen, logarithmisch):
Ist der Algorithmus validiert und analysiert, ist die eigentliche Aufgabe erledigt â die gewonnenen Erkenntnisse bleiben.
NatĂŒrlich ist es weiterhin möglich, Code fĂŒr die gefundene Lösung zu generieren. Dabei muss man sich bewusst sein, dass einige Teile des Algorithmus in der gewĂ€hlten Zielprogrammiersprache neu geschrieben werden mĂŒssen, da nicht immer ein passendes Ăquivalent fĂŒr alle eingebauten Datentypen, Operatoren, Funktionen und Prozeduren von Structorizer vorhanden ist.
Durch die bewusste Wahl ausfĂŒhrbarer Anweisungssyntax kann Structorizer auch fĂŒr schnelles Prototyping und die Demonstration von Algorithmen bei kleineren bis mittelgroĂen Beispielaufgaben eingesetzt werden, insbesondere im Unterricht. Dank der integrierten Datenstrukturierungsmöglichkeiten wie Arrays, Records (Structs) und sogar Textdateien kann dies auch fĂŒr bestimmte Algorithmen in anspruchsvolleren Kontexten gelten.
Wichtigste AktivitÀten und Werkzeuge:
- Element-EinfĂŒgung und Diagrammbearbeitung
- Analyser
- Debuggen (Testen)
- Turtleizer (grafische Algorithmen)
- Codevorschau
- Speichern / Laden
- Unterprogrammerstellung
- Arranger (Gruppenverwaltung)
- Laufzeitanalyse (Testabdeckung, Verarbeitungslast)
- Bildexport
- Codeexport
Empfohlene Einstellungen:
- âView âș Analyse structogram?" (Strukturgramm analysieren?): Ein
- âView âș Highlight variables?" (Variablen hervorheben?): Ein
- Anzeigemodus: âView âș Comments + texts?" (Kommentare + Texte?)
- âPreferences âș Export ... âș Export instructions as comments" (Anweisungen als Kommentare exportieren): Aus
- âPreferences âș Export ... âș No conversion of the expression/instruction contents" (Keine Konvertierung der Ausdrucks-/Anweisungsinhalte): Aus
- âPreferences âș Export ... âș Involve called subroutines" (Aufgerufene Unterprogramme einbeziehen): Ein