# DISTRIBUIÇAO DE FREQUENCIA POR INTEVALO DE CLASSE
import math
Numeros = []
Classes = []
Tabela = []
def SalvarNumeros(valor): #SALVA NUMEROS EM ORDEM
i=0
if len(Numeros) == 0:
[Link](valor)
else:
while i < len(Numeros) and Numeros[i] < valor:
i=i+1
[Link](i,valor)
return Numeros
def CalcularAmplitude(): # CALCULA AMPLITUDE
amplitude = Numeros[-1] - Numeros[0]
return amplitude
def CalcularClasse(): # CALCULA CLASSE
N = len(Numeros)
K = [Link](N ** (1/2))
return K
def IntevaloClasse(): #CALCULA INTEVALO
A = CalcularAmplitude()
K = CalcularClasse()
C = [Link](A / K)
return C
def CriarClasses(): #SEPARA POR CLASSES
K = CalcularClasse()
num = Numeros[0]
while num < Numeros[-1]:
MaxClasse = num + K
[Link]([num , MaxClasse])
num = MaxClasse
def CalcularAddTabela():
i=0
for classe in Tabela:
CalcularFi(classe)
for classe in Tabela:
CalcularFac(classe,i)
i=i+1
def CalcularFi(valor): #CALCULAR O FI UM POR UM
Min, Max = valor[0] #PEGAR DOIS VALOR DE UMA LISTA E SEPARA
soma = 0 #CONTADOR
for num in Numeros:
if Min <= num < Max:
soma = soma + 1
[Link](soma)
return soma
def CalcularFac(valor,i): #CALCULAR O FAC UM POR UM
if len(Tabela[0]) == 2 :
[Link](Tabela[0][1])
else:
Fac = Tabela[i-1][2] + Tabela[i][1]
[Link](Fac)
def CalcularFixi():
ArredondaFixi = round((2 / 55) , 2)- 0.01
while True:
try:
numero = float(input("Salvar numero :"))
SalvarNumeros(numero)
except :
CriarClasses()
for add in Classes:
[Link]([add])
Clase = CalcularClasse()
amplitude = CalcularAmplitude()
intavalo = IntevaloClasse()
CalcularAddTabela()
print("+-------------+------+------+")
print("| valor(X) | FI | FAC |")
print("+-------------+------+------+")
for tabela in Tabela:
print("| {} -- {} | {} | {} |".format(tabela[0][0],tabela[0][1],tabela[1],tabela[2]))
print("+-------------+------+------+")
# print("Numero de classe: ",Clase)
# print("Numero de amplitude: ",amplitude)
# print("Numero de intevalo: ",intavalo)
# print("{} foram salvos !".format(len(Numeros)))
break