Advertisement
Guest User

Untitled

a guest
Jan 28th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.76 KB | None | 0 0
  1. def abs(a):
  2.     if a>0:
  3.         return float(a)
  4.     else:
  5.         return float(-a)
  6. def power(num,exp):
  7.     if exp!=0:
  8.         if exp>0:
  9.             ret=num;
  10.             for i in range(1,exp,1):
  11.                 ret=ret*num;
  12.             return ret;
  13.         else:
  14.             ret=num;
  15.             for i in range(1,exp,1):
  16.                 ret=ret/num;
  17.             return ret;
  18.     else:
  19.         return 1.0;
  20. def root(num,exp):
  21.     if exp>0:
  22.         a=num/2
  23.         b=(1/exp)*((exp-1)*a+(num/power(a,exp-1)))
  24.         delta=abs(b-a)
  25.         while(delta>0.000000000000001):
  26.             a=b
  27.             b=(1/exp)*((exp-1)*a+(num/power(a,exp-1)))
  28.             delta=abs(b-a)
  29.         return b
  30.     else:
  31.         print("das da rong numba")
  32.         return -1.0
  33. def log(num):
  34.     index=6
  35.     a=2*((num-1)/(num+1))
  36.     b=2*((num-1)/(num+1)+power((num-1)/(num+1),3)/3)
  37.     delta=abs(b-a)
  38.     while(delta>0.000001):
  39.         a=b
  40.         b=0
  41.         for i in range(1,index,2):
  42.             b=b+(1/i)*power((num-1)/(num+1),i)
  43.         b=b*2
  44.         delta=delta=abs(b-a)
  45.         index=index+2
  46.     return b
  47. def logswitch(num,baza):
  48.     if baza=="e":
  49.         return log(num)
  50.     else:
  51.         b=float(baza)
  52.         if b<0:
  53.             print("invalid base")
  54.             return -1
  55.         else:
  56.             return log(num)/log(baza)
  57. def benis():
  58.     dec=float(input("number>0: "))
  59.     exp=int(input("positive root: "))
  60.     print(root(dec,exp))
  61. def bagina():
  62.     num=float(input("number>0: "))
  63.     baza=float(input("positive base: "))
  64.     print(logswitch(num,baza))
  65. def check():
  66.     c=input("continue? [Y/N][H-help] ")
  67.     if c=='n' or c=='N':
  68.         return False
  69.     elif c=='y' or c=='Y':
  70.         return True
  71.     elif c=='h' or c=='H':
  72.         print("commands: [log/root] ")
  73.         return check()
  74.     else:
  75.         print("learn how to read")
  76.         return check()
  77. print("your shitty calculator [H-help]")
  78. con=True
  79. instr=""
  80. while(con):
  81.     instr=input("")
  82.     if instr=="log":
  83.         bagina()
  84.     elif instr=="root":
  85.         benis()
  86.     elif instr=="H" or instr=="h":
  87.         print("commands: [log/root] ")
  88.     else:
  89.         print("invalid command")
  90.     con=check()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement