Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,71 @@
PROC PrintArray(INT ARRAY a INT size)
INT i
Put('[)
FOR i=0 TO size-1
DO
IF i>0 THEN Put(' ) FI
PrintI(a(i))
OD
Put('])
RETURN
PROC InsertionSort(INT ARRAY a INT size)
INT i,j,value
FOR i=1 TO size-1
DO
value=a(i)
j=i-1
WHILE j>=0 AND a(j)>value
DO
a(j+1)=a(j)
j==-1
OD
a(j+1)=value
OD
RETURN
BYTE FUNC IsSorted(INT ARRAY a INT n)
INT ARRAY b(20)
INT i
IF n=0 THEN
RETURN (1)
FI
MoveBlock(b,a,n*2)
InsertionSort(b,n)
FOR i=0 TO n-1
DO
IF b(i)#a(i) THEN
RETURN (0)
FI
OD
RETURN (1)
PROC Test(INT ARRAY a INT n)
BYTE sorted
sorted=IsSorted(a,n)
PrintArray(a,n)
IF sorted THEN
PrintE(" is sorted")
ELSE
PrintE(" is not sorted")
FI
RETURN
PROC Main()
INT ARRAY
a=[65530 0 1 2 10 13 16],
b=[2 3 6 4],
c=[3 3 3 3 3 3],
d=[7]
Test(a,7)
Test(b,4)
Test(c,6)
Test(d,1)
Test(d,0)
RETURN