MODULE PeriodicTable; FROM STextIO IMPORT WriteLn, WriteString; FROM SWholeIO IMPORT WriteInt; TYPE TAB = ARRAY [0 .. 7] OF INTEGER; TANum = ARRAY [0 .. 9] OF INTEGER; CONST A = TAB{1, 2, 5, 13, 57, 72, 89, 104}; B = TAB{-1, 15, 25, 35, 72, 21, 58, 7}; PROCEDURE ShowRowAndColumn(ANum: INTEGER); VAR I, M, R, C: CARDINAL; BEGIN I := 7; WHILE A[I] > ANum DO I := I - 1 END; M := ANum + B[I]; R := M DIV 18 + 1; C := M MOD 18 + 1; WriteInt(ANum, 3); WriteString(" ->"); WriteInt(R, 2); WriteInt(C, 3); WriteLn; END ShowRowAndColumn; VAR J : CARDINAL; ANum: TANum; (* Example elements (atomic numbers) *) BEGIN ANum := TANum{1, 2, 29, 42, 57, 58, 72, 89, 90, 103}; FOR J := 0 TO 9 DO ShowRowAndColumn(ANum[J]) END END PeriodicTable.