from matplotlib import pyplot as plt
import math

#print ("Hello World! Podaj imie: ")
#x = input()
#print ("Hello", x, "!")

def f(x):
	return math.sin(x)
	
def g(x):
	return 3*x**3 + 5*x**2 + x + 1
	
#print (f(10), f(1), f(5))
#print (g(10), g(1), g(5))

def h(x): 
	# zaimplementuj f o g (zlozenie funkcji)
	# h(x) = f(g(x))
	# h(x) = (2*x - 5) * (2*x - 5)
	return f(g(x))
	
def k(x):
	# zaimplementuj g o f (zlozenie funkcji)
	# h(x) = g(f(x))
	# h(x) = 2*x*x - 5
	return g(f(x))	
	
#def h2(x):
#	return (2*x - 5) * (2*x - 5)

for i in range(0, 10):
	print ("h", i, h(i))
	
for i in range(0, 10):	
	print ("k", i, k(i))
	
	

xx = [x * 0.01 for x in range(-1000, 1001)]
fx = [k(x) for x in xx]
plt.plot(xx, fx)
plt.show()
	




#f("Abba")

def r(x):
	return len(x)
	
def q(x):
	return "a" * x
	
#print ("dlugosc abba = ", r("Abba"))
#print ("q(4)         = ", q(4))
#print (q(r("Abrakadabra")))
#print (r(q(4)))
#print ("AAA!", q(2.5))

def g(x):
	return 2*x - 2

def ginv(x):
	return (x + 2) / 2
	
def gginv(x):
	return g(ginv(x))
	
def id(x):
	return x
	
for i in range(-100, 100):
	print (i, gginv(i), id(i))

print("==========================")
for i in range(-100, 100):
	print (i, ginv(g(i)), id(i))	
	

print("####################")
for i in range(-100, 100):
	print (i, r(q(i)), id(i))
	
print("Abba", q(r("Abba")), id("Abba"))
	
	
	
	
	
	
	
	
	
	
	