40 lines
790 B
Plaintext
40 lines
790 B
Plaintext
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.
|