diff --git a/lib/stdlib/Duden/Listen.ddp b/lib/stdlib/Duden/Listen.ddp index d844a098..afddadc3 100644 --- a/lib/stdlib/Duden/Listen.ddp +++ b/lib/stdlib/Duden/Listen.ddp @@ -641,4 +641,64 @@ Die öffentliche Funktion Aneinandergehängt_Buchstabe mit dem Parameter liste v Speichere t verkettet mit b in t. Gib t zurück. Und kann so benutzt werden: - " aneinandergehängt" \ No newline at end of file + " aneinandergehängt" + +[ + Gibt eine Zahlen Liste aus aufsteigenden Zahlen von start bis end (beide inklusiv) zurück. + z.B.: + f(1, 10) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + f(5, 5) = {5} + f(-10, 10) = {-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} +] +Die öffentliche Funktion Aufsteigende_Zahlen mit den Parametern start und ende vom Typ Zahl und Zahl, gibt eine Zahlen Liste zurück, macht: + Die Zahlen Liste l ist ende minus start plus 1 Mal 0. + Für jede Zahl i von 0 bis ende minus start, mache: + Speichere start plus i in l an der Stelle (i plus 1). + Gib l zurück. +Und kann so benutzt werden: + "eine aufsteigende Zahlen Liste von bis " + +[ + Gibt eine Zahlen Liste aus absteigenden Zahlen von start bis end (beide inklusiv) zurück. + z.B.: + f(0, 0) = {0} + f(10, 1) = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1} + f(-10, 10) = {-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} +] +Die öffentliche Funktion Absteigende_Zahlen mit den Parametern start und ende vom Typ Zahl und Zahl, gibt eine Zahlen Liste zurück, macht: + Die Zahlen Liste l ist start minus ende plus 1 Mal 0. + Für jede Zahl i von start bis ende mit Schrittgröße -1, mache: + Speichere i in l an der Stelle (start minus i plus 1). + Gib l zurück. +Und kann so benutzt werden: + "eine absteigende Zahlen Liste von bis " + +[ + Gibt eine lange Kommazahlen Liste aus gleich verteilten Kommazahlen von bis (beide inklusiv) zurück. + Anzahl muss mindestens 2 sein, sonst wird {NaN} zurückgegeben. + z.B.: + f(1, 10, 2) = {1, 3, 5, 7, 9} + f(5, 5, 1) = {5} + f(-10, 10, 1) = {-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} +] +Die öffentliche Funktion Linspace mit den Parametern start, ende und anzahl vom Typ Kommazahl, Kommazahl und Zahl, gibt eine Kommazahlen Liste zurück, macht: + Die Kommazahlen Liste l ist anzahl Mal 0,0. + Für jede Zahl i von 0 bis anzahl minus 1, mache: + Speichere start plus (ende minus start) mal (i durch (anzahl minus 1)) in l an der Stelle (i plus 1). + Gib l zurück. +Und kann so benutzt werden: + "eine lineare Kommazahlen Liste von bis mit Elementen" + +[ + Gibt eine lange Kommazahlen Liste aus gleich verteilten Kommazahlen von start bis end (beide inklusiv) auf einer Logarithmischen Skala. + Anzahl muss mindestens 2 sein, sonst wird {NaN} zurückgegeben. + z.B.: + f(1,0, 5,0, 5) = {10, 100, 1000, 10000, 100000} +] +Die öffentliche Funktion Logspace mit den Parametern start, ende und anzahl vom Typ Kommazahl, Kommazahl und Zahl, gibt eine Kommazahlen Liste zurück, macht: + Die Kommazahlen Liste l ist anzahl Mal 0,0. + Für jede Zahl i von 0 bis anzahl minus 1, mache: + Speichere 10 hoch (start plus (ende minus start) mal (i durch (anzahl minus 1))) in l an der Stelle (i plus 1). + Gib l zurück. +Und kann so benutzt werden: + "eine logarithmische Kommazahlen Liste von bis mit Elementen" \ No newline at end of file diff --git a/tests/testdata/stdlib/Listen/Listen.ddp b/tests/testdata/stdlib/Listen/Listen.ddp index 160d16ca..d9021ee5 100644 --- a/tests/testdata/stdlib/Listen/Listen.ddp +++ b/tests/testdata/stdlib/Listen/Listen.ddp @@ -177,4 +177,30 @@ Schreibe den Wahrheitswert (listT leer ist) auf eine Zeile. Schreibe den Text "-- Aneinandergehängt_C test --" auf eine Zeile. [Aneinandergehängt_C test] -Schreibe den Text ((eine Liste, die aus 'h', 'a', 'l', 'l', 'o' besteht) aneinandergehängt). \ No newline at end of file +Schreibe den Text ((eine Liste, die aus 'h', 'a', 'l', 'l', 'o' besteht) aneinandergehängt) auf eine Zeile. +[Aufsteigende_Zahlen test] +Schreibe den Text "-- Aufsteigende_Zahlen test --" auf eine Zeile. +Schreibe (eine aufsteigende Zahlen Liste von 0 bis 0) auf eine Zeile. +Schreibe (eine aufsteigende Zahlen Liste von 5 bis 8) auf eine Zeile. +Schreibe (eine aufsteigende Zahlen Liste von 1 bis 10) auf eine Zeile. +Schreibe (eine aufsteigende Zahlen Liste von -10 bis 10) auf eine Zeile. + +[Absteigende_Zahlen test] +Schreibe den Text "-- Absteigende_Zahlen test --" auf eine Zeile. +Schreibe (eine absteigende Zahlen Liste von 0 bis 0) auf eine Zeile. +Schreibe (eine absteigende Zahlen Liste von 8 bis 5) auf eine Zeile. +Schreibe (eine absteigende Zahlen Liste von 10 bis 1) auf eine Zeile. +Schreibe (eine absteigende Zahlen Liste von 10 bis -10) auf eine Zeile. + +[Linspace test] +Schreibe den Text "-- Linspace test --" auf eine Zeile. +Schreibe (eine lineare Kommazahlen Liste von 1,0 bis 5,0 mit 5 Elementen) auf eine Zeile. +Schreibe (eine lineare Kommazahlen Liste von 2,0 bis 3,0 mit 5 Elementen) auf eine Zeile. +Schreibe (eine lineare Kommazahlen Liste von -5,0 bis 7,0 mit 7 Elementen) auf eine Zeile. +Schreibe (eine lineare Kommazahlen Liste von 2,0 bis 2,0 mit 2 Elementen) auf eine Zeile. +Schreibe (eine lineare Kommazahlen Liste von 0,0 bis 3,0 mit 4 Elementen) auf eine Zeile. +Schreibe (eine lineare Kommazahlen Liste von 2,0 bis 3,0 mit 17 Elementen) auf eine Zeile. + +[Logspace test] +Schreibe den Text "-- Logspace test --" auf eine Zeile. +Schreibe (eine logarithmische Kommazahlen Liste von 1,0 bis 5,0 mit 5 Elementen). diff --git a/tests/testdata/stdlib/Listen/expected.txt b/tests/testdata/stdlib/Listen/expected.txt index e1e202df..de4d5e8c 100644 --- a/tests/testdata/stdlib/Listen/expected.txt +++ b/tests/testdata/stdlib/Listen/expected.txt @@ -61,4 +61,23 @@ wahr wahr wahr -- Aneinandergehängt_C test -- -hallo \ No newline at end of file +hallo +-- Aufsteigende_Zahlen test -- +0 +5, 6, 7, 8 +1, 2, 3, 4, 5, 6, 7, 8, 9, 10 +-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 +-- Absteigende_Zahlen test -- +0 +8, 7, 6, 5 +10, 9, 8, 7, 6, 5, 4, 3, 2, 1 +10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 +-- Linspace test -- +1, 2, 3, 4, 5 +2, 2,25, 2,5, 2,75, 3 +-5, -3, -1, 1, 3, 5, 7 +2, 2 +0, 1, 2, 3 +2, 2,0625, 2,125, 2,1875, 2,25, 2,3125, 2,375, 2,4375, 2,5, 2,5625, 2,625, 2,6875, 2,75, 2,8125, 2,875, 2,9375, 3 +-- Logspace test -- +10, 100, 1000, 10000, 100000 \ No newline at end of file