Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: Tkinter ja olio-ohjelmointi fibonacci

koodaaja [15.09.2021 05:11:03]

#

Tämä koodi esittää sekä graafista käyttöliittymää että olio-ohjelmointia. Luokassa Fibonacci on kaksi metodia, joista ensimmäinen tallentaa sanakirjaan arvoja listamuodossa ja toinen palauttaa listan. Luokalla on oletuskonstruktori ja yksi attribuutti. Graafisessa käyttöliittymässä eri osat on jaettu kehyksiin. Lisäksi koodissa on lista, johon vaihtoehtoisesti voidaan lisätä tietoa.

from tkinter import *



class Fibonacci:

  #Seuraavaan sanakirjaan lisätään lukulistoja, jotka lasketaan fibonaccin lukujonon mukaan.
  luvut = {}

  def AsetaFibonacci(self,avain,maara):
    #Luodaan fibonacci lista.
    a = 0
    b = 1
    summa = 0
    luku =  []

    for i in range(maara):
      summa = a+b
      luku.append(summa)

      temp = b
      b = summa
      a = temp
    #Tallennetaan sanakirjaan.
    self.luvut[avain] = luku


  def AnnaFibonacci(self,avain):
    return self.luvut[avain]

  def AnnaKaikki(self):
   return self.luvut

def Aseta():
  #Otetaan lähtötiedot GUI:n kontrolleista ja lasketaan tulos olion kautta.
  fib_1 = Fibonacci()
  avain = teksti.get()
  maara = int(var.get())

  fib_1.AsetaFibonacci(avain,maara)

def Lue():
  fib_1 = Fibonacci()
  avain = teksti.get()
  nimilappu.config(text=str(fib_1.AnnaFibonacci(avain)))

def Listaan():
 lista.delete(0,"end")
 #Otetaan sanakirja.
 fib_1 = Fibonacci()
 luvut = fib_1.AnnaKaikki()
 for i in luvut:
  lista.insert("end",luvut[i])


def Poista(event):
 for i in lista.curselection():
  lista.delete(i)


#Luodaan graafinen käyttöliittymä.
root = Tk()
syotteet = Frame(root)
syotteet.pack()

#Luodaan syöttö kontrollit.
teksti = Entry(syotteet,text="Avain")
teksti.pack()

var = DoubleVar()
saadin = Scale(syotteet,variable=var,from_=0,to=10)
saadin.pack()

#Luodaan toimintkontrollit.
toiminnot = Frame(root)
toiminnot.pack()

nappain = Button(toiminnot,text="Aseta",command=Aseta)
nappain.pack()

nappain2 = Button(toiminnot,text="Lue",command=Lue)
nappain2.pack()

nappain3 = Button(toiminnot,text="Listaan",command=Listaan)
nappain3.pack()

#Luodaan tulostekontrolli.
tuloste = Frame(root)
tuloste.pack()

nimilappu = Label(tuloste,text="0")
nimilappu.pack()

lista = Listbox(tuloste,selectmode=MULTIPLE)
lista.bind('<<ListboxSelect>>',Poista)
lista.pack()


root.mainloop()

neosofta [16.09.2021 13:04:42]

#

Sinä kun tykkäät vääntää näitä calculation jutskia niin väännä seuraavaksi vaikkapa Odemark's Equation soleveri.

EDIT: Uskoisin, että jos saat Tkinter pohjalta aikaan toimivan softan niin jopa Metabolix antaa kehuja 😁

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta