Variante de programe pentru calculul mediilor aritmetice ponderate


Media aritmetică ponderată
Prima variantă.
Programul este:



# Calcul medie aritmetica ponderata
# pentru serii de date cu mai putin de 30 de termeni
f = ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
x = ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
sum_x = 0
sum_f = 0
i = 0
print('Lungimea vectorului definit este', len(x))
n = input('Introduceti numarul de termeni: ')
if int(n) < len(x):
    print('Numarul de componente este:', n)
else:
    print('Numarul de componente este >', len(x))
    exit()
while i < int(n):
    x[i] = input('x[]= ' )
    f[i] = input('f[]= ' )
    sum_x = sum_x + float(x[i])
    sum_f = sum_f + float(f[i])
    i = i +1
i = 0
while i < int(n):
    print('x[', i, ']= ',x[i], 'f[',i, ']= ',f[i])
    i = i +1
media = sum_x / sum_f
print('Suma elementelor x[i] este {0} '.format(sum_x))
print('Suma frecventelor f[i] este {0} '.format(sum_f))
print('Media aritmetica ponderata este {0} '.format(media))




Rezultatele afişate sunt:

Lungimea vectorului definit este 30
Introduceti numarul de termeni: 10
Numarul de componente este: 10
x[]= 1
f[]= 1
x[]= 2
f[]= 1
x[]= 3
f[]= 1
x[]= 4
f[]= 1
x[]= 5
f[]= 1
x[]= 6
f[]= 1
x[]= 7
f[]= 1
x[]= 8
f[]= 1
x[]= 9
f[]= 1
x[]= 10
f[]= 1
x[ 0 ]= 1 f[ 0 ]= 1
x[ 1 ]= 2 f[ 1 ]= 1
x[ 2 ]= 3 f[ 2 ]= 1
x[ 3 ]= 4 f[ 3 ]= 1
x[ 4 ]= 5 f[ 4 ]= 1
x[ 5 ]= 6 f[ 5 ]= 1
x[ 6 ]= 7 f[ 6 ]= 1
x[ 7 ]= 8 f[ 7 ]= 1
x[ 8 ]= 9 f[ 8 ]= 1
x[ 9 ]= 10 f[ 9 ]= 1
Suma elementelor x[i] este 55.0
Suma frecventelor f[i] este 10.0
Media aritmetica ponderata este 5.5

A doua variantă.va fi în viitorul apropiat



#
# Media aritmetica ponderata cu alocare dinamica
#
X = []
F = []
Nr = int(input("Numarul de termeni ai seriei este:"))
for i in range(Nr):
    xi = int(input("Termenul X[] ai seriei este:"))
    fi = int(input("Frecventa F[] a termenului X[] este:"))
    X.append(xi)
    F.append(fi)
print(X)
print(F)
NN = len(X)
print("Numarul de termeni ai seriei este:",NN)
Suma_XF = 0
Suma_F = 0
for i in range(NN):
    Suma_XF += X[i]*F[i]
    Suma_F += F[i]
Media_XF = Suma_XF/Suma_F
print("Media aritmetica ponderata este:",Media_XF)






Rezultatele afişate sunt:

Numarul de termeni ai seriei este:3
Termenul X[] ai seriei este:1
Frecventa F[] a termenului X[] este:1
Termenul X[] ai seriei este:2
Frecventa F[] a termenului X[] este:1
Termenul X[] ai seriei este:3
Frecventa F[] a termenului X[] este:1
[1, 2, 3]
[1, 1, 1]
Numarul de termeni ai seriei este: 3
Media aritmetica ponderata este: 2.0

Este clar că programatorii care doresc să combine variantele vor obţine exact ceea ce doresc. Pentru media aritmetică ponderată trebuie făcute modificări nesemnificative, căci trebuie incluse doar frecvenţele, care sunt o listă ca seria de date X din programele prezentate.


(Afişat azi 20 aprilie 2022 ora 12,45
 Terminat azi 22 aprilie 2022 la ora 23,30 )
revenire