Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def abs(a):
- if a>0:
- return float(a)
- else:
- return float(-a)
- def power(num,exp):
- if exp!=0:
- if exp>0:
- ret=num;
- for i in range(1,exp,1):
- ret=ret*num;
- return ret;
- else:
- ret=num;
- for i in range(1,exp,1):
- ret=ret/num;
- return ret;
- else:
- return 1.0;
- def root(num,exp):
- if exp>0:
- a=num/2
- b=(1/exp)*((exp-1)*a+(num/power(a,exp-1)))
- delta=abs(b-a)
- while(delta>0.000000000000001):
- a=b
- b=(1/exp)*((exp-1)*a+(num/power(a,exp-1)))
- delta=abs(b-a)
- return b
- else:
- print("das da rong numba")
- return -1.0
- def log(num):
- index=6
- a=2*((num-1)/(num+1))
- b=2*((num-1)/(num+1)+power((num-1)/(num+1),3)/3)
- delta=abs(b-a)
- while(delta>0.000001):
- a=b
- b=0
- for i in range(1,index,2):
- b=b+(1/i)*power((num-1)/(num+1),i)
- b=b*2
- delta=delta=abs(b-a)
- index=index+2
- return b
- def logswitch(num,baza):
- if baza=="e":
- return log(num)
- else:
- b=float(baza)
- if b<0:
- print("invalid base")
- return -1
- else:
- return log(num)/log(baza)
- def benis():
- dec=float(input("number>0: "))
- exp=int(input("positive root: "))
- print(root(dec,exp))
- def bagina():
- num=float(input("number>0: "))
- baza=float(input("positive base: "))
- print(logswitch(num,baza))
- def check():
- c=input("continue? [Y/N][H-help] ")
- if c=='n' or c=='N':
- return False
- elif c=='y' or c=='Y':
- return True
- elif c=='h' or c=='H':
- print("commands: [log/root] ")
- return check()
- else:
- print("learn how to read")
- return check()
- print("your shitty calculator [H-help]")
- con=True
- instr=""
- while(con):
- instr=input("")
- if instr=="log":
- bagina()
- elif instr=="root":
- benis()
- elif instr=="H" or instr=="h":
- print("commands: [log/root] ")
- else:
- print("invalid command")
- con=check()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement