58 lines
1.8 KiB
Plaintext
58 lines
1.8 KiB
Plaintext
Module checkit {
|
|
\\ Inventories are objects with keys and values, or keys (used as read only values)
|
|
\\ They use hash function.
|
|
\\ Function TwoKeys return Inventory object (as a pointer to object)
|
|
Function TwoKeys {
|
|
Inventory Alfa="key1":=100, "key2":=200
|
|
=Alfa
|
|
}
|
|
M=TwoKeys()
|
|
Print Type$(M)="Inventory"
|
|
\\ Normal Use:
|
|
\\ Inventories Keys are case sensitive
|
|
\\ M2000 identifiers are not case sensitive
|
|
Print M("key1"), m("key2")
|
|
\\ numeric values can convert to strings
|
|
Print M$("key1"), m$("key2")
|
|
\\ Iteration
|
|
N=Each(M)
|
|
While N {
|
|
Print Eval(N) ' prints 100, 200 as number
|
|
Print M(N^!) ' The same using index N^
|
|
}
|
|
N=Each(M)
|
|
While N {
|
|
Print Eval$(N) ' prints 100, 200 as strings
|
|
Print M$(N^!) ' The same using index N^
|
|
}
|
|
N=Each(M)
|
|
While N {
|
|
Print Eval$(N, N^) ' Prints Keys
|
|
}
|
|
\\ double iteration
|
|
Append M, "key3":=500
|
|
N=Each(M, 1, -1) ' start to end
|
|
N1=Each(M, -1, 1) ' end to start
|
|
\\ 3x3 prints
|
|
While N {
|
|
While N1 {
|
|
Print format$("{0}*{1}={2}", Eval(N1), Eval(N), Eval(N1)*Eval(N))
|
|
}
|
|
}
|
|
\\ sort results from lower product to greater product (3+2+1, 6 prints only)
|
|
N=Each(M, 1, -1)
|
|
While N {
|
|
N1=Each(M, N^+1, -1)
|
|
While N1 {
|
|
Print format$("{0}*{1}={2}", Eval(N1), Eval(N), Eval(N1)*Eval(N))
|
|
}
|
|
}
|
|
N=Each(M)
|
|
N1=Each(M,-2, 1) ' from second from end to start
|
|
\\ print only 2 values. While block ends when one iterator finish
|
|
While N, N1 {
|
|
Print Eval(N1)*Eval(N)
|
|
}
|
|
}
|
|
Checkit
|