#include #include #include using namespace std; string rozmiar_znaku(string tekst); /* Prosta funkcja zmieniająca rozmiar znaku. W przypadku gdy uzytkownik wprowadzi 'a' funkcja zamini to na 'A' Wykorzystują różnicę między znakami dużymi a małymi (32) a=97, A=65, 97-65=32 */ char dec2n(int liczba); /* Prosta funkcja oparta na switch'u zamieniająca cyfry na odpowiadajace im litery np: 11=B 13=D itd */ int n2dec(char liczba); /* Prosta funkcja oparta na switch'u zmieniająca znak typu A albo F na odpowiadającą mu cyfrę np: A=10, F=15 itd, */ int todec(string liczba, int podstawa); /* Funkcja zamieniająca liczbę z dowolnego systemu na system dziesiętny */ string ton(int liczba, int podstawa); /* Funkcja zamienia system dziesiętny na dowolnie inny */ int main() { int in, out; string inn; cout << "Program zamienia dowolny system liczbowy na dowolnie inny.(od 2 do 35)\n"; cout << "Podaj podstawe systemu wejsciowego: "; cin >> in; if ((in<=1)||(in>=36)) { cout << "System liczbowy z poza zakresu.\n"; return 0; } cout << "Podja liczbe w systemie o podstawie " << in << ": "; cin >> inn; inn=rozmiar_znaku(inn); cout << "Podaj podstawe systemu wyjsciowego: "; cin >> out; if ((out<=1)||(out>=36)) { cout << "System liczbowy z poza zakresu.\n"; return 0; } cout << ton(todec(inn, in), out); cout << endl; } string ton(int liczba, int podstawa) { int ile=0; string temp, wynik; while(liczba>=1) { if (liczba%podstawa>0) { temp+=dec2n(liczba%podstawa); } else temp+='0'; liczba/=podstawa; ile++; } for (int i=ile-1; i>=0; i--) { wynik+=temp.at(i); } return wynik; } string rozmiar_znaku(string tekst) { for (unsigned int i=0U; i=97) && (tekst.at(i)<=122)) tekst.at(i)-=32; } return tekst; } int todec(string liczba, int podstawa) { int wynik=0; for (unsigned int i=0U; i