Pick random element: Difference between revisions

Content added Content deleted
No edit summary
(→‎REXX version 1: Refurbished and better variable names)
Line 1,436: Line 1,436:
Also, the newly named elements have been incorporated into this table.
Also, the newly named elements have been incorporated into this table.
<syntaxhighlight lang="rexx">/*REXX program picks a random element from a list (tongue in cheek, a visual pun).*/
<syntaxhighlight lang="rexx">/*REXX program picks a random element from a list (tongue in cheek, a visual pun).*/
l= "Hydrogen_H Helium_He Lithium_Li Beryllium_Be Boron_B"
_= 'hydrogen helium lithium beryllium boron carbon nitrogen oxygen fluorine neon sodium'
l=l "Carbon_C Nitrogen_N Oxygen_O Fluorine_F Neon_Ne Sodium_Na"
_=_ 'magnesium aluminum silicon phosphorous sulfur chlorine argon potassium calcium'
l=l "Magnesium_Mg Aluminium_Al Silicon_Si Phosphorus_P Sulfur_S"
_=_ 'scandium titanium vanadium chromium manganese iron cobalt nickel copper zinc gallium'
l=l "Chlorine_Cl Argon_Ar Potassium_K Calcium_Ca Scandium_Sc"
_=_ 'germanium arsenic selenium bromine krypton rubidium strontium yttrium zirconium'
l=l "Titanium_Ti Vanadium_V Chromium_Cr Manganese_Mn Iron_Fe"
_=_ 'niobium molybdenum technetium ruthenium rhodium palladium silver cadmium indium tin'
l=l "Cobalt_Co Nickel_Ni Copper_Cu Zinc_Zn Gallium_Ga"
_=_ 'antimony tellurium iodine xenon cesium barium lanthanum cerium praseodymium'
l=l "Germanium_Ge Arsenic_As Selenium_Se Bromine_Br Krypton_Kr"
_=_ 'neodymium promethium samarium europium gadolinium terbium dysprosium holmium erbium'
l=l "Rubidium_Rb Strontium_Sr Yttrium_Y Zirconium_Zr Niobium_Nb"
_=_ 'thulium ytterbium lutetium hafnium tantalum tungsten rhenium osmium iridium platinum'
l=l "Molybdenum_Mo Technetium_Tc Ruthenium_Ru Rhodium_Rh"
_=_ 'gold mercury thallium lead bismuth polonium astatine radon francium radium actinium'
l=l "Palladium_Pd Silver_Ag Cadmium_Cd Indium_In Tin_Sn"
_=_ 'thorium protactinium uranium neptunium plutonium americium curium berkelium'
l=l "Antimony_Sb Tellurium_Te Iodine_I Xenon_Xe Caesium_Cs"
_=_ 'californium einsteinium fermium mendelevium nobelium lawrencium rutherfordium dubnium'
l=l "Barium_Ba Lanthanum_La Cerium_Ce Praseodymium_Pr"
_=_ 'seaborgium bohrium hassium meitnerium darmstadtium roentgenium copernicium nihonium'
l=l "Neodymium_Nd Promethium_Pm Samarium_Sm Europium_Eu"
_=_ 'flerovium moscovium livermorium tennessine oganesson ununenniym unbinvlium umbiunium'
l=l "Gadolinium_Gd Terbium_Tb Dysprosium_Dy Holmium_Ho Erbium_Er"
l=l "Thulium_Tm Ytterbium_Yb Lutetium_Lu Hafnium_Hf Tantalum_Ta"
l=l "Tungsten_W Rhenium_Re Osmium_Os Iridium_Ir Platinum_Pt"
l=l "Gold_Au Mercury_Hg Thallium_Tl Lead_Pb Bismuth_Bi"
l=l "Polonium_Po Astatine_At Radon_Rn Francium_Fr Radium_Ra"
l=l "Actinium_Ac Thorium_Th Protactinium_Pa Uranium_U"
l=l "Neptunium_Np Plutonium_Pu Americium_Am Curium_Cm"
l=l "Berkelium_Bk Californium_Cf Einsteinium_Es Fermium_Fm"
l=l "Mendelevium_Md Nobelium_No Lawrencium_Lr Rutherfordium_Rf"
l=l "Dubnium_Db Seaborgium_Sg Bohrium_Bh Hassium_Hs Meitnerium_Mt"
l=l "Darmstadtium_Ds Roentgenium_Rg Copernicium_Cn Nihonium_Nh"
l=l "Flerovium_Fl Moscovium_Mc Livermorium_Lv Tennessine_Ts"
l=l "Oganesson_Og Ununbium_Uub Ununtrium_Uut Ununquadium_Uuq"
n=words(l) /* Number of known elements */
/*----- You can't trust atoms, -----*/
/*----- they make everything up. -----*/
Parse Arg pick /* atomic number specified */
If pick>n Then Do
Say 'Element' pick 'hasn''t been discovered by now'
Exit
End
take=pick
If pick='' Then
take=random(1,n)


item=word(l,take) /*pick the specified or random element */
/*───── You can't trust atoms, ─────*/
Parse Var item name '_' symbol
/*───── they make everything up. ─────*/
If pick='' Then

which='Random'
#= words(_) /*obtain the number of words in list. */
Else
item= word(_, random(1, #) ) /*pick a random word (element) in list.*/
which='Specified'
say 'random element: ' item /*stick a fork in it, we're all done. */</syntaxhighlight>
Say which 'element: ' take name '('symbol')' /*stick a fork in it, we're all done. */</syntaxhighlight>
{{out|output}}
{{out|output}}
<pre>
<pre>E:\>rexx pez
random element: tennessine
Random element: 100 Fermium (Fm)

</pre>
E:\>rexx pez 8
Specified element: 8 Oxygen (O)

E:\>rexx pez 133
Element 133 hasn't been discovered by now</pre>


===version 2===
===version 2===