SAVCIUC EVGHENII IM-221
#EX1
def patrat(numar):
return numar ** 2
numar = input("Introdu un număr: ")
numar = int(numar)
patratul = patrat(numar)
print(f"Pătratul numărului {numar} este {patratul}")
##Raspuns Pătratul numărului 4 este 16
#EX2
def suma_si_produs(a, b):
suma = a + b
produs = a * b
return suma, produs
a = int(input("Introdu primul număr: "))
b = int(input("Introdu al doilea număr: "))
suma, produs = suma_si_produs(a, b)
print(f"Suma a+b={suma}, Produsul a*b={produs}")
print(f"Suma {a}+{b}={suma}, Produsul {a}*{b}={produs}")
##Raspuns
Introdu primul număr: 5
Introdu al doilea număr: 3
Suma a+b=8, Produsul a*b=15
Suma 5+3=8, Produsul 5*3=15
#EX3
suma = lambda a, b: a + b
produs = lambda a, b: a * b
a = int(input("Introdu primul număr: "))
b = int(input("Introdu al doilea număr: "))
s = suma(a, b)
p = produs(a, b)
print(f"Suma a+b={s}, Produsul a*b={p}")
print(f"Suma {a}+{b}={s}, Produsul {a}*{b}={p}")
##Raspuns
Introdu primul număr: 5
Introdu al doilea număr: 3
Suma a+b=8, Produsul a*b=15
Suma 5+3=8, Produsul 5*3=15
#EX4
def factorial(n):
if n == 0:
return 1
return n * factorial(n-1)
numar = int(input("Doriți să determinați factorialul numărului: "))
fact = factorial(numar)
print(f"Factorialul lui {numar} este {fact}")
##Raspuns
Doriți să determinați factorialul numărului: 4
Factorialul lui 4 este 24
#EX5
lista_mea = range(-7, 8)
lista_la_cub = list(map(lambda x: x**3, lista_mea))
print(lista_la_cub)
##Raspuns [-343, -216, -125, -64, -27, -8, -1, 0, 1, 8, 27, 64, 125, 216, 343]
#EX6
numere = range(-5, 6)
patrat = lambda x: x*x
patrate = list(map(patrat, numere))
print("Pătratul listei")
print(list(numere), "este")
print(patrate)
##Raspuns
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] este
[25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]
#EX7
import math as mt
def diametru(r):
return 2*r
def lungime(r):
return round(2*[Link]*r,2)
def aria(r):
return round(3*[Link]*r**2,2)
r = float(input("Care este raza cercului?: "))
print("Diametrul cercului = ", diametru(r))
print("Lungimea cercului = ", lungime(r))
print("Aria cercului = ", aria(r))
##Raspuns
Care este raza cercului?: 4 Diametrul cercului = 8.0 Lungimea cercului = 25.13 Aria cercului = 150.79
#EX8
lim_min = int(input("Introdu limita minimă (nr. negativ): "))
lim_max = int(input("Introdu limita maximă (nr. pozitiv): "))
numere = list(filter(lambda x: x % 2 == 0 and x > 0, range(lim_min, lim_max+1)))
print(numere)
##Raspuns
Introdu limita minimă (nr. negativ): -7
Introdu limita maximă (nr. pozitiv): 27
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26]
#EX9
numere = [-1, 2, 45, 20, -23, 17, -3, 9, -5, 6, 32, -14, 14, 17, 12, -20, 11, 8]
lista1 = list(filter(lambda x: x < 0 and x % 2 != 0, numere))
lista2 = list(filter(lambda x: -20 < x < 20, numere))
print("Nr negative / impare:", lista1)
print("Nr între -20 si 20:", lista2)
##Raspuns
Nr negative / impare: [-1, -23, -3, -5]
Nr între -20 si 20: [-1, 2, 17, -3, 9, -5, 6, -14, 14, 17, 12, 11, 8]
#EX10
import numpy as np
x = [Link]([[3, 9], [8, 5]])
y = [Link]([[2, 3], [1, 7]])
def add_matrices(x, y):
return [Link](x, y)
def subtract_matrices(x, y):
return [Link](x, y)
def multiply_matrices(x, y):
return [Link](x, y)
def divide_matrices(x, y):
return [Link](x, y)
def dot_product(x, y):
return [Link](x, y)
def transpose_matrix(x):
return x.T
def inverse_matrix(y):
return [Link](y)
print("Suma matricelor x+y=\n", add_matrices(x, y))
print("Diferenta matricelor x-y=\n", subtract_matrices(x, y))
print("Produsul matricelor x*y=\n", multiply_matrices(x, y))
print("Impartirea matricelor x/y=\n", divide_matrices(x, y))
print("Transpusa matricei x=\n", transpose_matrix(x))
print("Inversa matricei y=\n", inverse_matrix(y))
##Raspuns
Suma matricelor x+y=
[[ 5 12]
[ 9 12]]
Diferenta matricelor x-y=
[[ 1 6]
[ 7 -2]]
Produsul matricelor x*y=
[[ 6 27]
[ 8 35]]
Impartirea matricelor x/y=
[[1.5 3. ]
[8. 0.71428571]]
Transpusa matricei x=
[[3 8]
[9 5]]
Inversa matricei y=
[[ 0.63636364 -0.27272727]
[-0.09090909 0.18181818]]
#EX11
def suma (x=4, y=-2):
return x+y
def suma (x=4, y=-2):
return x+y
print (suma () )
print (suma (5, -5) )
##Raspuns
În prima apelare, funcția "suma" returnează 4 + (-2) = 2.
În a doua apelare, funcția "suma" returnează 5 + (-5) = 0.
#EX12
limita_jos = int(input("Introdu limita de jos: "))
imita_sus = int(input("Introdu limita de sus: "))
lista_mea = [str(i) for i in range(limita_jos, limita_sus+1) if i%4==0 and i%3!=0]
print(lista_mea)
def lista_numere(limita_jos, limita_sus):
return [str(i) for i in range(limita_jos, limita_sus+1) if i%4==0 and i%3!=0]
limita_jos = int(input("Introdu limita de jos: "))
limita_sus = int(input("Introdu limita de sus: "))
lista_mea = lista_numere(limita_jos, limita_sus)
print(lista_mea)
##Raspuns
Introdu limita de jos: 12
Introdu limita de sus: 23
['16', '20']
Introdu limita de jos: 12
Introdu limita de sus: 32
['16', '20', '28', '32']
#EX13
import numpy as np
import [Link] as plt
x = [Link](-5, 5, 100)
y1 = 2*x**2 + x - 4
y2 = 4*x**2 + 2*x - 1
y3 = x**2 + 4*x - 2
[Link](x, y1, color='red', linewidth=2, linestyle='-', marker='o', label='y = 2x^2 + x - 4')
[Link](x, y2, color='green', linewidth=2, linestyle='--', marker='s', label='y = 4x^2 + 2x - 1')
[Link](x, y3, color='blue', linewidth=2, linestyle='-.', marker='^', label='y = x^2 + 4x - 2')
[Link]('Grafice pentru trei functii')
[Link]('Valori x')
[Link]('Valori y')
[Link]()
[Link]()
##Raspuns
#EX14
import numpy as np
import [Link] as plt
eq1 = lambda x: 2*x**2 + x - 4
eq2 = lambda x: 4*x**2 + 2*x - 1
eq3 = lambda x: x**2 + 4*x - 2
x = [Link](-5, 5, 1000)
fig, (ax1, ax2, ax3) = [Link](1, 3, figsize=(15, 5))
[Link](x, eq1(x), label='$y=2x^2+x-4$', color='black')
[Link]()
ax1.set_title('Graficul ecuației 1')
[Link](x, eq2(x), label='$y=4x^2+2x-1$', color='purple')
[Link]()
ax2.set_title('Graficul ecuației 2')
[Link](x, eq3(x), label='$y=x^2+4x-2$', color='orange')
[Link]()
ax3.set_title('Graficul ecuației 3')
[Link]()
##Raspuns