Тема: Код Грея
Потрібнопотрібно передбачити введеня числа у2 8 10 16 системі числення перевести у2 потім в код Грея і вивести результат в 2 8 10 16 системах численя.Потрібно поєднати цих 2 програми
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
class program{
  public:
  
 
void grai()
{
string b, g;
std::cout<<"Введіть число в двійковій системі числення - ";
std::cin>>b;
g = b;
for (int i = b.length() - 1; i > 0; --i)
        g[i] = b[i] == b[i - 1] ? '0' : '1';
cout <<"код Грея "<< g;
}
};
int main()
{
   int x;int y;
cout<<"2-двійкова\n8-вісімкова\n10-десяткова\n16-шіснадцяткова\n";
cout<<"Введіть систему числення - ";
cin>>x;
program cod_grai;
switch(x)
{
  case 2:
cod_grai.grai();
  break;
  case 8:
  
  break;
  case 10:
  
  break;
  case 16:
  
  break;
  default:cout<<"error";
  break;
}
}Програма для переведення
#include <iostream>
#include <cmath>
 
using namespace std;
 
char int_symbol(int in){                        //Описываем символы для вывода
    char out[]={'0','1','2','3','4','5','6','7','8','9',
    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X','Y','Z'};
    return out[in];
}
 
void ten_base(int in, int base){
    if (in<base) {
        cout<<int_symbol(in);
        return;
    }
    ten_base(in/base,base);
    cout<<int_symbol(in%base);
}
 
int main()
{
    setlocale(LC_ALL,"");
    int N,a2,a;                             // a - исходная cистема cчисления, а2 - конечная система счисления, N - вводимое число
    
    cout<<"Введите основание исходной системы счисления : ";
    cin>>a;
    cout<<"Введите исходное число : ";
    cin>>N;
    cout<<"Введите основание конечной системы счисления : ";
    cin>>a2;
    cout<<"Конечное число : ";
    int result=0;
    int cnt=0;
    while (N>0)
    {
        result+=N%10*pow(a,cnt++);
        N/=10;
    }
    ten_base(result,a2);
    return 0;
}