Arranjos e Combinações matemáticas usando Tkinter

from tkinter import *
from tkinter import ttk

root=Tk()
class app():
def __init__(self):
self.root = root
self.janela()
self.frames_da_janela()
self.widgets_frame1()
self.Menus()
self.root.mainloop()
def janela(self):
self.root.title("Arranjos e Combinações")
self.root.configure(background='#1e3743')
self.root.geometry("450x200")
self.root.resizable(False, False)
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.arr = Frame(self.abas)
self.cob = Frame(self.abas)
self.arr.configure(background="#dfe3ee")
self.cob.configure(background="#dfe3ee")
self.abas.add(self.arr, text="Arranjos")
self.abas.add(self.cob, text="Combinações ")
self.abas.place(relx=0, rely=0, relwidth=0.98
, relheight=0.98)
# n elementos tomados
self.n = IntVar()
self.lb_n = Label(self.arr, text="N", bg='#dfe3ee',
fg='#107db2')
self.lb_n.place(relx=0.3, rely=0.05)
self.n_entry = Entry(self.arr, textvariable=self.n)
self.n_entry.place(relx=0.4, rely=0.05, relwidth=0.1)
# k elementos tomados
self.k = IntVar()
self.lb_k = Label(self.arr, text="K", bg='#dfe3ee', fg='#107db2')
self.lb_k.place(relx=0.3, rely=0.25)
self.k_entry = Entry(self.arr, textvariable=self.k)
self.k_entry.place(relx=0.4, rely=0.25, relwidth=0.1)
self.bt_calcular1 = Button(self.arr, text="Calcular", bd=2,
bg='#107db2', fg='white',
font=('verdana', 8, 'bold'),
command=self.butaoclickarr)
#a
self.bt_calcular1.place(relx=0.6, rely=0.15, relwidth=0.2,
relheight=0.25)
# Resultado
self.resultado = StringVar()
self.resultado2 = Label(self.arr, textvariable=self.resultado)
self.resultado2.place(relx=0.4, rely=0.6, relwidth=0.1)
#Combinação
# n elementos tomados
self.n1 = IntVar()
self.lb_n1 = Label(self.cob, text="N", bg='#dfe3ee', fg='#107db2')
self.lb_n1.place(relx=0.3, rely=0.05)
self.n1_entry = Entry(self.cob, textvariable=self.n1)
self.n1_entry.place(relx=0.4, rely=0.05, relwidth=0.1)
# k elementos tomados
self.k1 = IntVar()
self.lb_k1 = Label(self.cob, text="K", bg='#dfe3ee', fg='#107db2')
self.lb_k1.place(relx=0.3, rely=0.25)
self.k1_entry = Entry(self.cob, textvariable=self.k1)
self.k1_entry.place(relx=0.4, rely=0.25, relwidth=0.1)
self.bt_calcular2 = Button(self.cob, text="Calcular", bd=2,
bg='#107db2', fg='white',
font=('verdana', 8, 'bold'),
command=self.butaoclickcob)
self.bt_calcular2.place(relx=0.6, rely=0.15, relwidth=0.2,
relheight=0.25)
# Resultado
self.resultado1 = StringVar()
self.resultado3 = Label(self.cob, textvariable=self.resultado1)
self.resultado3.place(relx=0.4, rely=0.6, relwidth=0.1)
def butaoclickarr(self):
an = self.n.get()
ak = self.k.get()
n = an
k = ak
factorialn = 1
factortiald =1
d = n - k
while an != 0:
mutiplicaca = factorialn * an
factorialn = mutiplicaca
an = an - 1
while d != 0:
mutiplicacad = factortiald * d
factortiald = mutiplicacad
d = d - 1
arranjo = factorialn/factortiald
return self.resultado.set(arranjo)
def butaoclickcob(self):
an = self.n1.get()
ak = self.k1.get()
n = an
k = ak
factorialn = 1
factortiald = 1
factortialk = 1
d = n - k
while ak != 0:
mutiplicaca = factortialk * ak
factortialk = mutiplicaca
ak = ak - 1
while an != 0:
mutiplicaca = factorialn * an
factorialn = mutiplicaca
an = an - 1
while d != 0:
mutiplicacad = factortiald * d
factortiald = mutiplicacad
d = d - 1
f = factortiald*factortialk
cob = factorialn/f
return self.resultado1.set(cob)
def Quit(self):
self.root.destroy()
def Menus(self):
menubar = Menu(self.root)
self.root.config(menu=menubar)
filemenu = Menu(menubar)
menubar.add_cascade(label="Opções", menu=filemenu)
filemenu.add_command(label="Sair", command=self.Quit)
app()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação