#include <iostream.h>
#include <conio.h>
static const int LIMIT=10;
class Array
{ public:
unsigned int arr[LIMIT];
int kol_elem;
Array();
~Array(){};
unsigned int& operator[] (int kol_elem);
virtual void Summa(unsigned int arr_1[LIMIT],unsigned int arr_2[LIMIT]);
};
class Hex: public Array
{ public:
unsigned char hex[LIMIT];
int dec;
unsigned int arr_of_hex[LIMIT];
int HexToDec();
void Summa(unsigned int arr_of_hex_1[LIMIT],unsigned int arr_of_hex_2[LIMIT]){};
};
class Money: public Array
{ public:
unsigned int arr_of_dec[LIMIT];
int dec;
void Summa(unsigned int arr_of_hex_1[LIMIT],unsigned int arr_of_hex_2[LIMIT]){};
};
//============================================================================//
Array::Array()
{
for(int i=0;i<LIMIT;i++)
arr[i]=0;
}
unsigned int& Array::operator[] (int kol_elem)
{
if(kol_elem<0 || kol_elem>=LIMIT)
{
cout<<"Oshibochnui index!!!"<<endl;
exit(1);
}
return arr[kol_elem];
}
void Array::Summa(unsigned int arr_1[LIMIT],unsigned int arr_2[LIMIT])
{
unsigned int sumarr[LIMIT];
for (int i=0; i<kol_elem; i++)
{
sumarr[i]=arr_1[i]+arr_2[i];
cout<<sumarr[i]<<" ";
}
}
//============================================================================//
int Hex::HexToDec()
{
int v; //вес разряда шестнадцатеричного числа
int err; //err==1 - в строке недопустимый символ
int i;
err=0;
strupr(hex); //преобразование введенной строке к верхнему регистру
dec=0;
v=1; //вес младшего разряда шестнадцатеричного числа
for (i = strlen(hex)-1; i>=0; i--)
{
if (hex[i]>='0' && hex[i]<='9')
dec+=v*(hex[i]-48);
else if (hex[i]>='A' && hex[i]<='F')
dec+=v*(hex[i]-55);
else
{
err=1;
break;
}
v*=16;
}
if(!err)
{
printf("Shestnadchaterichnomu chislu %s",hex);
printf(" sootvetstvuet desyatichnoe %u\n",dec);
}
else
{
printf("Stroka %s ne yavlyaetsya ",hex);
printf("shestnadchaterichnum chislom\n");
}
return dec;
}
int main()
{
Array a;
Hex h;
Money m;
cout<<"Kol_elem: ";
cin>>a.kol_elem;
for (int j=0; j<a.kol_elem; j++)
{
cout<<"Vvedite Hex: ";
cin>>h.hex;
h.HexToDec();
h.arr_of_hex[j]=h.dec;
}
cout<<"Elementu array_of_hex: ";
for (int j=0; j<a.kol_elem; j++)
{
cout<<h.arr_of_hex[j]<<" ";
}
cout<<endl<<endl<<"Vvedite elementu array_of_money: ";
for(int i=0; i<a.kol_elem; i++)
{
cin>>m.arr_of_dec[i];
}
cout<<"Elementu array_of_dec: ";
for(int i=0; i<a.kol_elem; i++)
{
cout<<m.arr_of_dec[i]<<" ";
}
cout<<endl<<"Sum_array: ";
a.Summa(h.arr_of_hex,m.arr_of_dec);
getch();
return 0;
}