All pastes #922428 Raw Edit

n2n

public cpp v1 · immutable
#922428 ·published 2008-02-28 20:18 UTC
rendered paste body
#include <iostream>#include <string.h>#include <math.h>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<tekst.length(); i++)	{		if ((tekst.at(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<liczba.length(); i++)	{		wynik+=n2dec(liczba.at(i))*pow(podstawa,liczba.length()-1-i);	}	return wynik;}char dec2n(int liczba){	switch (liczba)	{		case 0: return '0'; break;		case 1: return '1'; break;		case 2: return '2'; break;		case 3: return '3'; break;		case 4: return '4'; break;		case 5: return '5'; break;		case 6: return '6'; break;		case 7: return '7'; break;		case 8: return '8'; break;		case 9: return '9'; break;		case 10: return 'A'; break;		case 11: return 'B'; break;		case 12: return 'C'; break;		case 13: return 'D'; break;		case 14: return 'E'; break;		case 15: return 'F'; break;		case 16: return 'G'; break;		case 17: return 'H'; break;		case 18: return 'I'; break;		case 19: return 'J'; break;		case 20: return 'K'; break;		case 21: return 'L'; break;		case 22: return 'M'; break;		case 23: return 'N'; break;		case 24: return 'O'; break;		case 25: return 'P'; break;		case 26: return 'Q'; break;		case 27: return 'R'; break;		case 28: return 'S'; break;		case 29: return 'T'; break;		case 30: return 'U'; break;		case 31: return 'V'; break;		case 32: return 'W'; break;		case 33: return 'X'; break;		case 34: return 'Y'; break;		case 35: return 'Z'; break;		default: return '.'; break;	}}int n2dec (char liczba){	switch (liczba)	{		case '0': return 0; break;		case '1': return 1; break;		case '2': return 2; break;		case '3': return 3; break;		case '4': return 4; break;		case '5': return 5; break;		case '6': return 6; break;		case '7': return 7; break;		case '8': return 8; break;		case '9': return 9; break;		case 'A': return 10; break;		case 'B': return 11; break;		case 'C': return 12; break;		case 'D': return 13; break;		case 'E': return 14; break;		case 'F': return 15; break;		case 'G': return 16; break;		case 'H': return 17; break;		case 'I': return 18; break;		case 'J': return 19; break;		case 'K': return 20; break;		case 'L': return 21; break;		case 'M': return 22; break;		case 'N': return 23; break;		case 'O': return 24; break;		case 'P': return 25; break;		case 'Q': return 26; break;		case 'R': return 27; break;		case 'S': return 28; break;		case 'T': return 29; break;		case 'U': return 30; break;		case 'V': return 31; break;		case 'W': return 32; break;		case 'X': return 33; break;		case 'Y': return 34; break;		case 'Z': return 35; break;		default: return 69; break;	}}