Análise de Probabilidades

 

from tkinter import *
from tkinter import ttk
import random

root = Tk()

class AppProbabilidades:
def __init__(self):
self.root = root
self.janela()
self.frames_da_janela()
self.widgets_frame1()
self.Menus()
root.mainloop()

def janela(self):
self.root.title("Análise de Probabilidades")
self.root.configure(background='#1e3743')
self.root.geometry("700x400")
self.root.resizable(0,0)

def frames_da_janela(self):
self.frame_1 = Frame(self.root, bd=4,
bg='#dfe3ee',
highlightbackground='#759fe6',
highlightthickness=2)
self.frame_1.place(relx=0.02, rely=0.02,
relwidth=0.96, relheight=0.96)

def widgets_frame1(self):
self.abas = ttk.Notebook(self.frame_1)
self.Probabilidade_Simples = Frame(self.abas)
self.Probabilidade_Composta = Frame(self.abas)
self.Probabilidade_Condicional = Frame(self.abas)
self.Simulacao_Experimentos = Frame(self.abas)

for aba in [self.Probabilidade_Simples, self.Probabilidade_Composta,
self.Probabilidade_Condicional, self.Simulacao_Experimentos]:
aba.configure(background="#dfe3ee")

self.abas.add(self.Probabilidade_Simples, text="Probabilidade Simples")
self.abas.add(self.Probabilidade_Composta, text="Probabilidade Composta")
self.abas.add(self.Probabilidade_Condicional, text="Probabilidade Condicional")
self.abas.add(self.Simulacao_Experimentos, text="Simulação Experimentos")
self.abas.place(relx=0, rely=0, relwidth=0.98, relheight=0.98)

# ---------------- Probabilidade Simples ----------------
self.eventos_possiveis = StringVar()
self.resultados_desejados = StringVar()
self.resultado_prob_simples = StringVar()

Label(self.Probabilidade_Simples, text="Total de eventos possíveis",
bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.05)
Entry(self.Probabilidade_Simples, textvariable=self.eventos_possiveis,
justify='center', font=("Arial","15","bold")).place(relx=0.45, rely=0.05, relwidth=0.45)

Label(self.Probabilidade_Simples, text="Resultados desejados",
bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.25)
Entry(self.Probabilidade_Simples, textvariable=self.resultados_desejados,
justify='center', font=("Arial","15","bold")).place(relx=0.45, rely=0.25, relwidth=0.45)

Button(self.Probabilidade_Simples, text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=self.calcular_simples).place(relx=0.3, rely=0.45, relwidth=0.4, relheight=0.15)

Label(self.Probabilidade_Simples, textvariable=self.resultado_prob_simples,
font=("Arial","15","bold"), bg='#dfe3ee', fg='black').place(relx=0.3, rely=0.7)
self.eventos1 = StringVar()
self.resultados1 = StringVar()
self.eventos2 = StringVar()
self.resultados2 = StringVar()
self.resultado_prob_composta = StringVar()

Label(self.Probabilidade_Composta, text="Eventos 1 possíveis", bg='#dfe3ee', fg='#107db2', font=("Arial","13","bold")).place(relx=0.03, rely=0.05)
Entry(self.Probabilidade_Composta, textvariable=self.eventos1, justify='center', font=("Arial","13","bold")).place(relx=0.5, rely=0.05, relwidth=0.45)

Label(self.Probabilidade_Composta, text="Resultados 1 desejados", bg='#dfe3ee', fg='#107db2', font=("Arial","13","bold")).place(relx=0.03, rely=0.15)
Entry(self.Probabilidade_Composta, textvariable=self.resultados1, justify='center', font=("Arial","13","bold")).place(relx=0.5, rely=0.15, relwidth=0.45)

Label(self.Probabilidade_Composta, text="Eventos 2 possíveis", bg='#dfe3ee', fg='#107db2', font=("Arial","13","bold")).place(relx=0.03, rely=0.30)
Entry(self.Probabilidade_Composta, textvariable=self.eventos2, justify='center', font=("Arial","13","bold")).place(relx=0.5, rely=0.30, relwidth=0.45)

Label(self.Probabilidade_Composta, text="Resultados 2 desejados", bg='#dfe3ee', fg='#107db2', font=("Arial","13","bold")).place(relx=0.03, rely=0.40)
Entry(self.Probabilidade_Composta, textvariable=self.resultados2, justify='center', font=("Arial","13","bold")).place(relx=0.5, rely=0.40, relwidth=0.45)

Button(self.Probabilidade_Composta, text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=self.calcular_composta).place(relx=0.3, rely=0.55, relwidth=0.4, relheight=0.1)
Label(self.Probabilidade_Composta, textvariable=self.resultado_prob_composta, font=("Arial","15","bold"), bg='#dfe3ee', fg='black').place(relx=0.3, rely=0.7)
self.eventos_totais = StringVar()
self.eventos_cond = StringVar()
self.resultado_prob_condicional = StringVar()

Label(self.Probabilidade_Condicional, text="Total de eventos", bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.05)
Entry(self.Probabilidade_Condicional, textvariable=self.eventos_totais, justify='center', font=("Arial","15","bold")).place(relx=0.5, rely=0.05, relwidth=0.45)

Label(self.Probabilidade_Condicional, text="Eventos favoráveis", bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.25)
Entry(self.Probabilidade_Condicional, textvariable=self.eventos_cond, justify='center', font=("Arial","15","bold")).place(relx=0.5, rely=0.25, relwidth=0.45)

Button(self.Probabilidade_Condicional, text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=self.calcular_condicional).place(relx=0.3, rely=0.45, relwidth=0.4, relheight=0.15)
Label(self.Probabilidade_Condicional, textvariable=self.resultado_prob_condicional, font=("Arial","15","bold"), bg='#dfe3ee', fg='black').place(relx=0.3, rely=0.7)

self.tentativas = StringVar()
self.sucessos = StringVar()
self.eventos_por_tentativa = StringVar()
self.resultado_simulacao = StringVar()

Label(self.Simulacao_Experimentos, text="Número de tentativas", bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.05)
Entry(self.Simulacao_Experimentos, textvariable=self.tentativas, justify='center', font=("Arial","15","bold")).place(relx=0.5, rely=0.05, relwidth=0.45)

Label(self.Simulacao_Experimentos, text="Número de sucessos por tentativa", bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.25)
Entry(self.Simulacao_Experimentos, textvariable=self.sucessos, justify='center', font=("Arial","15","bold")).place(relx=0.5, rely=0.25, relwidth=0.45)

Label(self.Simulacao_Experimentos, text="Eventos possíveis por tentativa", bg='#dfe3ee', fg='#107db2', font=("Arial","15","bold")).place(relx=0.03, rely=0.45)
Entry(self.Simulacao_Experimentos, textvariable=self.eventos_por_tentativa, justify='center', font=("Arial","15","bold")).place(relx=0.5, rely=0.45, relwidth=0.45)

Button(self.Simulacao_Experimentos, text="Simular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=self.calcular_simulacao).place(relx=0.3, rely=0.65, relwidth=0.4, relheight=0.15)
Label(self.Simulacao_Experimentos, textvariable=self.resultado_simulacao, font=("Arial","15","bold"), bg='#dfe3ee', fg='black').place(relx=0.3, rely=0.85)

def calcular_simples(self):
try:
eventos = float(self.eventos_possiveis.get())
resultado = float(self.resultados_desejados.get())
prob = (resultado / eventos) * 100
mensagem = f"{prob:.2f} %"
except ValueError:
mensagem = "Valor inválido."
self.resultado_prob_simples.set(mensagem)

def calcular_composta(self):
try:
e1 = float(self.eventos1.get())
r1 = float(self.resultados1.get())
e2 = float(self.eventos2.get())
r2 = float(self.resultados2.get())
prob = (r1/e1) * (r2/e2) * 100
mensagem = f"{prob:.2f} %"
except ValueError:
mensagem = "Valor inválido."
self.resultado_prob_composta.set(mensagem)

def calcular_condicional(self):
try:
total = float(self.eventos_totais.get())
favoravel = float(self.eventos_cond.get())
prob = (favoravel / total) * 100
mensagem = f"{prob:.2f} %"
except ValueError:
mensagem = "Valor inválido."
self.resultado_prob_condicional.set(mensagem)

def calcular_simulacao(self):
try:
tent = int(self.tentativas.get())
sucesso = int(self.sucessos.get())
eventos_totais = int(self.eventos_por_tentativa.get())
contador = 0
for _ in range(tent):
resultado = random.randint(1, eventos_totais)
if resultado <= sucesso:
contador += 1
prob = (contador / tent) * 100
mensagem = f"{prob:.2f} %"
except ValueError:
mensagem = "Valor inválido."
self.resultado_simulacao.set(mensagem)
def Quit(self):
self.root.destroy()

def Menus(self):
menubar = Menu(self.root)
self.root.config(menu=menubar)
filemenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Opções", menu=filemenu)
filemenu.add_command(label="Sair", command=self.Quit)
AppProbabilidades()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação