Example #1
0
def from_float(value):
    val = float(value)
    v = int(val)
    o = val - v
    if o > 0.0001:
        u = 1 / o
        return ULO(numbery.to_num(v) + '$ena') + ULO('ena$ena') / from_float(u)
    else:
        return ULO(numbery.to_num(v) + '$ena')
Example #2
0
    def __init__(self, value):
        if type(value) == int:
            v = value
            Variable.__init__(self, 'celo število', numbery.to_num(v))
            self.real_value = v

        elif type(value) == float:
            v = int(value)
            Variable.__init__(self, 'celo število', numbery.to_num(v))
            self.real_value = v

        elif type(value) == str:
            if ('1' in value or '2' in value or '3' in value or '4' in value
                    or '5' in value or '6' in value or '7' in value
                    or '8' in value or '9' in value):  #je napisano z besedo
                Variable.__init__(self, 'celo število', numbery.to_num(value))
                self.real_value = numbery.from_num(self.value)

            else:
                v = value
                Variable.__init__(self, 'celo število', v)
                self.real_value = numbery.from_num(v)

        elif value.tip == 'celo število':
            v = value.real_value
            Variable.__init__(self, 'celo število', value.value)
            self.real_value = v

        elif value.tip == 'flo':
            v = int(value.real_value)
            Variable.__init__(self, 'celo število', value.value)
            self.real_value = v

        elif value.tip == 'ulo':
            v = int(value)
            Variable.__init__(self, 'celo število', numbery.to_num(v))
            self.real_value = v

        elif value.tip == 'str':
            tmp = INT(str(value))
            Variable.__init__(self, 'celo število', tmp.value)
            self.real_value = tmp.real_value

        else:
            try:
                v = value.real_value
            except:
                v = int(value)
            Variable.__init__(self, 'celo število', value.value)
            self.real_value = v
Example #3
0
	def __init__(self, value):
		if type(value) == int:
			v = float(value)
			Variable.__init__(self, 'flo', numbery.to_num(v))
			self.real_value = v

		elif type(value) == float:
			v = value
			Variable.__init__(self, 'flo', numbery.to_num(v))
			self.real_value = v
		
		elif type(value) == str:
			if ('1' in value or '2' in value or '3' in value or '4' in value or '5' in value or '6' in value or '7' in value or '8' in value or '9' in value): #je napisano z besedo
				Variable.__init__(self, 'flo', numbery.to_num(value))
				self.real_value = numbery.from_num(self.value)
				
			else:
				v = value
				Variable.__init__(self, 'flo', v)
				self.real_value = numbery.from_num(v)

		elif value.tip == 'int':
			v = float(value.real_value)
			Variable.__init__(self, 'flo', value.value)
			self.real_value = v
		
		elif value.tip == 'nar':
			v = float(value.real_value)
			Variable.__init__(self, 'flo', value.value)
			self.real_value = v

		elif type(value) == ULO:
			v = float(value)
			Variable.__init__(self, 'flo', numbery.to_num(v))
			self.real_value = v

		elif type(value) == FLO:
			Variable.__init__(self, 'flo', value.value)
			self.real_value = value.real_value

		elif type(value) == STR:
			tmp = FLO(str(value))
			Variable.__init__(self, 'flo', tmp.value)
			self.real_value = tmp.real_value
Example #4
0
 def __pow__(self, other):
     return ULO(numbery.to_num(self.real_up**other),
                numbery.to_num(self.real_down**other))
Example #5
0
def inputint(sklad):
    sklad.append(to_num(input()))
Example #6
0
 def __mod__(self, other):
     return NAR(numbery.to_num(self.real_value % other.real_value))
Example #7
0
 def __truediv__(self, other):
     return NAR(numbery.to_num(self.real_value // other.real_value))
Example #8
0
 def __abs__(self):
     return NAR(numbery.to_num(abs(self.real_value)))
Example #9
0
    def __init__(self, value):
        if type(value) == int:
            v = value
            Variable.__init__(self, 'naravno število', numbery.to_num(v))
            self.real_value = v
            if not v > 2:
                raise Exception('nar je lahko le naravno število večje od 2.')

        elif type(value) == float:
            v = int(value)
            Variable.__init__(self, 'naravno število', numbery.to_num(v))
            self.real_value = v
            if not v > 2:
                raise Exception('nar je lahko le naravno število večje od 2.')

        elif type(value) == str:
            if ('1' in value or '2' in value or '3' in value or '4' in value
                    or '5' in value or '6' in value or '7' in value
                    or '8' in value or '9' in value):  #je napisano z besedo
                Variable.__init__(self, 'naravno število',
                                  numbery.to_num(value))
                self.real_value = numbery.from_num(self.value)
                if not self.real_value > 2:
                    raise Exception(
                        'nar je lahko le naravno število večje od 2.')

            else:
                v = value
                Variable.__init__(self, 'naravno število', v)
                self.real_value = numbery.from_num(v)
                if not self.real_value > 2:
                    raise Exception(
                        'nar je lahko le naravno število večje od 2.')

        elif value.tip == 'flo':
            v = int(value.real_value)
            Variable.__init__(self, 'naravno število', numbery.to_num(v))
            self.real_value = v
            if not v > 2:
                raise Exception('nar je lahko le naravno število večje od 2.')

        elif value.tip == 'int':
            if value.real_value > 2:
                v = value.real_value
                Variable.__init__(self, 'naravno število', value.value)
                self.real_value = v
            else:
                raise Exception('nar je lahko le naravno število večje od 2.')

        elif value.tip == 'naravno število':
            v = value.real_value
            Variable.__init__(self, 'naravno število', value.value)
            self.real_value = v
            if not v > 2:
                raise Exception('nar je lahko le naravno število večje od 2.')

        elif value.tip == 'ulo':
            v = int(value)
            Variable.__init__(self, 'naravno število', numbery.to_num(v))
            self.real_value = v
            if not v > 2:
                raise Exception('nar je lahko le naravno število večje od 2.')

        elif value.tip == 'str':
            tmp = NAR(str(value))
            Variable.__init__(self, 'naravno število', tmp.value)
            self.real_value = tmp.real_value
Example #10
0
 def __sub__(self, other):
     tmp = gcd(int(self.real_down), int(other.real_down))
     return ULO(numbery.to_num(self.real_up * tmp - other.real_up * tmp),
                lcm(self.real_down, other.real_down))
Example #11
0
    def __init__(self, value, *v):
        Variable.__init__(self, 'ulo', (1, 1))
        if len(v) == 1:
            self.value = (value, v)
            self.real_up = numbery.from_num(value)
            self.real_down = numbery.from_num(v[0])

        elif type(value) == str:
            if '$' in value:
                up, down = value.split('$')
                self.value = (up, down)

                try:
                    self.real_up = numbery.from_num(up)
                    self.real_down = numbery.from_num(down)

                    tmp = gcd(int(self.real_down), int(self.real_up))
                    self.real_up /= tmp
                    self.real_down /= tmp
                    self.value = (numbery.to_num(self.real_up),
                                  numbery.to_num(self.real_down))
                except Exception as error:
                    print(error)
                    raise Exception('Napaka pri zapisu števila.')
            else:
                up, down = from_float(float(value)).value
            self.value = (up, down)

        elif type(value) == float:
            self.value = from_float(value).value
            up, down = self.value
            self.real_up, self.real_down = numbery.from_num(
                up), numbery.from_num(down)

        elif type(value) == int:
            self.value = from_float(float(value)).value
            up, down = self.value
            self.real_up, self.real_down = numbery.from_num(
                up), numbery.from_num(down)

        elif value.tip == 'str':
            tmp = ULO(str(value))
            self.real_up = tmp.real_up
            self.real_down = tmp.real_down
            self.value = (numbery.to_num(self.real_up),
                          numbery.to_num(self.real_down))

        elif value.tip == 'celo število':
            tmp = ULO(int(value))
            self.real_up = tmp.real_up
            self.real_down = tmp.real_down
            self.value = (numbery.to_num(self.real_up),
                          numbery.to_num(self.real_down))

        elif value.tip == 'naravno število':
            tmp = ULO(int(value))
            self.real_up = tmp.real_up
            self.real_down = tmp.real_down
            self.value = (numbery.to_num(self.real_up),
                          numbery.to_num(self.real_down))

        elif value.tip == 'ulo':
            self = value.copy()

        self.real_up = int(self.real_up)
        self.real_down = int(self.real_down)
        if type(self.value[1]) == tuple:
            print(type(value))
        print(self.value, self.real_up, self.real_down)
Example #12
0
 def __abs__(self):
     return ULO(numbery.to_num(abs(self.real_up)), self.real_down)
Example #13
0
 def __pos__(self):
     return ULO(numbery.to_num(+numbery.from_num(self.real_up)),
                self.real_down)
Example #14
0
 def __neg__(self):
     return ULO(numbery.to_num(-numbery.from_num(self.real_up)),
                self.real_down)
Example #15
0
 def __neg__(self):
     return NAR(numbery.to_num(-numbery.from_num(self.value)))
Example #16
0
 def __pos__(self):
     return NAR(numbery.to_num(+numbery.from_num(self.value)))
Example #17
0
 def __mul__(self, other):
     return ULO(numbery.to_num(self.real_up * other.real_up),
                numbery.to_num(self.real_down * other.real_down))
Example #18
0
 def __invert__(self):
     return NAR(numbery.to_num(~numbery.from_num(self.value)))
Example #19
0
 def __add__(self, other):
     return INT(numbery.to_num(self.real_value + other.real_value))
Example #20
0
 def __sub__(self, other):
     return NAR(numbery.to_num(self.real_value - other.real_value))
Example #21
0
 def __mul__(self, other):
     return INT(numbery.to_num(self.real_value * other.real_value))
Example #22
0
 def __floordiv__(self, other):
     return NAR(numbery.to_num(round(self.real_value / other.real_value)))
Example #23
0
 def __truediv__(self, other):
     return INT(numbery.to_num(round(self.real_value / other.real_value)))
Example #24
0
 def __pow__(self, other):
     return NAR(numbery.to_num(self.real_value**other.real_value))
Example #25
0
 def __floordiv__(self, other):
     return INT(numbery.to_num(self.real_value // other.real_value))
Example #26
0
def inputulo(sklad):
    sklad.append('$'.join([to_num(x) for x in input().split('/')]))
Example #27
0
 def __truediv__(self, other):
     return ULO(numbery.to_num(self.real_up * other.real_down),
                numbery.to_num(self.real_down * other.real_up))