Leistungskurs Informatik, Q1: Datenstrukturen und Algorithmen
Sicherheitshinweis
Ein Reload der Seite setzt alle Eingaben und Daten zurück. Also nur machen, wenn man's wirklich will...
Hinweise zu JavaScript
JS hat mit Java außer dem Namen und der ähnlichen Syntax nichts zu tun. JS ist eine Interpreter-Sprache, als Interpreter wird der Webbrowser verwendet.
JS kann, muss aber nicht Klassen verwenden, JS verzichtet auf Typdeklarationen. Aber natürlich haben Variablen Typen. Wer sicher sein will, verwendet zum Vergleichen den Operator ===, denn der prüft auch Typen.
Für die Programmierung wird nur ein Texteditor benötigt, bearbeitet wird diese Webseite.
Mit F12 öffnet man die Entwicklerkonsole. Dort erhält man Fehlermeldungen und aus dem Programm kann man mit console.log(message) Nachrichten ausgeben. In der Konsole lassen sich aber auch direkt JS-Anweisungen eintippen und ausführen.
Datenstruktur 1: Array
Aufgabenteil 1
Untersuchen Sie das Verhalten der Datenstruktur Array sowie dieser Webseite. Fügen Sie dazu Daten an verschiedenen Positionen in das Array ein. Vollziehen Sie im Quelltext der Seite nach, was hier passiert. Finden Sie insbesondere Deklaration und Initialisierung des Arrays.
Beachten Sie, dass JavaScript (im Gegensatz zu Java) keine Fehler erzeugt, wenn Daten außerhalb des Arrays eingetragen werden.
Ergänzen Sie einen Button (View) und eine Funktion (Controller), die einen Wert im Array sucht. Die Ausgabe - Erfolg oder Fehlschlag - kann über die JavaScript-Funktion alert(message) erfolgen. ()
Anregungen zum Weiterdenken: Wie bekommt man das Array (wieder) kleiner? Gibt es einen besseren Weg, Felder im Array als leer zu markieren?
Datenstruktur 2: Einfach verkettete Listen
Aufgabenteil 2
Untersuchen Sie nun das Verhalten der Datenstruktur Liste. Finden Sie auch hier im Quelltext Deklaration und Initialisierung der Liste.
Beschreiben Sie wiederum den Funktionsablauf der Webseite bei der Eingabe von Daten in die Liste. Konsultieren Sie dazu auch den Quelltext der Klasse List in list.js.
Notieren Sie Signaturen weiterer Methoden, die für die Klasse List sinnvoll sind (oder sein könnten).
Vergleichen Sie die Datenstrukturen Array und einfach verkettete Liste. Verwenden Sie dabei (unter anderem) die Begriffe dynamisch, statisch, indiziert,sequenziell,rekursiv.
Anregung zum Weiterarbeiten: Beginnen Sie, die Funktionen aus Aufgabe 5 als Methoden in List zu implementieren.