Тема: Код Грея

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

2

Re: Код Грея

То це ви питання питаєтесь, чи щось пояснити хочете? бо розділ зветься "Статті"

3

Re: Код Грея

FakiNyan, ви навене від мого тролінгу зовсім перестали бути уважними.
Автор написав потрібно поєднати 2 програми.
Але мені здається що вони не повні.
ітого: доробити+поєднати


Ну або зробити спочатку

4

Re: Код Грея

Я буквально 1 раз на форумі  потрібно зробити таку програму щоб користувався спочатку обрав систему числення(2,8,10,16)потім якщо (8,10,16)перевести в двійкову потім у код Грея.

5

Re: Код Грея

ivanmelnek456 написав:

Я буквально 1 раз на форумі  потрібно зробити таку програму щоб користувався спочатку обрав систему числення(2,8,10,16)потім якщо (8,10,16)перевести в двійкову потім у код Грея.

І в чому саме виникла проблема?

6

Re: Код Грея

Мені потрібно щоб програма переводила 8в 2, 10в 2,16в 2
І після того щоб я міг код Грея вивести в 2,8,10,16 системах числення

Мені важко прописати саме ці перетворення. 1фрагмент працює з 2 системою числення переводе її у код Грея
Лишилося прописати там щоб вона переводила з 8-2,10-2,16-2,і виводило код Грея не лише в 2 системі її потрібно перетворити в 8,10,16.Друга програма перетворює до 32системи числення. Треба їх поїдати, а в мене нічого не виходить

7

Re: Код Грея

Пропоную вам спробувати написати маленьку програмку котра буде просто переводити число з 10 системи в 2, а потім ще одну, котра переводитиме з 10 в 8 і т.д. Таким чином ви здобудите необхідні знання для виконання вашого завдання.

8

Re: Код Грея

ivanmelnek456 написав:

Мені потрібно щоб програма переводила 8в 2, 10в 2,16в 2
І після того щоб я міг код Грея вивести в 2,8,10,16 системах числення

Вибачте, але вам варто прочитати ось цей мій допис: https://replace.org.ua/post/112045/#p112045
Можливо, вас він не стосується або стосується частково; але, може, ви вхопите загальну ідею.

ivanmelnek456 написав:

в мене нічого не виходить

Дивно. Оцей код, що ви навели - це, на вашу думку, "нічого"?

Подякували: vаrіg2kо1

9

Re: Код Грея

Проблема в тому що в коді Грея використано String а в іншому фрагменті той що переводить числа в різні системи числення int і мені потрібно зміній типу String присвоїти зміну типу int, я пробував через Class це все зробити не вийшло

10

Re: Код Грея

О, є трохи конкретики.
Для початку - в C++ розрізняються великі і малі літери, String та string - різні речі.
Що значить "через Class" - для мене повна загадка, але стандартний спосіб перетворення чисел на стрічки і навпаки в C++ - stringstream (бібліотека <sstream>, працює схоже на cin та cout). Є також стандартна функція atoi з <cstdlib> та sprintf/sscanf з <cstdio>; але, гадаю, вам не вони всі потрібні, а розібратися в завданні замість використовувати чужий кривий код, який ви не розумієте.

Подякували: ivanmelnek456, leofun01, vаrіg2kо3

11

Re: Код Грея

Дякую вам за поради дуже вдячний