Abschlüsse und Generator einer Sequenz mit Gedächtnis
JavaScript
Hard
closures
Aufgabe «Abschlüsse und Generator einer Sequenz mit Gedächtnis»
Implementieren Sie die Funktion createSequenceGenerator, die einen Startwert und eine Schrittweite akzeptiert. Die Funktion gibt ein Objekt mit zwei Methoden zurück: next() und reset(). Die Methode next() gibt den nächsten Wert der Sequenz zurück (beginnend mit dem Startwert, bei jedem Aufruf um die Schrittweite erhöht). Die Methode reset() setzt die Sequenz auf den Startwert zurück. Zusätzlich soll die Methode next() alle generierten Werte in einem Array speichern, das über die Eigenschaft history des Objekts zugänglich ist. Die Eigenschaft history sollte vor direkter Änderung von außen geschützt, aber lesbar sein. Verwenden Sie Abschlüsse zur Kapselung des Zustands.
Eingabeformat
Erste Zeile: Startwert (ganze Zahl). Zweite Zeile: Schrittweite (ganze Zahl). Danach eine Zeile mit Befehlen: 'next' (Aufruf von next()) oder 'reset' (Aufruf von reset()). Die Befehle wiederholen sich bis zum Ende der Eingabe.
Ausgabeformat
Geben Sie für jeden Befehl 'next' den aktuellen Wert der Sequenz aus. Für 'reset' geben Sie nichts aus.
Beispiele
Beispiel 1
EINGABE
10
-3
next
next
next
reset
next
AUSGABE
10
7
4
10
Beispiel 2
EINGABE
2
7 13
AUSGABE
91
main.js