RosettaCodeData/Task/Periodic-table/XBasic/periodic-table.basic

58 lines
900 B
Plaintext

PROGRAM "Periodic table"
DECLARE FUNCTION Entry ()
DECLARE FUNCTION MostarPos (N)
FUNCTION Entry ()
DIM Element[12]
Element[0] = 1
Element[1] = 2
Element[2] = 29
Element[3] = 42
Element[4] = 57
Element[5] = 58
Element[6] = 59
Element[7] = 71
Element[8] = 72
Element[9] = 89
Element[10] = 90
Element[11] = 103
Element[12] = 113
FOR e = 0 TO 12 'UBOUND (Element())
MostarPos (Element[e])
NEXT
END FUNCTION
FUNCTION MostarPos (N)
DIM A[7]
A[0] = 1
A[1] = 2
A[2] = 5
A[3] = 13
A[4] = 57
A[5] = 72
A[6] = 89
A[7] = 104
DIM B[7]
B[0] = -1
B[1] = 15
B[2] = 25
B[3] = 35
B[4] = 72
B[5] = 21
B[6] = 58
B[7] = 7
I = 7
DO WHILE A[I] > N
DEC I
LOOP
M = N + B[I]
R = (M \ 18) + 1
C = (M MOD 18) + 1
PRINT "Atomic number "; FORMAT$ ("###", N); " ->"; R; ","; C
END FUNCTION
END PROGRAM