Тема: Код Грея
Потрібнопотрібно передбачити введеня числа у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;
}