Skip to content

Commit

Permalink
added Aufsteigende_Zahlen, Absteigende_Zahlen, Linspace and Logspace (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
NotLe0n committed Dec 22, 2023
1 parent c225afe commit d061de7
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 3 deletions.
62 changes: 61 additions & 1 deletion lib/stdlib/Duden/Listen.ddp
Original file line number Diff line number Diff line change
Expand Up @@ -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:
"<liste> aneinandergehängt"
"<liste> 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 <start> bis <ende>"

[
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 <start> bis <ende>"

[
Gibt eine <anzahl> lange Kommazahlen Liste aus gleich verteilten Kommazahlen von <start> bis <ende> (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 <start> bis <ende> mit <anzahl> Elementen"

[
Gibt eine <anzahl> 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 <start> bis <ende> mit <anzahl> Elementen"
28 changes: 27 additions & 1 deletion tests/testdata/stdlib/Listen/Listen.ddp
Original file line number Diff line number Diff line change
Expand Up @@ -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).
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).
21 changes: 20 additions & 1 deletion tests/testdata/stdlib/Listen/expected.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,23 @@ wahr
wahr
wahr
-- Aneinandergehängt_C test --
hallo
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

0 comments on commit d061de7

Please sign in to comment.