Ocena użytkownikóww: ***** / 16
Nadesłany przez Jakub Konieczny, 17 lutego 2011 18:17
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.systemy_1_py.py:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from math import *
def conv(liczba, z, do): #konwertuje najpierw liczbę na system dziesiętny,
dec=0 #potem na docelowy
val="0123456789abcdefghijklmnoprstuwvxyz"
for V in liczba: #duże V - znak
dec*=z #przemnożenie aktualnej wartości liczby dziesiętnej
#przez podstawę systemu źródłowego
v=0 #małe v - wartość liczbowa danego znaku
while V!=val[v]: #szukanie w tablicy `val tej wartości
v+=1
dec+=v
#w tym miejscu mamy już liczbę w systemie dziesiętnym
#teraz zamiana na docelowy
liczba="" #źródłowy tekst nam już nie jest potrzebny, więc czyścimy
while dec>0:
v=dec%do #wartość liczbowa danego znaku w
#docelowym systemie
liczba=str(val[v])+liczba #na początek stringu wstawia
#wartość w docelowym systemie
dec/=do
return liczba
print "wprowadź liczbę: "
liczba=raw_input()
print "Z systemu: "
z=input()
print "Na system: "
do=input()
print "Wynik: "+conv(liczba, z, do)