Online File

How to use this page


Rick Aster: Professional SAS Programming Shortcuts: Contents

Chapter 52
Program
Chemical elements (lookup arrays)


data _null_;

array elsym {109} $ 2 _temporary_ (
    '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', 'Ac', 'Th',
    'Pa', 'U',  'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm',
    'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt');

array elname {109} $ 17 _temporary_ (
    'Hydrogen',  'Helium', 'Lithium', 'Beryllium', 'Boron',
    'Carbon',  'Nitrogen',  'Oxygen',  'Fluorine',  'Neon',
    'Sodium', 'Magnesium', 'Aluminum', 'Silicon', 'Phosphorus',
    'Sulfur', 'Chlorine', 'Argon', 'Potassium', 'Calcium',
    'Scandium', 'Titanium', 'Vanadium', 'Chromium', 'Manganese',
    'Iron', 'Cobalt', 'Nickel', 'Copper', 'Zinc',
    'Gallium', 'Germanium', 'Arsenic', 'Selenium', 'Bromine',
    'Krypton', 'Rubidium', 'Strontium', 'Yttrium', 'Zirconium',
    'Niobium', 'Molybdenum', 'Technetium', 'Ruthenium', 'Rhodium',
    'Palladium', 'Silver', 'Cadmium', 'Indium', 'Tin',
    'Antimony', 'Tellurium', 'Iodine', 'Xenon', 'Cesium',
    'Barium', 'Lanthanum', 'Cerium', 'Praseodymium', 'Neodymium',
    'Prometheum', 'Samarium', 'Europium', 'Gadolinium', 'Terbium',
    'Dysprosium', 'Holmium', 'Erbium', 'Thulium', 'Ytterbium',
    'Lutetium', 'Hafnium', 'Tantalum', 'Tungsten', 'Rhenium',
    'Osmium', 'Iridium', 'Platinum', 'Gold', 'Mercury',
    'Thallium', 'Lead', 'Bismuth', 'Polonium', 'Astatine',
    'Radon', 'Francium', 'Radium', 'Actinium', 'Thorium',
    'Protactinium', 'Uranium', 'Neptunium', 'Plutonium', 'Americium',
    'Curium', 'Berkelium', 'Californium', 'Einsteinium', 'Fermium',
    'Mendelevium', 'Nobelium', 'Lawrencium', 'Rutherfordium', 'Dubnium',
    'Seaborgium', 'Bohrium', 'Hassium', 'Meitnerium');

number = 10;
symbol = elsym{number};
put symbol=;

number = .;
symbol = 'Zn';
do i = lbound(elsym) to hbound(elsym) until(number);
   if symbol = elsym{i} then number = i;
   end;
put symbol= number=;

number = .;
symbol = 'O';
name = '                 ';
do i = lbound(elsym) to hbound(elsym) until(number);
   if symbol = elsym{i} then do;
      number = i;
      name = elname{number};
      end;
   end;
put symbol= number= name=;

declare hash element(ordered: 'a');
element.definekey('number');
element.definedata('number', 'symbol', 'name');
element.definedone();
do number = lbound(elsym) to hbound(elsym);
   symbol = elsym{number};
   name = elname{number};
   element.add();
   end;

number = 4;
element.find();
put (number symbol name) (=);
number = 8;
element.find();
put (number symbol name) (=);

run;

 O /\

Global
Statements

RICK ASTER

SAS

BOOKS

Tech | Dictionary

Download | Rastinate

Rick Aster

Professional SAS Programming Shortcuts

Contents/Online Files

Corrections

Catalog Page