Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

exemple1

November 4, 2019

1 Exemple de subiecte pentru partial (partea 1)

1.1 Problema 1

Fie n, un numar natural, mai mare decat 0, calculati si afisati cu 4 respectiv cu 6 zecimale expresia


n
x
r=
x+1
x=0

[1]: while True:


try:
nr = input('n:')
n = int(nr)
if n > 0:
break
else:
print('n must be greater than 0')
except Exception as e:
print('Invalid input (%s)' % e)
r = 0.
for i in range(n+1):
r+= i/(i+1)
print('%.4f ; %.6f' % (r,r))

n:12+
Invalid input (invalid literal for int() with base 10: '12+')
n:12
9.8199 ; 9.819866

[8]: while True:


try:
nr = input('n:')
n = int(nr)
if n > 0:
break
else:

1
print('n must be greater than 0')
except Exception as e:
print('Invalid input (%s)' % e)

r = sum([ i/(i+1) for i in range(n+1)])


print('%.4f ; %.6f' % (r,r))

n:10
7.9801 ; 7.980123

1.2 Problema 2

Scrieti un script care sa preia un numar intreg de la tastatura. Afisati numarul in format binar pe
8 biti. hint: se foloseste instructiunea format
[27]: while True:
try:
nr = input('n:')
n = int(nr)
break
except Exception as e:
print('Invalid input %s' % e)
print(format(n, '#08b'))

n:19
0b010011

1.3 Problema 3

Solicitati de la tastatura un numar real err, $err < 0 $ ce reprezinta eroarea de determinare a
numarului e (math.e). Estimati numarul de iteratii necesare pentru atingerea acestei erori pt
formulele de mai jos:


inf
1
e=3−
k!(k − 1)k
k=2

1∑k+1
inf
e=
2 k!
k=0

[ ]:

[9]: from math import e, factorial

def ea(n):
s = 0

2
for k in range(2, n+1):
s += 1./(factorial(k)*(k-1)*k)
return 3-s

def eb(n):
s = 0
for k in range(n+1):
s += float(k+1)/factorial(k)
return s/2.

while True:
try:
rn = input("err:")
err = float(rn)
if err > 1 or err < 0:
print('Invalid Input')
break
except Exception as e:
print('Invalid Input (%s)' % e )
n = 1
while(abs(e-ea(n))>err):
n += 1
print('ea: %i : %.14f' % (n, ea(n)))
n = 1
while(abs(e-eb(n))>err):
n += 1
print('eb: %i : %.14f' % (n, ea(n)))
n = 1
#while(abs(math.e-ec(n))>err):
# n += 1
#print('ec: %i : %.4f' % (n, ea(n)))

err:0.00001
ea: 6 : 2.71828703703704
eb: 9 : 2.71828183176563

[16]: while True:


try:
rn = input("err:")
err = float(rn)
if err > 1 or err < 0:
print('Invalid Input')
break
except Exception as e:
print('Invalid Input (%s)' % e )

3
ea = lambda n: 3 - sum([1./(factorial(k)*(k-1)*k) for k in range(2,n+1)])
eb = lambda n: sum([(k+1)/factorial(k) for k in range(n+1)])/2

n = 1
while(abs(e-ea(n))>err):
n += 1
print('ea: %i : %.14f' % (n, ea(n)))
n = 1
while(abs(e-eb(n))>err):
n += 1
print('eb: %i : %.14f' % (n, ea(n)))

err:0.0001
ea: 5 : 2.71833333333333
eb: 8 : 2.71828187003968

1.4 Problema 4

Preluati de la tastatura un tuplu de numere si daca lungimea acestuia este cuprinsa intre 2 si 5
elemente, calculati valoarea medie a acestora
[51]: while True:
ct = []
rt = input('Tuplu:')
try:
rt = rt.replace(',', ' ')
for c in rt.split():
c.replace(',','')
ct.append(float(c))
break
except Exception as e:
print(e)

if len(t) > 2 and len(t)>5:


s = 0
for i in ct:
s += i
print('AVG: %.4f' % (s/len(ct)))

Tuplu:1,2,3,4
AVG: 2.5000

[ ]:

You might also like