RosettaCodeData/Task/Periodic-table/ANSI-BASIC/periodic-table.basic

37 lines
806 B
Plaintext

100 REM Periodic table
110 DECLARE EXTERNAL SUB ShowRowAndColumn
120 DIM A(0 TO 7), B(0 TO 7)
130 CALL SetAB
140 FOR J = 0 TO 9
150 READ ANUM
160 CALL ShowRowAndColumn(A, B, ANUM)
170 NEXT J
180 REM
190 SUB SetAB
200 FOR I = 0 TO 7
210 READ A(I)
220 NEXT I
230 FOR I = 0 TO 7
240 READ B(I)
250 NEXT I
260 END SUB
270 REM
280 REM Data.
290 REM Arrays A, B.
300 DATA 1, 2, 5, 13, 57, 72, 89, 104
310 DATA -1, 15, 25, 35, 72, 21, 58, 7
320 REM Example elements (atomic numbers).
330 DATA 1, 2, 29, 42, 57, 58, 72, 89, 90, 103
340 END
350 REM
360 EXTERNAL SUB ShowRowAndColumn(A(), B(), ANUM)
370 LET I = 7
380 DO WHILE A(I) > ANUM
390 LET I = I - 1
400 LOOP
410 LET M = ANUM + B(I)
420 LET R = INT(M / 18) + 1
430 LET C = MOD(M, 18) + 1
440 PRINT ANUM; "->"; R; C
450 END SUB