//#ifdef __BORLANDC__
//  #pragma argsused
//#endif
#include <iostream.h>
#include <math.h>
class MathError {
  public:
  MathError() {opis="Blad matemetyczny";}
  char* show() {return opis;}
  protected:
  char *opis;
};
class DivZero : public MathError {
  public:
  DivZero() {opis=" Dzielenie przez zero\n";}
};

class DomError : public MathError {
  public:
  DomError() {opis=" Blad dziedziny\n";}
};

int main( int argc, char * argv[] )
{
  try {
  float a=3;
  float wynik;
  for(int b=5;b>-5;b--) {
  cout<<"a="<<a<<" b="<<b;
  if (b==0) {DivZero wyj; throw(wyj);}
  else
  wynik=a/b;
  cout<<" a/b="<<wynik<<"\n";
  }
  }
  catch(DivZero wyj) {
     cout<<wyj.show();}

     try {
     float a=3;
     float wynik;
     for(int b=5;b>-5;b--) {
     cout<<"b="<<b;
     if (b<1) {DomError wyj; throw(wyj);}
     else
     wynik=log(b);
     cout<<" ln(b)="<<wynik<<"\n";
     }
     }

catch(DomError wyj) {
     cout<<wyj.show();}

  return 0;
}
