Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -32,5 +32,8 @@
|
|||
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
|
||||
440 PRINT USING "###": ANUM;
|
||||
450 PRINT " ->";
|
||||
460 PRINT USING "##": R;
|
||||
470 PRINT USING "###": C
|
||||
480 END SUB
|
||||
|
|
|
|||
|
|
@ -1,23 +1,57 @@
|
|||
const limits = [3:10, 11:18, 19:36, 37:54, 55:86, 87:118]
|
||||
const ELEMENTS = split("""
|
||||
H He Li Be B C N O F Ne Na Mg Al Si P S Cl Ar
|
||||
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
|
||||
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
|
||||
Cs Ba La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu Hf
|
||||
Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn Fr Ra Ak Th
|
||||
Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr Rf Db Sg Bh Hs
|
||||
Mt Ds Rg Cn Nh Fl Mc Lv Ts Og
|
||||
""", r"\s+")
|
||||
const LIMITS = [3:10, 11:18, 19:36, 37:54, 55:86, 87:118]
|
||||
|
||||
function periodic_table(n)
|
||||
(n < 1 || n > 118) && error("Atomic number is out of range.")
|
||||
n == 1 && return [1, 1]
|
||||
n == 2 && return [1, 18]
|
||||
57 <= n <= 71 && return [8, n - 53]
|
||||
89 <= n <= 103 && return [9, n - 85]
|
||||
n == 1 && return (1, 1)
|
||||
n == 2 && return (1, 18)
|
||||
57 <= n <= 71 && return (8, n - 53)
|
||||
89 <= n <= 103 && return (9, n - 85)
|
||||
row, limitstart, limitstop = 0, 0, 0
|
||||
for i in eachindex(limits)
|
||||
if limits[i].start <= n <= limits[i].stop
|
||||
row, limitstart, limitstop = i + 1, limits[i].start, limits[i].stop
|
||||
for i in eachindex(LIMITS)
|
||||
if LIMITS[i].start <= n <= LIMITS[i].stop
|
||||
row, limitstart, limitstop = i + 1, LIMITS[i].start, LIMITS[i].stop
|
||||
break
|
||||
end
|
||||
end
|
||||
return (n < limitstart + 2 || row == 4 || row == 5) ?
|
||||
[row, n - limitstart + 1] : [row, n - limitstop + 18]
|
||||
(row, n - limitstart + 1) : (row, n - limitstop + 18)
|
||||
end
|
||||
|
||||
for n in [1, 2, 29, 42, 57, 58, 59, 71, 72, 89, 90, 103, 113]
|
||||
rc = periodic_table(n)
|
||||
println("Atomic number ", lpad(n, 3), " -> ($(rc[1]), $(rc[2]))")
|
||||
|
||||
function test_periodic_table()
|
||||
for n in [1, 2, 29, 42, 57, 58, 59, 71, 72, 89, 90, 103, 113]
|
||||
rc = periodic_table(n)
|
||||
println("Atomic number ", lpad(n, 3), " -> ($(rc[1]), $(rc[2]))")
|
||||
end
|
||||
positions = Dict(periodic_table(n) => n for n in 1:118)
|
||||
hline = " __________________________________________________________________________ "
|
||||
vlines = " | |"
|
||||
|
||||
println("\n", hline, "\n", vlines)
|
||||
for row in 1:9
|
||||
print(" | ")
|
||||
row == 8 && print("*Lanthanide ")
|
||||
row == 9 && print("° Actinide ")
|
||||
for col in 1:18
|
||||
if haskey(positions, (row, col))
|
||||
print(lpad(ELEMENTS[positions[(row, col)]], 2), col == 18 ? " " : " ")
|
||||
elseif row < 8
|
||||
print(col == 3 && row == 6 ? " * " : col == 3 && row == 7 ? " ° " : " ")
|
||||
end
|
||||
end
|
||||
println("|")
|
||||
println(vlines)
|
||||
end
|
||||
println(hline)
|
||||
end
|
||||
|
||||
test_periodic_table()
|
||||
|
|
|
|||
|
|
@ -1,34 +1,32 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">match_wp</span> <span style="color: #0000FF;">=</span> <span style="color: #004600;">false</span>
|
||||
with javascript_semantics
|
||||
constant match_wp = false
|
||||
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">prc</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">t</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">10</span><span style="color: #0000FF;">,</span><span style="color: #000000;">18</span><span style="color: #0000FF;">,</span><span style="color: #000000;">36</span><span style="color: #0000FF;">,</span><span style="color: #000000;">54</span><span style="color: #0000FF;">,</span><span style="color: #000000;">86</span><span style="color: #0000FF;">,</span><span style="color: #000000;">118</span><span style="color: #0000FF;">,</span><span style="color: #000000;">119</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">row</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">abs</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">binary_search</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">,</span><span style="color: #000000;">t</span><span style="color: #0000FF;">,</span><span style="color: #004600;">true</span><span style="color: #0000FF;">))-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #000000;">col</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">-</span><span style="color: #000000;">t</span><span style="color: #0000FF;">[</span><span style="color: #000000;">row</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">col</span><span style="color: #0000FF;">></span><span style="color: #000000;">1</span><span style="color: #0000FF;">+(</span><span style="color: #000000;">row</span><span style="color: #0000FF;">></span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">col</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">18</span><span style="color: #0000FF;">-(</span><span style="color: #000000;">t</span><span style="color: #0000FF;">[</span><span style="color: #000000;">row</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]-</span><span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">match_wp</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">col</span><span style="color: #0000FF;"><=</span><span style="color: #000000;">2</span> <span style="color: #008080;">then</span> <span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">row</span><span style="color: #0000FF;">+</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">col</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">else</span> <span style="color: #000080;font-style:italic;">-- matches above ascii:</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">col</span><span style="color: #0000FF;"><=</span><span style="color: #000000;">2</span><span style="color: #0000FF;">+(</span><span style="color: #000000;">row</span><span style="color: #0000FF;">></span><span style="color: #000000;">5</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> <span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">row</span><span style="color: #0000FF;">+</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">col</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">row</span><span style="color: #0000FF;">,</span><span style="color: #000000;">col</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
function prc(integer n)
|
||||
constant t = {0,2,10,18,36,54,86,118,119}
|
||||
integer row = abs(binary_search(n,t,true))-1,
|
||||
col = n-t[row]
|
||||
if col>1+(row>1) then
|
||||
col = 18-(t[row+1]-n)
|
||||
if match_wp then
|
||||
if col<=2 then return {row+2,col+14} end if
|
||||
else -- matches above ascii:
|
||||
if col<=2+(row>5) then return {row+2,col+15} end if
|
||||
end if
|
||||
end if
|
||||
return {row,col}
|
||||
end function
|
||||
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">pt</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">,</span><span style="color: #000000;">19</span><span style="color: #0000FF;">),</span><span style="color: #000000;">10</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">][</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..$]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">,{{</span><span style="color: #008000;">"%3d"</span><span style="color: #0000FF;">},</span><span style="color: #7060A8;">tagset</span><span style="color: #0000FF;">(</span><span style="color: #000000;">18</span><span style="color: #0000FF;">)})</span> <span style="color: #000080;font-style:italic;">-- column headings</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">9</span> <span style="color: #008080;">do</span> <span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">][</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%3d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">end</span> <span style="color: #008080;">for</span> <span style="color: #000080;font-style:italic;">-- row numbers</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">118</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">r</span><span style="color: #0000FF;">,</span><span style="color: #000000;">c</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">prc</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">r</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">][</span><span style="color: #000000;">c</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%3d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #008080;">not</span> <span style="color: #000000;">match_wp</span> <span style="color: #008080;">then</span> <span style="color: #000080;font-style:italic;">-- (ascii only:)</span>
|
||||
<span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">7</span><span style="color: #0000FF;">][</span><span style="color: #000000;">4</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">" L*"</span>
|
||||
<span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">8</span><span style="color: #0000FF;">][</span><span style="color: #000000;">4</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">" A*"</span>
|
||||
<span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">9</span><span style="color: #0000FF;">][</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..</span><span style="color: #000000;">4</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"Lanthanide:"</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">10</span><span style="color: #0000FF;">][</span><span style="color: #000000;">2</span><span style="color: #0000FF;">..</span><span style="color: #000000;">4</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">" Actinide:"</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">pt</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"|"</span><span style="color: #0000FF;">}}),</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">)})</span>
|
||||
<!--
|
||||
sequence pt = repeat(repeat(" ",19),10)
|
||||
pt[1][2..$] = apply(true,sprintf,{{"%3d"},tagset(18)}) -- column headings
|
||||
for i=1 to 9 do pt[i+1][1] = sprintf("%3d",i) end for -- row numbers
|
||||
for i=1 to 118 do
|
||||
integer {r,c} = prc(i)
|
||||
pt[r+1][c+1] = sprintf("%3d",i)
|
||||
end for
|
||||
if not match_wp then -- (ascii only:)
|
||||
pt[7][4] = " L*"
|
||||
pt[8][4] = " A*"
|
||||
pt[9][2..4] = {"Lanthanide:"}
|
||||
pt[10][2..4] = {" Actinide:"}
|
||||
end if
|
||||
printf(1,"%s\n",{join(apply(true,join,{pt,{"|"}}),"\n")})
|
||||
|
|
|
|||
|
|
@ -1,54 +1,52 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">ptxt</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
|
||||
__________________________________________________________________________
|
||||
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
||||
| |
|
||||
|1 H He |
|
||||
| |
|
||||
|2 Li Be B C N O F Ne |
|
||||
| |
|
||||
|3 Na Mg Al Si P S Cl Ar |
|
||||
| |
|
||||
|4 K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr |
|
||||
| |
|
||||
|5 Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe |
|
||||
| |
|
||||
|6 Cs Ba * Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn |
|
||||
| |
|
||||
|7 Fr Ra + Rf Db Sg Bh Hs Mt Ds Rg Cn Nh Fl Mc Lv Ts Og |
|
||||
|__________________________________________________________________________|
|
||||
| |
|
||||
| |
|
||||
|8 Lantanoidi* La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu |
|
||||
| |
|
||||
|9 Aktinoidi+ Ak Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr |
|
||||
|__________________________________________________________________________|
|
||||
"""</span>
|
||||
constant ptxt = """
|
||||
__________________________________________________________________________
|
||||
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
||||
| |
|
||||
|1 H He |
|
||||
| |
|
||||
|2 Li Be B C N O F Ne |
|
||||
| |
|
||||
|3 Na Mg Al Si P S Cl Ar |
|
||||
| |
|
||||
|4 K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr |
|
||||
| |
|
||||
|5 Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe |
|
||||
| |
|
||||
|6 Cs Ba * Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn |
|
||||
| |
|
||||
|7 Fr Ra + Rf Db Sg Bh Hs Mt Ds Rg Cn Nh Fl Mc Lv Ts Og |
|
||||
|__________________________________________________________________________|
|
||||
| |
|
||||
| |
|
||||
|8 Lantanoidi* La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu |
|
||||
| |
|
||||
|9 Aktinoidi+ Ak Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr |
|
||||
|__________________________________________________________________________|
|
||||
"""
|
||||
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">tablify</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">ptxt</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ptxt</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">),</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">l</span> <span style="color: #008080;">in</span> <span style="color: #000000;">lines</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">ln</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">l</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]-</span><span style="color: #008000;">'0'</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">c</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">ln</span><span style="color: #0000FF;">>=</span><span style="color: #000000;">1</span> <span style="color: #008080;">and</span> <span style="color: #000000;">ln</span><span style="color: #0000FF;"><=</span><span style="color: #000000;">9</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,{})</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">j</span><span style="color: #0000FF;">=</span><span style="color: #000000;">5</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">l</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">by</span> <span style="color: #000000;">4</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">c</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">l</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">]>=</span><span style="color: #008000;">'A'</span> <span style="color: #008080;">and</span> <span style="color: #000000;">l</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">+</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]<=</span><span style="color: #008000;">' '</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">res</span><span style="color: #0000FF;">[$]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">[$],{</span><span style="color: #7060A8;">trim</span><span style="color: #0000FF;">(</span><span style="color: #000000;">l</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">..</span><span style="color: #000000;">j</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]),</span><span style="color: #000000;">ln</span><span style="color: #0000FF;">,</span><span style="color: #000000;">c</span><span style="color: #0000FF;">})</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">7</span><span style="color: #0000FF;">][</span><span style="color: #000000;">3</span><span style="color: #0000FF;">..</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">9</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">6</span><span style="color: #0000FF;">][</span><span style="color: #000000;">3</span><span style="color: #0000FF;">..</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">8</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..</span><span style="color: #000000;">7</span><span style="color: #0000FF;">],{},{})</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
function tablify(string ptxt)
|
||||
sequence lines = split(ptxt,"\n"),
|
||||
res = {}
|
||||
for l in lines do
|
||||
integer ln = l[2]-'0', c = 0
|
||||
if ln>=1 and ln<=9 then
|
||||
res = append(res,{})
|
||||
for j=5 to length(l) by 4 do
|
||||
c += 1
|
||||
if l[j]>='A' and l[j+2]<=' ' then
|
||||
res[$] = append(res[$],{trim(l[j..j+1]),ln,c})
|
||||
end if
|
||||
end for
|
||||
end if
|
||||
end for
|
||||
res[7][3..2] = res[9]
|
||||
res[6][3..2] = res[8]
|
||||
res = join(res[1..7],{},{})
|
||||
return res
|
||||
end function
|
||||
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">pt</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">,{{</span><span style="color: #008000;">"(%s) is at %d, %d"</span><span style="color: #0000FF;">},</span><span style="color: #000000;">tablify</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ptxt</span><span style="color: #0000FF;">)})</span>
|
||||
constant pt = apply(true,sprintf,{{"(%s) is at %d, %d"},tablify(ptxt)})
|
||||
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">e</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">29</span><span style="color: #0000FF;">,</span><span style="color: #000000;">42</span><span style="color: #0000FF;">,</span><span style="color: #000000;">57</span><span style="color: #0000FF;">,</span><span style="color: #000000;">58</span><span style="color: #0000FF;">,</span><span style="color: #000000;">59</span><span style="color: #0000FF;">,</span><span style="color: #000000;">71</span><span style="color: #0000FF;">,</span><span style="color: #000000;">72</span><span style="color: #0000FF;">,</span><span style="color: #000000;">89</span><span style="color: #0000FF;">,</span><span style="color: #000000;">90</span><span style="color: #0000FF;">,</span><span style="color: #000000;">103</span><span style="color: #0000FF;">,</span><span style="color: #000000;">113</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Element %d %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">e</span><span style="color: #0000FF;">,</span><span style="color: #000000;">pt</span><span style="color: #0000FF;">[</span><span style="color: #000000;">e</span><span style="color: #0000FF;">]})</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<!--
|
||||
for e in {1,2,29,42,57,58,59,71,72,89,90,103,113} do
|
||||
printf(1,"Element %d %s\n",{e,pt[e]})
|
||||
end for
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue