Periodic table: Difference between revisions
Content added Content deleted
(→{{header|Nascom BASIC}}: Added.) |
(Dialects of BASIC moved to the BASIC section and set in alphabetical order.) |
||
Line 184: | Line 184: | ||
</pre> |
</pre> |
||
=={{header|Applesoft BASIC}}== |
|||
=={{header|BASIC}}== |
|||
==={{header|Applesoft BASIC}}=== |
|||
This program borrows from the [[#Python|Python]] solution but only PRINTs the results of the tests shown in the task. Each row and column from the tests are PLOTted in a COLORful table. |
This program borrows from the [[#Python|Python]] solution but only PRINTs the results of the tests shown in the task. Each row and column from the tests are PLOTted in a COLORful table. |
||
<lang gwbasic>0 GR:HOME:COLOR=11:FORR=1TO7:FORC=1TO2:GOSUB7:NEXTC,R:COLOR=7:FORR=4TO7:FORC=3+(R>5)TO12:GOSUB7:NEXTC,R:COLOR=13:FORR=2TO7:FORC=13TO18:GOSUB7:NEXTC,R |
<lang gwbasic>0 GR:HOME:COLOR=11:FORR=1TO7:FORC=1TO2:GOSUB7:NEXTC,R:COLOR=7:FORR=4TO7:FORC=3+(R>5)TO12:GOSUB7:NEXTC,R:COLOR=13:FORR=2TO7:FORC=13TO18:GOSUB7:NEXTC,R |
||
Line 194: | Line 196: | ||
6 E=W-E:L=1+(N>2):C=K+E*(K>L):RETURN |
6 E=W-E:L=1+(N>2):C=K+E*(K>L):RETURN |
||
7 K=C+(R=1ANDC=2)*16:VLINR*4+Z,R*4+2ATK*2+1:RETURN</lang> |
7 K=C+(R=1ANDC=2)*16:VLINR*4+Z,R*4+2ATK*2+1:RETURN</lang> |
||
=={{header|BASIC}}== |
|||
==={{header|QBasic}}=== |
|||
{{works with|QBasic|1.1}} |
|||
{{works with|QuickBasic|4.5}} |
|||
{{trans|FreeBASIC}} |
|||
<lang qbasic>SUB MostarPos (N) |
|||
DIM a(7) |
|||
RESTORE a: |
|||
FOR x = 0 TO 7: READ a(x): NEXT x |
|||
DIM b(7) |
|||
RESTORE b: |
|||
FOR x = 0 TO 7: READ b(x): NEXT x |
|||
I = 7 |
|||
WHILE a(I) > N |
|||
I = I - 1 |
|||
WEND |
|||
M = N + b(I) |
|||
R = (M \ 18) + 1 |
|||
C = (M MOD 18) + 1 |
|||
PRINT USING "Atomic number ### -> #_, ##"; N; R; C |
|||
END SUB |
|||
DIM Element(0 TO 12) |
|||
RESTORE elements |
|||
elements: |
|||
DATA 1, 2, 29, 42, 57, 58, 59, 71, 72, 89, 90, 103, 113 |
|||
FOR x = 0 TO 12: READ Element(x): NEXT x |
|||
FOR I = 0 TO UBOUND(Element) |
|||
MostarPos (Element(I)) |
|||
NEXT I |
|||
a: |
|||
DATA 1, 2, 5, 13, 57, 72, 89, 104 |
|||
b: |
|||
DATA -1, 15, 25, 35, 72, 21, 58, 7</lang> |
|||
{{out}} |
|||
<pre>Same as FreeBASIC entry.</pre> |
|||
==={{header|BASIC256}}=== |
==={{header|BASIC256}}=== |
||
Line 257: | Line 218: | ||
{{out}} |
{{out}} |
||
<pre>Same as FreeBASIC entry.</pre> |
<pre>Same as FreeBASIC entry.</pre> |
||
==={{header|FreeBASIC}}=== |
|||
{{trans|XPL0}} |
|||
<lang freebasic>Sub MostarPos(N As Integer) |
|||
Dim As Integer M, I, R, C |
|||
Dim As Integer A(0 To 7) = { 1, 2, 5, 13, 57, 72, 89, 104} 'magic numbers |
|||
Dim As Integer B(0 To 7) = {-1, 15, 25, 35, 72, 21, 58, 7} |
|||
I = 7 |
|||
While A(I) > N |
|||
I -= 1 |
|||
Wend |
|||
M = N + B(I) |
|||
R = (M \ 18) +1 |
|||
C = (M Mod 18) +1 |
|||
Print Using "Atomic number ### -> #_, ##"; N; R; C |
|||
End Sub |
|||
Dim As Integer Element(0 To 12) = {1, 2, 29, 42, 57, 58, 59, 71, 72, 89, 90, 103, 113} |
|||
For I As Integer = 0 To Ubound(Element) |
|||
MostarPos(Element(I)) |
|||
Next I</lang> |
|||
{{out}} |
|||
<pre>Atomic number 1 -> 1, 1 |
|||
Atomic number 2 -> 1, 18 |
|||
Atomic number 29 -> 4, 11 |
|||
Atomic number 42 -> 5, 6 |
|||
Atomic number 57 -> 8, 4 |
|||
Atomic number 58 -> 8, 5 |
|||
Atomic number 59 -> 8, 6 |
|||
Atomic number 71 -> 8, 18 |
|||
Atomic number 72 -> 6, 4 |
|||
Atomic number 89 -> 9, 4 |
|||
Atomic number 90 -> 9, 5 |
|||
Atomic number 103 -> 9, 18 |
|||
Atomic number 113 -> 7, 13</pre> |
|||
==={{header|FutureBasic}}=== |
|||
Old fashioned way: |
|||
<lang futurebasic> |
|||
include "NSLog.incl" |
|||
local fn PeriodicTable( n as NSInteger ) as CFDictionaryRef |
|||
NSInteger i, row = 0, start = 0, finish, limits(6,6) |
|||
CFDictionaryRef dict = NULL |
|||
if n < 1 or n > 118 then NSLog( @"Atomic number is out of range." ) : exit fn |
|||
if n == 1 then dict = @{@"row":@1, @"col":@1} : exit fn |
|||
if n == 2 then dict = @{@"row":@1, @"col":@18} : exit fn |
|||
if n >= 57 and n <= 71 then dict = @{@"row":@8, @"col":fn NumberWithInteger( n - 53 )} : exit fn |
|||
if n >= 89 and n <= 103 then dict = @{@"row":@9, @"col":fn NumberWithInteger( n - 85 )} : exit fn |
|||
limits(0,0) = 3 : limits(0,1) = 10 |
|||
limits(1,0) = 11 : limits(1,1) = 18 |
|||
limits(2,0) = 19 : limits(2,1) = 36 |
|||
limits(3,0) = 37 : limits(3,1) = 54 |
|||
limits(4,0) = 55 : limits(4,1) = 86 |
|||
limits(5,0) = 87 : limits(5,1) = 118 |
|||
for i = 0 to 5 |
|||
if ( n >= limits(i,0) and n <= limits(i,1) ) |
|||
row = i + 2 |
|||
start = limits(i,0) |
|||
finish = limits(i,1) |
|||
break |
|||
end if |
|||
next |
|||
if ( n < start + 2 or row == 4 or row == 5 ) |
|||
dict = @{@"row":fn NumberWithInteger(row), @"col":fn NumberWithInteger( n - start + 1 )} : exit fn |
|||
end if |
|||
dict = @{@"row":fn NumberWithInteger(row), @"col":fn NumberWithInteger( n - finish + 18 )} |
|||
end fn = dict |
|||
local fn BuildTable |
|||
NSInteger i, count |
|||
CFArrayRef numbers = @[@1, @2, @29, @42, @57, @58, @59, @71, @72, @89, @90, @103, @113] |
|||
count = fn ArrayCount( numbers ) |
|||
for i = 0 to count -1 |
|||
CFDictionaryRef coordinates = fn PeriodicTable( fn NumberIntegerValue( numbers[i] ) ) |
|||
NSLog( @"Atomic number %3d -> (%d, %d)", fn NumberIntegerValue( numbers[i] ), fn NumberIntegerValue( coordinates[@"row"] ), fn NumberIntegerValue( coordinates[@"col"] ) ) |
|||
next |
|||
end fn |
|||
fn BuildTable |
|||
HandleEvents |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
Atomic number 1 -> (1, 1) |
|||
Atomic number 2 -> (1, 18) |
|||
Atomic number 29 -> (4, 11) |
|||
Atomic number 42 -> (5, 6) |
|||
Atomic number 57 -> (8, 4) |
|||
Atomic number 58 -> (8, 5) |
|||
Atomic number 59 -> (8, 6) |
|||
Atomic number 71 -> (8, 18) |
|||
Atomic number 72 -> (6, 4) |
|||
Atomic number 89 -> (9, 4) |
|||
Atomic number 90 -> (9, 5) |
|||
Atomic number 103 -> (9, 18) |
|||
Atomic number 113 -> (7, 13) |
|||
</pre> |
|||
Modern way. (Too bad you can no longer upload images to Rosetta Code.) |
|||
<lang futurebasic> |
|||
_window = 1 |
|||
void local fn BuildPeriodicTableArrays |
|||
CFArrayRef periodicArr = @[@"",¬ |
|||
@"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", @"Lu", @"Hf", @"Ta", @"W", @"Re", @"Os", @"Ir", @"Pt", @"Au", @"Hg", @"Tl", @"Pb", @"Bi", @"Po", @"At", @"Rn",¬ |
|||
@"Fr", @"Ra", @"Lr", @"Rf", @"Db", @"Sg", @"Bh", @"Hs", @"Mt", @"Ds", @"Rg", @"Cn", @"Nh", @"Fl", @"Mc", @"Lv", @"Ts", @"Og",¬ |
|||
@"", @"", @"La", @"Ce", @"Pr", @"Nd", @"Pm", @"Sm", @"Eu", @"Gd", @"Tb", @"Dy", @"Ho", @"Er", @"Tm", @"Yb", @"", @"",¬ |
|||
@"", @"", @"Ac", @"Th", @"Pa", @"U", @"NP", @"Pu", @"Am", @"Cm", @"Bk", @"Cf", @"Es", @"Fm", @"Md", @"No", @"", @""] |
|||
AppSetProperty( @"periodicTable", periodicArr ) |
|||
CFArrayRef numbersArr = @[@"",¬ |
|||
@"1", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"2",¬ |
|||
@"3", @"4", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"5", @"6", @"7", @"8", @"9", @"10",¬ |
|||
@"11", @"12", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"13", @"14", @"15", @"16", @"17", @"18",¬ |
|||
@"19", @"20", @"21", @"22", @"23", @"24", @"25", @"26", @"27", @"28", @"29", @"30", @"31", @"32", @"33", @"34", @"35", @"36",¬ |
|||
@"37", @"38", @"39", @"40", @"41", @"42", @"43", @"44", @"45", @"46", @"47", @"48", @"49", @"50", @"51", @"52", @"53", @"54",¬ |
|||
@"55", @"56", @"71", @"72", @"73", @"74", @"75", @"76", @"77", @"78", @"79", @"80", @"81", @"82", @"83", @"84", @"85", @"86",¬ |
|||
@"87", @"88", @"103", @"104", @"105", @"106", @"107", @"108", @"109", @"110", @"111", @"112", @"113", @"114", @"114", @"116", @"117", @"118",¬ |
|||
@"", @"", @"57", @"58", @"59", @"60", @"61", @"62", @"63", @"64", @"65", @"66", @"67", @"68", @"59", @"70", @"", @"",¬ |
|||
@"", @"", @"89", @"90", @"91", @"92", @"93", @"94", @"95", @"96", @"97", @"98", @"99", @"100", @"101", @"102", @"", @""] |
|||
AppSetProperty( @"periodicNumbers", numbersArr ) |
|||
end fn |
|||
void local fn BuildWindow |
|||
NSInteger i, j, row |
|||
CGRect r |
|||
CFArrayRef periodicArr, numbersArr |
|||
CFStringRef tempStr |
|||
periodicArr = fn AppProperty( @"periodicTable" ) |
|||
numbersArr = fn AppProperty( @"periodicNumbers" ) |
|||
window _window, @"Periodic Table", ( 0, 0, 700, 400 ) |
|||
WindowSetBackgroundColor( _window, fn ColorWhite ) |
|||
j = 0 : row = 350 |
|||
r = fn CGRectMake( 10, row, 36, 40 ) |
|||
for i = 1 to 162 |
|||
if fn StringIsEqual( periodicArr[i], @"" ) then tempStr = @"" else tempStr = fn StringWithFormat( @"%@\n%@", numbersArr[i], periodicArr[i] ) |
|||
textfield i,, tempStr, r, _window |
|||
TextFieldSetBackgroundColor( i, fn ColorBlue ) |
|||
TextFieldSetTextColor( i, fn ColorWhite ) |
|||
ControlSetFontWithName( i, @"Menlo", 12.0 ) |
|||
ControlSetAlignment(i, NSTextAlignmentCenter ) |
|||
r = fn CGRectOffset( r, 38, 0 ) |
|||
j++ |
|||
if ( j == 18 ) |
|||
row = row - 42 |
|||
r = fn CGRectMake( 10, row, 36, 40 ) |
|||
j = 0 |
|||
end if |
|||
next |
|||
for i = 1 to 162 |
|||
if fn StringIsEqual( fn ControlStringValue( i ), @"" ) then ViewRemoveFromSuperview( i ) |
|||
next |
|||
end fn |
|||
fn BuildPeriodicTableArrays |
|||
fn BuildWindow |
|||
HandleEvents |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
[Sorry, screenshot can't be uploaded.] |
|||
</pre> |
|||
==={{header|Gambas}}=== |
==={{header|Gambas}}=== |
||
Line 324: | Line 469: | ||
103 -> 9 18 |
103 -> 9 18 |
||
</pre> |
</pre> |
||
==={{header|QBasic}}=== |
|||
{{works with|QBasic|1.1}} |
|||
{{works with|QuickBasic|4.5}} |
|||
{{trans|FreeBASIC}} |
|||
<lang qbasic>SUB MostarPos (N) |
|||
DIM a(7) |
|||
RESTORE a: |
|||
FOR x = 0 TO 7: READ a(x): NEXT x |
|||
DIM b(7) |
|||
RESTORE b: |
|||
FOR x = 0 TO 7: READ b(x): NEXT x |
|||
I = 7 |
|||
WHILE a(I) > N |
|||
I = I - 1 |
|||
WEND |
|||
M = N + b(I) |
|||
R = (M \ 18) + 1 |
|||
C = (M MOD 18) + 1 |
|||
PRINT USING "Atomic number ### -> #_, ##"; N; R; C |
|||
END SUB |
|||
DIM Element(0 TO 12) |
|||
RESTORE elements |
|||
elements: |
|||
DATA 1, 2, 29, 42, 57, 58, 59, 71, 72, 89, 90, 103, 113 |
|||
FOR x = 0 TO 12: READ Element(x): NEXT x |
|||
FOR I = 0 TO UBOUND(Element) |
|||
MostarPos (Element(I)) |
|||
NEXT I |
|||
a: |
|||
DATA 1, 2, 5, 13, 57, 72, 89, 104 |
|||
b: |
|||
DATA -1, 15, 25, 35, 72, 21, 58, 7</lang> |
|||
{{out}} |
|||
<pre>Same as FreeBASIC entry.</pre> |
|||
==={{header|Run BASIC}}=== |
==={{header|Run BASIC}}=== |
||
Line 536: | Line 720: | ||
{{out}} |
{{out}} |
||
<pre>Same as FreeBASIC entry.</pre> |
<pre>Same as FreeBASIC entry.</pre> |
||
=={{header|FreeBASIC}}== |
|||
{{trans|XPL0}} |
|||
<lang freebasic>Sub MostarPos(N As Integer) |
|||
Dim As Integer M, I, R, C |
|||
Dim As Integer A(0 To 7) = { 1, 2, 5, 13, 57, 72, 89, 104} 'magic numbers |
|||
Dim As Integer B(0 To 7) = {-1, 15, 25, 35, 72, 21, 58, 7} |
|||
I = 7 |
|||
While A(I) > N |
|||
I -= 1 |
|||
Wend |
|||
M = N + B(I) |
|||
R = (M \ 18) +1 |
|||
C = (M Mod 18) +1 |
|||
Print Using "Atomic number ### -> #_, ##"; N; R; C |
|||
End Sub |
|||
Dim As Integer Element(0 To 12) = {1, 2, 29, 42, 57, 58, 59, 71, 72, 89, 90, 103, 113} |
|||
For I As Integer = 0 To Ubound(Element) |
|||
MostarPos(Element(I)) |
|||
Next I</lang> |
|||
{{out}} |
|||
<pre>Atomic number 1 -> 1, 1 |
|||
Atomic number 2 -> 1, 18 |
|||
Atomic number 29 -> 4, 11 |
|||
Atomic number 42 -> 5, 6 |
|||
Atomic number 57 -> 8, 4 |
|||
Atomic number 58 -> 8, 5 |
|||
Atomic number 59 -> 8, 6 |
|||
Atomic number 71 -> 8, 18 |
|||
Atomic number 72 -> 6, 4 |
|||
Atomic number 89 -> 9, 4 |
|||
Atomic number 90 -> 9, 5 |
|||
Atomic number 103 -> 9, 18 |
|||
Atomic number 113 -> 7, 13</pre> |
|||
=={{header|FutureBasic}}== |
|||
Old fashioned way: |
|||
<lang futurebasic> |
|||
include "NSLog.incl" |
|||
local fn PeriodicTable( n as NSInteger ) as CFDictionaryRef |
|||
NSInteger i, row = 0, start = 0, finish, limits(6,6) |
|||
CFDictionaryRef dict = NULL |
|||
if n < 1 or n > 118 then NSLog( @"Atomic number is out of range." ) : exit fn |
|||
if n == 1 then dict = @{@"row":@1, @"col":@1} : exit fn |
|||
if n == 2 then dict = @{@"row":@1, @"col":@18} : exit fn |
|||
if n >= 57 and n <= 71 then dict = @{@"row":@8, @"col":fn NumberWithInteger( n - 53 )} : exit fn |
|||
if n >= 89 and n <= 103 then dict = @{@"row":@9, @"col":fn NumberWithInteger( n - 85 )} : exit fn |
|||
limits(0,0) = 3 : limits(0,1) = 10 |
|||
limits(1,0) = 11 : limits(1,1) = 18 |
|||
limits(2,0) = 19 : limits(2,1) = 36 |
|||
limits(3,0) = 37 : limits(3,1) = 54 |
|||
limits(4,0) = 55 : limits(4,1) = 86 |
|||
limits(5,0) = 87 : limits(5,1) = 118 |
|||
for i = 0 to 5 |
|||
if ( n >= limits(i,0) and n <= limits(i,1) ) |
|||
row = i + 2 |
|||
start = limits(i,0) |
|||
finish = limits(i,1) |
|||
break |
|||
end if |
|||
next |
|||
if ( n < start + 2 or row == 4 or row == 5 ) |
|||
dict = @{@"row":fn NumberWithInteger(row), @"col":fn NumberWithInteger( n - start + 1 )} : exit fn |
|||
end if |
|||
dict = @{@"row":fn NumberWithInteger(row), @"col":fn NumberWithInteger( n - finish + 18 )} |
|||
end fn = dict |
|||
local fn BuildTable |
|||
NSInteger i, count |
|||
CFArrayRef numbers = @[@1, @2, @29, @42, @57, @58, @59, @71, @72, @89, @90, @103, @113] |
|||
count = fn ArrayCount( numbers ) |
|||
for i = 0 to count -1 |
|||
CFDictionaryRef coordinates = fn PeriodicTable( fn NumberIntegerValue( numbers[i] ) ) |
|||
NSLog( @"Atomic number %3d -> (%d, %d)", fn NumberIntegerValue( numbers[i] ), fn NumberIntegerValue( coordinates[@"row"] ), fn NumberIntegerValue( coordinates[@"col"] ) ) |
|||
next |
|||
end fn |
|||
fn BuildTable |
|||
HandleEvents |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
Atomic number 1 -> (1, 1) |
|||
Atomic number 2 -> (1, 18) |
|||
Atomic number 29 -> (4, 11) |
|||
Atomic number 42 -> (5, 6) |
|||
Atomic number 57 -> (8, 4) |
|||
Atomic number 58 -> (8, 5) |
|||
Atomic number 59 -> (8, 6) |
|||
Atomic number 71 -> (8, 18) |
|||
Atomic number 72 -> (6, 4) |
|||
Atomic number 89 -> (9, 4) |
|||
Atomic number 90 -> (9, 5) |
|||
Atomic number 103 -> (9, 18) |
|||
Atomic number 113 -> (7, 13) |
|||
</pre> |
|||
Modern way. (Too bad you can no longer upload images to Rosetta Code.) |
|||
<lang futurebasic> |
|||
_window = 1 |
|||
void local fn BuildPeriodicTableArrays |
|||
CFArrayRef periodicArr = @[@"",¬ |
|||
@"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", @"Lu", @"Hf", @"Ta", @"W", @"Re", @"Os", @"Ir", @"Pt", @"Au", @"Hg", @"Tl", @"Pb", @"Bi", @"Po", @"At", @"Rn",¬ |
|||
@"Fr", @"Ra", @"Lr", @"Rf", @"Db", @"Sg", @"Bh", @"Hs", @"Mt", @"Ds", @"Rg", @"Cn", @"Nh", @"Fl", @"Mc", @"Lv", @"Ts", @"Og",¬ |
|||
@"", @"", @"La", @"Ce", @"Pr", @"Nd", @"Pm", @"Sm", @"Eu", @"Gd", @"Tb", @"Dy", @"Ho", @"Er", @"Tm", @"Yb", @"", @"",¬ |
|||
@"", @"", @"Ac", @"Th", @"Pa", @"U", @"NP", @"Pu", @"Am", @"Cm", @"Bk", @"Cf", @"Es", @"Fm", @"Md", @"No", @"", @""] |
|||
AppSetProperty( @"periodicTable", periodicArr ) |
|||
CFArrayRef numbersArr = @[@"",¬ |
|||
@"1", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"2",¬ |
|||
@"3", @"4", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"5", @"6", @"7", @"8", @"9", @"10",¬ |
|||
@"11", @"12", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"13", @"14", @"15", @"16", @"17", @"18",¬ |
|||
@"19", @"20", @"21", @"22", @"23", @"24", @"25", @"26", @"27", @"28", @"29", @"30", @"31", @"32", @"33", @"34", @"35", @"36",¬ |
|||
@"37", @"38", @"39", @"40", @"41", @"42", @"43", @"44", @"45", @"46", @"47", @"48", @"49", @"50", @"51", @"52", @"53", @"54",¬ |
|||
@"55", @"56", @"71", @"72", @"73", @"74", @"75", @"76", @"77", @"78", @"79", @"80", @"81", @"82", @"83", @"84", @"85", @"86",¬ |
|||
@"87", @"88", @"103", @"104", @"105", @"106", @"107", @"108", @"109", @"110", @"111", @"112", @"113", @"114", @"114", @"116", @"117", @"118",¬ |
|||
@"", @"", @"57", @"58", @"59", @"60", @"61", @"62", @"63", @"64", @"65", @"66", @"67", @"68", @"59", @"70", @"", @"",¬ |
|||
@"", @"", @"89", @"90", @"91", @"92", @"93", @"94", @"95", @"96", @"97", @"98", @"99", @"100", @"101", @"102", @"", @""] |
|||
AppSetProperty( @"periodicNumbers", numbersArr ) |
|||
end fn |
|||
void local fn BuildWindow |
|||
NSInteger i, j, row |
|||
CGRect r |
|||
CFArrayRef periodicArr, numbersArr |
|||
CFStringRef tempStr |
|||
periodicArr = fn AppProperty( @"periodicTable" ) |
|||
numbersArr = fn AppProperty( @"periodicNumbers" ) |
|||
window _window, @"Periodic Table", ( 0, 0, 700, 400 ) |
|||
WindowSetBackgroundColor( _window, fn ColorWhite ) |
|||
j = 0 : row = 350 |
|||
r = fn CGRectMake( 10, row, 36, 40 ) |
|||
for i = 1 to 162 |
|||
if fn StringIsEqual( periodicArr[i], @"" ) then tempStr = @"" else tempStr = fn StringWithFormat( @"%@\n%@", numbersArr[i], periodicArr[i] ) |
|||
textfield i,, tempStr, r, _window |
|||
TextFieldSetBackgroundColor( i, fn ColorBlue ) |
|||
TextFieldSetTextColor( i, fn ColorWhite ) |
|||
ControlSetFontWithName( i, @"Menlo", 12.0 ) |
|||
ControlSetAlignment(i, NSTextAlignmentCenter ) |
|||
r = fn CGRectOffset( r, 38, 0 ) |
|||
j++ |
|||
if ( j == 18 ) |
|||
row = row - 42 |
|||
r = fn CGRectMake( 10, row, 36, 40 ) |
|||
j = 0 |
|||
end if |
|||
next |
|||
for i = 1 to 162 |
|||
if fn StringIsEqual( fn ControlStringValue( i ), @"" ) then ViewRemoveFromSuperview( i ) |
|||
next |
|||
end fn |
|||
fn BuildPeriodicTableArrays |
|||
fn BuildWindow |
|||
HandleEvents |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
[Sorry, screenshot can't be uploaded.] |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |